Spring Jdbc知识点
1.导入需要用到的jar包
2.在连接数据库的Util中写一个方法,返回数据源:dataSource
public static DataSource getDataSource() {
return dataSource;
}
3.创建JdbcTemplate对象。
JdbcTemplate template = new JdbcTemplate(Util.getDataSource());
4.调用JdbcTemplate中的方法来完成crud操作
(1)update():执行DML语句。增、删、改语句
删除为例子:
String sql = "delete from emp where id=?";
int count = template.update(sql, 1015);
* 多个占位符?
String sql = "insert into tb_user(username, `password`) values(?,?)";
//创建Object数组存值
Object[] obj = new Object[] {
user.getUserName(),
user.getPassword()
};
return template.update(sql, obj);
(2)查询的四种方法:(按需求选择)
- query():查询结果,将结果封装为JavaBean对象
方式一:
String sql = "select * from emp";
//调用RowMapper<User>接口,重写mapRow(ResultSet rs, int index) 方法,这个方法自动进行循环赋值操作
List<User> list = template.query(sql, new RowMapper<User>(){
@Override
public User mapRow(ResultSet rs, int index) throws SQLException{
User us = new User();
us .setId(rs.getInt("id"));
us .setEname(rs.getString("ename"));
us .setJob_id(rs.getInt("job_id"));
……
return us ;
}
});
方式二:
String sql = "select * from emp";
//调用BeanPropertyRowMapper<User>(Emp.class)方法一步完成操作
List<User> list = template.query(sql, new BeanPropertyRowMapper<>(User.class));
- queryForObject:查询结果,将结果封装为对象(一般用于查询出只有一行一列的值,比如统计记录总数), 一般用于聚合函数的查询。
String sql = "select count(*) from emp";
Long total = template.queryForObject(sql, Long.class);
- queryForMap():查询结果将结果集封装为map集合,将列名作为key,将值作为value 将这条记录封装为一个map集合。
注意:这个方法查询的结果集长度只能是1。
String sql = "select * from emp where id=?";
Map<String, Object> map = template.queryForMap(sql, 1001);
- queryForList():查询结果将结果集封装为list集合。
注意:将每一条记录封装为一个Map集合,再将Map集合装载到List集合中。
String sql ="select * from emp";
List<Map<String, Object>> list = template.queryForList(sql);