Spring框架对JDBC的简单封装。提供了一个JDBCTemplate对象,简化JDBC的开发
步骤:
- 导入jar包
commons-logging-1.2.jar
spring-beans-5.0.0.RELEASE.jar
spring-core-5.0.0.RELEASE.jar
spring-jdbc-5.0.0.RELEASE.jar
spring-tx-5.0.0.RELEASE.jar
- 创建JdbcTemplate对象。(依赖于数据源Datasource)
JdbcTemplate template = new JdbcTemplate(ds)
- 调用JdbcTemplate的方法来完成CRUD的操作
update()
:执行DML语句。增、删、改语句
queryForMap()
:查询结果将结果集封装为map集合
queryForList()
:查询结果捋结果集封装为list集合
query()
:查询结果,将结果封装为JavaBean对象:template.query(sql, new BeanPropertyRowMapper<对象类型>(对象类型.class));
queryForobject()
:查询结果,捋结果封装为对象
使用:
import org.springframework.jdbc.core.JdbcTemplate;
import util.DruidUtils;
public class DemoJdbcTemplate {
public static void main(String[] args) {
//创建JdbcTemplate对象。(依赖于数据源Datasource)
JdbcTemplate template = new JdbcTemplate(DruidUtils.getDataSource());
//调用方法
String sql = "update account set balance = 300 where name = ?";
template.update(sql,"zhangsan");
}
}
JdbcTemplate
方法练习:
package util;
import org.junit.Test;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import java.util.List;
import java.util.Map;
public class DemoJdbcTemplate2 {
/*
* 使用Junit测试,让各个方法独立执行
* */
private JdbcTemplate template = new JdbcTemplate(DruidUtils.getDataSource());
//1.修改1号数据的salary为10000
@Test
public void test1() {
String sql = "update emp set salary = 10000 where id = 1001";
template.update(sql);
}
//2.添加一条记录
@Test
public void test2() {
String sql = "insert into emp(id,ename,dept_id) values (?,?,?)";
template.update(sql, 1015, "张三", 10);
}
//3.删除刚才添加的记录
@Test
public void test3() {
String sql = "delete from emp where id = ?";
template.update(sql, 1015);
}
//4.查询id为1001的记录,将其封装为Map集合
@Test
public void test4() {
String sql = "select * from emp where id = ?";
Map map = template.queryForMap(sql, 1001);
System.out.println(map);
}
//5.查询所有记录,将其封装为List
@Test
public void test5() {
String sql = "select * from emp";
List list = template.queryForList(sql);
System.out.println(list);
}
//6.查询所有记录,将其封装为Emp对象的List集合
@Test
public void test6() {
String sql = "select * from emp";
List<resultset> list = template.query(sql, new BeanPropertyRowMapper<resultset>(resultset.class));
list.stream().forEach(i -> System.out.println(i));
}
//7.查询总记录数
@Test
public void test7() {
String sql = "select count(id) from emp";
long total = template.queryForObject(sql,long.class);
System.out.println(total);
}
}