JDBCTemplate_执行DML语句和JDBCTemplate_执行DQL语句
JDBCTemplate_执行DML语句:
spring框架对JDBC的简单封装。提供了一个JDBCTemplate对象简化JDBC的开发
步骤︰
1.导入jar包
2.创建dbcTemplate对象。依赖于数据源Datasource
jdbcTemplate template = new JdbcTemplate(ds );
3.调用dbcTemplate的方法来完成CRUD的操作
update():执行DML语句。增、删、改语句
queryForMap():查询结果将结果集封装为map集合
queryForList():查询结果将结果集封装为list集合
query():查询结果,将结果封装为JavaBean对象
queryForobject :查询结果,将结果封装为对象
代码实现:
// Junit单元测试, 可以让方法独立执行 // 1.获取JDBCTemplate对象 private JdbcTemplate template = new JdbcTemplate( JDBCUtils.getDataSource()); /** * 1.修改1号数据的 salary为10000 */ @Test public void test1() { // 2.定义sql String sql = "update emp set salary = 10000 where id = 1"; // 3.执行sql int count = template.update(sql); System.out.println(count); } /** * 2.添加—条记录 */ @Test public void test2() { // 2.定义sql String sql = "insert into emp(id,name,dept_id)values(?,? ,?)"; // 3.执行sql int count = template.update(sql,6,"郭靖",7); System.out.println(count); } /** * 3.册除刚才添加的记录 */ @Test public void test3() { // 2.定义sql String sql = "delete from emp where id = ?"; // 3.执行sql int count = template.update(sql, 5); System.out.println(count); }
JDBCTemplate_执行DQL语句:
1.调用dbcTemplate的方法来完成cRUD的操作
update():执行DML语句。增、删、改语句
queryForHap() :查询结果将结果集封装为map集合,将列名作为key,将值作为value将这条记录封装为一个map集合
注意:这个方法查询的结果集长度只能是1
queryForList():查询结果将结果集封装为list集合
注意:将每一条记录封装为一个Map集合,再将Map集合装载到List集合中
query():查询结果,将结果封装为JavaBean对象
query的参数:RowMapper
一般我们使用BeanPropertyRowMapper实现类。可以完成数据到JavaBean的自动封装
new BeanPropertyRowMapper<类型>(类型.class)
queryForobject :查询结果,将结果封装为对象
—般用于聚合函数的查询
代码实现:
// Junit单元测试, 可以让方法独立执行 // 1.获取JDBCTemplate对象 private JdbcTemplate template = new JdbcTemplate( JDBCUtils.getDataSource()); /** * 4.查询地为1的记录,将其封存为Map集合 * 注意:这个方法查询的结果集长度只能是1 */ @Test public void test4() { String sql = "select * from emp where id = ?"; Map<String, Object> map = template.queryForMap(sql, 1); System.out.println(map); } /** * 5.查询全部表emp信息 */ @Test public void test5() { String sql = "select * from emp"; List<Map<String, Object>> maps = template.queryForList(sql); for (Map<String,Object> stringObjectMap :maps) { System.out.println(stringObjectMap); } } /** * 6.查询所有记录,将其封存为Emp对象的list集合 */ @Test public void test6() { // 定义sql语句 String sql = "select * from emp"; List<Emp> list = template.query(sql, new RowMapper<Emp> () { @Override public Emp mapRow(ResultSet rs, int i) throws SQLException { Emp emp = new Emp(); int id = rs.getInt("id"); String name = rs.getString("name"); String gender = rs.getString("gender"); double salary = rs.getDouble("salary"); long join_date = rs.getLong("join_date"); int dept_id = rs.getInt("dept_id"); emp.setId(id); emp.setName(name); emp.setGender(gender); emp.setSalary(salary); emp.setJoin_date(join_date); emp.setDept_id(dept_id); return emp; } }); } /** * 6.查询所有记录,将其封存为Emp对象的list集合 */ @Test public void test_2() { String sql = "select * from emp"; List<Emp> list = template.query(sql, new BeanPropertyRowMapper<>(Emp.class)); for (Emp emp : list ) { System.out.println(emp); } }