标签:plist pen query ams details 决定 param 构造方法 包装
参考:https://blog.csdn.net/qq_23329167/article/details/81841996#commentBox和https://www.cnblogs.com/penghuake/p/10886291.html
JdbcTemplate:是Spring框架的一部分,封装简化了JDBC的操作,帮我们处理了资源的获取和释放。我们只要提供sql语句和参数,就可以得到执行的结果了
相关的jar包:
常用方法:
构造方法:JdbcTemplate(DataSource dataSource)
执行任意语句:execute(sql)
,此方法没有返回值
执行DML语句:update(String sql, Object... params)
,返回int,影响行数
执行DQL语句:queryxxx()
方法多,单独讲解
execute
方法(了解)方法:jdbcTemplate.execute(sql)
参数:要执行的SQL
返回值:无
方法:jdbcTemplate.update(String sql, Object... params)
参数:
sql:要执行的SQL语句。如果有参数,必须是?处理过的
params:执行SQL语句需要的参数值
返回值:
int,表示影响的行数
方法:queryForObject(String sql, Class resultType, Object... params)
参数:
sql:要执行的sql语句
resultType:想要什么类型的结果,比如:Integer.class, String.class
params:执行SQL语句需要的参数值
返回值:
一个值,类型是由参数resultType决定的
通常用于查询数量,结果是一个值,类型通常是Integer
示例:
public void queryOne(){
//Integer count = jdbcTemplate.queryForObject("select count(*) from user", Integer.class);
?
Integer count = jdbcTemplate.queryForObject("select count(*) from user where sex = ?", Integer.class, "男");
System.out.println("user表里的数量:" + count);
}
方法:queryForMap(String sql, Object... params)
参数:
sql:要执行的SQL语句
params:执行SQL语句需要的参数值
返回值:
Map<String, Object>
是Map<字段名, 字段值>
示例:
/**
* 查询姓名是 大郎 的用户信息,得到Map<字段名,字段值>
*/
方法:queryForList(String sql, Object... params)
参数:
sql:要执行的SQL语句
params:执行SQL语句需要的参数值
返回值:
List<Map<String,Object>>
:每条记录是一个Map,把所有记录的Map放到List里
示例:
/**
* 查询性别为男的所有用户,得到List
*/
方法:query(String sql, RowMapper rowMapper, Object.. params)
参数:
sql:要执行的SQL语句
rowMapper:用于设置结果集中列的数据,对应到JavaBean哪个属性上,是设置对应关系的
可以简化写成:new BeanPropertyRowMapper<>(JavaBean名称.class)
params:执行SQL语句需要的参数值
返回值:
List<JavaBean对象>
。List里每个JavaBean,是一条记录的数据封装成的对象
JavaBean:有特定结构的简单Java类。数据库里每张表,都可以有一个对应的JavaBean;表里每条记录,都对应一个JavaBean的对象。
类里要有私有属性
类里要有无参构造
每个属性要有public的get/set方法
示例:查询所有用户,得到用户集合List<User>
/**
* JavaBean:一种特殊结构的简单Java类,要求:
* 1. 类里要有private的属性
* 2. 每个属性要有public的get/set方法
* 3. 要有无参构造
* 4. 建议每个属性的类型,写成包装类,而不要写成基本数据类型
*/
public class User {
private Integer id;
private String username;
private String password;
private String sex;
private Date birthday;
?
public Integer getId() {
return id;
}
?
public void setId(Integer id) {
this.id = id;
}
?
public String getUsername() {
return username;
}
?
public void setUsername(String username) {
this.username = username;
}
?
public String getPassword() {
return password;
}
?
public void setPassword(String password) {
this.password = password;
}
?
public String getSex() {
return sex;
}
?
public void setSex(String sex) {
this.sex = sex;
}
?
public Date getBirthday() {
return birthday;
}
?
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
?
/*
查询所有性别为的用户,得到List<User>
*/
方法:queryForObject(String sql, RowMapper rowMapper, Object.. params)
注意:如果找不到数据,方法会抛异常
EmptyResultDataAccessException
。我们认为是正常的,应该try..catch,让异常不影响后边代码的继续执行
参数:
sql:要执行的SQL语句
rowMapper:用于设置结果集中列的数据,对应到JavaBean哪个属性上,是设置对应关系的
可以简写成:new BeanPropertyRowMapper<>(JavaBean类名.class)
params:执行SQL语句需要的参数值
返回值:
List<JavaBean对象>
。List里每个JavaBean,是一条记录的数据封装成的对象
示例
/**
* 查询用户名为 大朗 的信息,得到一个User对象
*/
标签:plist pen query ams details 决定 param 构造方法 包装
原文地址:https://www.cnblogs.com/zxrxzw/p/11889783.html