回顾上篇,知识总结:
建好一个JDBCutils中Druid工厂类创建的数据源DataSource,即建好一个池子后,就翘起二郎腿,开始由template负责挑水打水,归还桶子,就是连接都不用引用,Statement也不用引用,甚至不用释放资源,全权由template负责。
数据库:
update方法
/**
* 这是一个实例,完成template操作小任务
* 顺便完成Junit单元测试的学习
*/
public class JdbcTemplateDemoE {
/**
* 1.修改数据salary为10000
*/
@Test
public void test1(){
String sql = "update user set salary = ? where id = ?";
JdbcTemplate template = new JdbcTemplate(JDBCutils.getDataSource());
template.update(sql, 10000,1001);
}
}
使用queryformap方法从数据库里面获取map集合
@Test
public void test2(){
String sql = "select * from emp where id = ?";
JdbcTemplate template = new JdbcTemplate(JDBCutils.getDataSource());
Map<String,Object> map = template.queryForMap(sql,1001);
System.out.println(map);
}
输出结果
- {id=1001, ename=aebc, job_id=4, mgr=1004, joindate=2000-12-17, salary=8000.00, bonus=null, dept_id=20}
可以看出其实获取的是一个map,列名作为KEY键,只能拿一条结果。
使用list方法从数据库里面获取map集合集:
@Test
public void test2(){
String sql = "select * from emp";
JdbcTemplate template = new JdbcTemplate(JDBCutils.getDataSource());
List<Map<String, Object>> maps = template.queryForList(sql);
for (Map<String, Object> map : maps) {
System.out.println(map);
}
}
//结果
{id=1004, ename=唐僧, job_id=2, mgr=1009, joindate=2001-04-02, salary=29750.00, bonus=null, dept_id=20}
{id=1005, ename=李逵, job_id=4, mgr=1006, joindate=2001-09-28, salary=12500.00, bonus=14000.00, dept_id=30}
{id=1006, ename=宋江, job_id=2, mgr=1009, joindate=2001-05-01, salary=28500.00, bonus=null, dept_id=30}
{id=1007, ename=刘备, job_id=2, mgr=1009, joindate=2001-09-01, salary=24500.00, bonus=null, dept_id=10}
{id=1008, ename=猪八戒, job_id=4, mgr=1004, joindate=2007-04-19, salary=30000.00, bonus=null, dept_id=20}
{id=1009, ename=罗贯中, job_id=1, mgr=null, joindate=2001-11-17, salary=50000.00, bonus=null, dept_id=10}
{id=1010, ename=吴用, job_id=3, mgr=1006, joindate=2001-09-08, salary=15000.00, bonus=0.00, dept_id=30}
{id=1011, ename=沙僧, job_id=4, mgr=1004, joindate=2007-05-23, salary=11000.00, bonus=null, dept_id=20}
使用list方法从数据库里面获取map集合集,并且封装为emp对象的list:
使用了BeanpropertyRowMapper
@Test
public void test4(){
String sql = "select * from emp";
JdbcTemplate template = new JdbcTemplate(JDBCutils.getDataSource());
List<emp> query = template.query(sql, new BeanPropertyRowMapper<emp>(emp.class));
for (emp emp : query) {
System.out.println(emp);
}
}
emp{id=1012, ename='李逵', job_id=4, mgr=1006, joindate=2001-12-03 00:00:00.0, salary=9500.0, bonus=null, dept_id=30}
emp{id=1013, ename='小白龙', job_id=4, mgr=1004, joindate=2001-12-03 00:00:00.0, salary=30000.0, bonus=null, dept_id=20}
emp{id=1014, ename='关羽', job_id=4, mgr=1007, joindate=2002-01-23 00:00:00.0, salary=13000.0, bonus=null, dept_id=10}
emp{id=2000, ename='草拟吗', job_id=4, mgr=null, joindate=null, salary=null, bonus=null, dept_id=null}