1. JDBCTemplate是持久层(数据访问层)的技术,它封装了jdbc的操作,可以更方便的执行crud。
2. 使用需要在pom.xml中引入依赖
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.3.23.RELEASE</version>
</dependency>
3. jdbcTempalte的常用API
(1) update():执行增、删、改操作,返回影响数据库的行数
(2)queryForObject(String sql, Class requiredType): 针对单行单列查询,返回单个值,参数2是返回值类型对应的class对象
例如:
Integer count = jdbcTemplate.queryForObject(sql, Integer.class);
(3)queryForObject(String sql, RowMapper rowMapper, Object… args): 针对单行多列查询,返回一个javaBean对象
RowMapper<User> rowMapper = new BeanPropertyRowMapper<User>(User.class);
User user = jdbcTemplate.queryForObject(sql, rowMapper, params);
(4)query(String sql, RowMapper rowMapper, Object… args):针对多行
多列查询,返回javaBean对象的集合
RowMapper<User> rowMapper = new BeanPropertyRowMapper<User>(User.class);
List<User> list = jdbcTemplate.query(sql, rowMapper, params);
(5)queryForList(String sql, Class elementType) :针对多行单列的查询,返回一个简单类型的集合,比如List
String sql="select name from t_user";
List<String> names = jdbcTemplate.queryForList(sql, String.class);
return names;
注意:如果是多表连接查询返回多行多列结果,需要用RowMapper自己手动封装结果集
注意:一定要进行异常处理!!!
try {
User user = jdbcTemplate.queryForObject(sql, rowMapper, loginUser.getUserName(), loginUser.getPasswd());
return user;
} catch (DataAccessException e) {
//e.printStackTrace();
return null;
}