*Spring框架对JDBC的简单封装。提供了一个JDBCTemplate对象简化JDBC的开发
步骤:
1.导入jar包
2.穿件JDbcTemplate对象。依赖于数据源DataSource
* JdbcTemplate Template = new JdbcTemplate(ds);
3.调用JdbcTemplate的方法来完成CRUD的操作
* update():执行DML语句。 增删改语句
* queryForMap():查询结果将结果集封装为map集合
*注意:这个方法查询的结果集长度只能是1
* queryForList():查询结果将结果集封装为list集合
*注意:将每一条记录封装到一个Map集合,再Map集合装载到List集合中
*query():查询结果,将结果封装为JavaBean对象
*query的参数:RowMapper
*一般我们使用BeanPropertyRowMapper实现来。可以完成数据到JavaBean的自动封装
*new BeanPropertyRowMapper<类型>(类型.class)
*queryForObject:查询结果,将结果分装为对象
*一般用于聚合函数的查询
4.练习
* 1,修改1号数据库的name 为 lkh
* 2.添加一条记录
* 3.删除刚才添加的记录
* 4,查询id为1的记录,将其封装为Map集合
* 5.查询所有记录,将其封装为Lish
* 6.查询所有记录,将其分装为Emp对象的List集合
* 7,查询总记录数
public class JdbcTemplateDemo2 {
//1 获取JDBCTemplate对象 成员变量获取以后之后不用重复获取
private JdbcTemplate template = new JdbcTemplate(JDBCUtils.getDataSource());
/**
* 1,修改1号数据库的name 为 lkh
*/
@Test
public void test1(){
//2.定义sql
String sql ="update user set username ='lkh' where id =1";
//3.执行sql
int count =template.update(sql);
System.out.println(count);
}
/**
* 2.添加一条记录
*/
@Test
public void test2(){
String sql="insert into user(id,username,password) values(?,?,?)";
int count=template.update(sql,null,"wql","lkh");
System.out.println(count);
}
/**
*3.删除刚才添加的记录
*/
@Test
public void test3(){
String sql="delete from user where id =?";
int count= template.update(sql,7);
System.out.println(count);
}
/**
* 4,查询id为1的记录,将其封装为Map集合
* 注意:查询的结果集长度只能是1
*/
@Test
public void test4(){
String sql="select * from user where id=? ";
Map<String,Object> map=template.queryForMap(sql,1);
System.out.println(map);
}
/**
* 5.查询所有记录,将其封装为List
*/
@Test
public void test5(){
String sql="select * from user";
List<Map<String,Object>> list= template.queryForList(sql);
for (Map<String,Object>stringObjectMap:list){
System.out.println(stringObjectMap);
}
}
/**
* 查询所有记录,将其封装为Emp对象的List集合
*/
//自己写的
@Test
public void test6(){
String sql ="select * from user";
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 username = rs.getString("username");
String password = rs.getString("password");
emp.setId(id);
emp.setPassword(password);
emp.setUsername(username);
return emp;
}
});
for(Emp emp:list){
System.out.println(emp);
}
}
//提供的
@Test
public void test6_2(){
String sql ="select * from user";
List<Emp> list=template.query(sql,new BeanPropertyRowMapper<Emp>(Emp.class));
for (Emp emp:list){
System.out.println(emp);
}
}
@Test
public void test7(){
String sql=" select count(id) from user";
List<Long> total=template.queryForList(sql,Long.class);
System.out.println(total);
}
}