JDBCTemplate_执行DML语句和JDBCTemplate_执行DQL语句
JDBCTemplate_执行DML语句
JDBCTemplate_执行DQL语句
需求:
1.修改1001号数据的salary 为10000
2.添加一条记录
3.删除刚孑添加的记录
4.查询id为1001的记录,将其封装为Map集合。
5.查询所有记录,将其封装为List
6.查询所有记录,将其封装为Emp对象的List集合
7.查询总记录数
最好使用基本数据类型否则数据库有空值使用 6.1 :BeanPropertyRowMapper 封装会报错
/* * 封装Emp表数据的JavaBean */ public class Emp { private Integer 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 + '}'; } }
package com.peng.JDBC_4.JDBCTemplate; import com.peng.JDBC_4.JDBCTemplate.domain.Emp; import com.peng.JDBC_4.c3p0.util.JDBCUtils; import org.junit.Test; import org.springframework.jdbc.core.BeanPropertyRowMapper; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.RowMapper; import java.sql.Date; import java.sql.ResultSet; import java.sql.SQLException; import java.util.List; import java.util.Map; public class JDBCTemplate_02 { private JdbcTemplate template = new JdbcTemplate(JDBCUtils.getDataSource()); // 1.修改1001号数据的salary 为10000 @Test public void test1(){ //定义sql String sql ="update emp set salary=10000 where id=?"; //执行sql int count = template.update(sql, 1001); System.out.println(count); } // 2.添加一条记录 @Test public void test2(){ String sql = "insert INTO emp(id,ename,dept_id) values (?,?,?)"; int count = template.update(sql,1015,"郭靖",10); System.out.println(count); } // 3.删除刚孑添加的记录 @Test public void test3(){ String sql = "delete from emp where id=?"; int count = template.update(sql, 1015); System.out.println(count); } // 4.查询id为1001的记录,将其封装为Map集合 //注意:这个方法查询的结果集长度只能是1 @Test public void test4(){ String sql = "select * FROM emp where id=?"; Map<String, Object> map = template.queryForMap(sql, 1001); System.out.println(map); } // 5.查询所有记录,将其封装为List @Test public void test5(){ String sql = "select * from emp"; List<Map<String, Object>> list = template.queryForList(sql); for (Map<String, Object> stringObjectMap : list) { System.out.println(stringObjectMap); } } // 6.查询所有记录,将其封装为Emp对象的List集合 @Test public void test6(){ String sql = "select * from emp"; List<Emp> list = template.query(sql, new RowMapper<Emp>() { @Override public Emp mapRow(ResultSet rs, int rowNum) throws SQLException { Emp emp = new Emp(); int id = rs.getInt("id"); String ename = rs.getString("ename"); int job_id = rs.getInt("job_id"); int mgr = rs.getInt("mgr"); Date joindate = rs.getDate("joindate"); double salary = rs.getDouble("salary"); double bonus = rs.getDouble("bonus"); int dept_id = rs.getInt("dept_id"); emp.setId(id); emp.setEname(ename); emp.setJob_id(job_id); emp.setMgr(mgr); emp.setJoindate(joindate); emp.setSalary(salary); emp.setBonus(bonus); emp.setDept_id(dept_id); return emp; } }); for (Emp emp : list) { System.out.println(emp); } } // 6.1查询所有记录,将其封装为Emp对象的List集合 @Test public void test6_2(){ String sql = "select * from emp"; List<Emp> list = template.query(sql, new BeanPropertyRowMapper<Emp>(Emp.class)); for (Emp emp : list) { System.out.println(emp); } } // 7.查询总记录数 @Test public void test7(){ String sql = "select count(id) from emp"; Long total = template.queryForObject(sql, Long.class); System.out.println(total); } }
1.
2.
3.
4.
5.
6.
7.