一.定义spring
Spring框架对jdbc进行了封装,提供的一个JDBCTemplated对象简化jdbc开发。sql
使用步骤app
1 导包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。辅助类包commons-logging-1.2.ja。框架
2 建立JDBCTemplate 对象 依赖于DataSourceide
3 调用JDBCTemplate 方法 CRUD(增删改查)单元测试
使用方法测试
update,增、删、改,DML语句this
queryForMap() 查询结果封装为map 集合,列名 key valuespa
queryForList() 查询结果封装List 集合code
query() 查询结果,是JavaBean对象
queryForObject() 将结果封装成对象
入门代码:
public class Templatedemo1 { public static void main(String[] args) { //1.导包 //2.建立JDBCTemplate对象,依赖于DataSource JdbcTemplate template=new JdbcTemplate(JDBCUtils.getDataSource()); //3.调用JDBCTemplate方法 String sql="insert into coount values(3,?,?)"; int i = template.update(sql, "abcd", 1000); System.out.println(i); } }
二.Junit单元测试,实现让方法能够独立运行:
public class Templatedemo2 { //建立template对象 JdbcTemplate template=new JdbcTemplate(JDBCUtils.getDataSource()); //Junit单元测试,可让方法独立运行 @Test //1.修改emp表中id为1的salary为10000 public void test1(){ //建立JDBCTemplate对象,依赖于DataSource String sql="update emp set salary=10000 where id=?"; int i = template.update(sql, 1002); System.out.println(i); } @Test //2.给表emp添加信息 public void test2(){ String sql="insert into emp (id,ename,dept_id) values (?,?,?)"; int i = template.update(sql, 1016, "du", 10); System.out.println(i); } @Test //3.查询全部,封装成LIst集合 public void test3(){ String sql="select * from emp"; List<Map<String, Object>> maps = template.queryForList(sql); for (Map<String, Object> stringObjectMap: maps){ System.out.println(stringObjectMap); } } }
//4.删除添加的数据 @Test public void test4(){ String s="delete from emp where id=1110"; int i = template.update(s); System.out.println(i); }
//5.查询id为2的记录,将其封装为Map集合 //注意这个方法查询的结果集的长度孩子能是1 DQL语句查询 @Test public void test5(){ String s="select * from coount where id=2"; Map<String, Object> map = template.queryForMap(s); System.out.println(map); }
//6.查询总记录数 @Test public void test6(){ String s="select count(id) from emp"; Long l = template.queryForObject(s, Long.class); System.out.println(l); } }
Templatedemo2:
@Test //7.查询emp表的记录,将其封装到Emp对象的List集合 public void test7(){ String sql="select * from emp"; List<Emp> list = template.query(sql, new BeanPropertyRowMapper<Emp>(Emp.class)); for (Emp emp:list){ System.out.println(emp); } }
Emp:
public class Emp { private int id; private String ename; private Integer job_id; private Integer mgr; private Date joindate; private Double salary; private Double bonus; private Integer dept_id; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getEname() { return ename; } public void setEname(String ename) { this.ename = ename; } public Integer getJob_id() { return job_id; } public void setJob_id(Integer job_id) { this.job_id = job_id; } public Integer getMgr() { return mgr; } public void setMgr(Integer mgr) { this.mgr = mgr; } public Date getJoindate() { return joindate; } public void setJoindate(Date joindate) { this.joindate = joindate; } public Double getSalary() { return salary; } public void setSalary(Double salary) { this.salary = salary; } public Double getBonus() { return bonus; } public void setBonus(Double bonus) { this.bonus = bonus; } public Integer getDept_id() { return dept_id; } public void setDept_id(Integer dept_id) { this.dept_id = dept_id; } @Override public String toString() { return "Emp{" + "id=" + id + ", ename='" + ename + '\'' + ", job_id=" + job_id + ", mgr=" + mgr + ", joindate=" + joindate + ", salary=" + salary + ", bonus=" + bonus + ", dept_id=" + dept_id + '}'; } }