JdbcTemplate的基本介绍
JdbcTemplate 是 Spring 对 JDBC 的封装,目的是使JDBC更加易于使用,JdbcTemplate是Spring的一部分。
jdbctemplate常用的4种方法
(1)execute
() 方法:可以执行任何SQL语句,一般用于执行DDL语句。
(2)update
(sqlStr, 参数列表
) 方法:用于执行新增、修改、删除等语句。
(3)batchUpdate
() 方法:用于执行批处理相关语句,batchUpdate方法第二参数是一个元素为 Object[] 数组类型的 List 集合。
(4)query() 方法及 queryForXXX() 方法:用于执行查询相关语句,查询结果为基本数据类型或者是单个对象一般使用 queryForObject()
queryForInt():查询一行数据并返回 int 型结果。例子:jdbcTemplate.queryForInt("select count(*) from user")
queryForObject(sqlStr, 指定的数据类型, 参数列表):查询一行任何类型的数据,最后一个参数指定返回结果类型。例子:jdbcTemplate.queryForObject("selct count(*) from user", Integer.class)
queryForMap(sqlStr, 参数列表):查询一行数据并将该行数据转换为 Map 返回。将会将列名作为key,列值作为 value 封装成 map。当查询出来的行数大于1时会报错。例子:jdbcTemplate.queryForMap("select * from user where username = ?", "aaa");
List<Map<String, Object>> queryForList(sqlStr, 参数列表):将查询结果集封装为 list 集合,该集合的每一条元素都是一个 map。
query(sqlStr, RowMapper对象, 参数列表):查询多行数据,并将结果集封装为元素是 JavaBean 的 list。(注意,指定的JavaBean的属性最好不要是基本类型,因为查询出来的结果可能是null,而null赋值为基本数据类型将会报错。比如int最好定义为Integer)
public class UserDaoImpl{
@Resource
private JdbcTemplate jdbcTemplate;
public int insert(User user) {
String sql = "insert into user values (?,?,?)";
int res = jdbcTemplate.update(sql,dept.getName(), dept.getAge());
return res;
}
public int update(User user) {
String sql = "update user set name = ?, age = ? where id = ?";
int res = jdbcTemplate.update(sql, user.getName(), user.getAge(), user.getId());
return res;
}
public int delete(Integer id) {
String sql = "delete from user where id = ?";
int res = jdbcTemplate.update(sql, id);
return res;
}
public User selectByUser(Integer userId) {
String sql = "select * from user where id = ?";
User user = jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<>(User.class), userId);
return user;
}
public List<User> selectAll() {
String sql = "select user.* from user";
List<User> res = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(User.class));
return res;
}
public List<Integer> selectAllUser() {
String sql = "select id from User";
List<Integer> res = jdbcTemplate.queryForList(sql, Integer.class);
return res;
}
}
public List<Map<String, Object>> selectAllUser() {
String sql = "select user.* from user";
List<Map<String, Object>> res = jdbcTemplate.queryForList(sql);
return res;
}
}