Spring框架对JDBC提供的简单封装,它提供了一个JDBCTemplate对象来简化了JDBC的开发
一、使用步骤:
1、导入jar包
包括着五个,还有数据库的jar包,和数据库连接池的包,如果使用Druid数据库连接池的话总共有七个jar包
2、创建JdbcTemplate对象,该对象参数传递DataSource类型的参数
JdbcTemplate template = new JdbcTemplate(ds)
3、调用JdbcTemplate的方法来完成CRUD的操作(增删改查的方法)
- update():执行增删查该语句
- queryForMap():查询结果将结果集封装为map集合
- queryForList():查询结果将结果集封装为list集合
- query():查询结果,将结果封装为JavaBean对象
query()
中的第二个参数,我们一般使用BeanPropertyRowMapper实现类来完成数据到javabean的封装
举例示范
控制台打印结果为
数据修改成功
这里注意JDBCUtils2是在即写的JDBC工具类;还要注意我们不需要关闭资源,JDBCTemlate会默认帮我们关闭资源
二、练习
- 修改表中的zaoliu的密码为12
- 添加一条记录
- 删除添加的记录
- 查询id为1的记录,将其封装为Map集合
- 查询所有记录,将其封装为list集合
- 查询所有记录,将其封装为Emp对象的List集合
表中数据为
字段描述为
首先将表对象封装出来
package domain;
public class userinfo {
private String username;
private String password;
public userinfo() {
}
public userinfo(String username, String password) {
this.username = username;
this.password = password;
}
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;
}
@Override
public String toString() {
return "userinfo{" +
"username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
}
这里我们使用JUnit单元测试来执行我们的案例需求
1、修改表中的zaoliu的密码为12
控制台输出
查看表得到
说明修改成功
2、添加一条记录
控制台结果为
查询表的到的结果为
3、删除添加的记录
4、查询id为1的记录,将其封装为Map集合
注意这个方法queryForMap()
这个方法的结果集长度只能为1,将查询的数据以键值对的形式保存到map集合当中
如果查询了两个信息则会报错
如下图:
5、查询所有的记录将其封装为一个list集合
将查询出来的每一行的信息都按照键值对的方式存储到map集合当中,然后把多个map集合存储到list集合当中
6、查询所有记录,将其封装为userinfo对象然后将其装入list集合
我们可以自己实现封装的过程,只需要使用匿名内部类重写mapRow方法,但是我们并不建议这样做,因为这样还是很负载
建议这样进行查询,传入的参数第一个是sql,第二个是new BeanPropertyRowMapper<传入想要封装类型>(想要封装的类.class)
我们需要注意一个问题:如果表中的数据有null,那么我们定义JavaBean的时候不能使用基本数据类型,因为基本数据类型,不能等于null,所以上面的例子中的javabean的定义是不太严谨的,最好使用包装类进行定义