在之前的项目中,因为边学边用spring框架,顺便也去学和用spring JDBC 框架。
总结一下:
增加,删除,修改 都是用的是update方法
/**增加,删除,修改
* @param sql sql语句
* @param agrs 参数
* @return
*/
public boolean updateOpr(String sql,Object ...agrs){
//rows是影响的行数,>0表示成功
int rows = jdbcTemplate.update(sql, agrs);
if(rows>0)
return true ;
else
return false;
}
对于查询:
// 查询得到一个对象
/**
* @param sql
* @param rowMapper
* @param args 参数
* @return 返回对象
*/
public <T> T selectforObjectNoExe( String sql,RowMapper<T> rowMapper,
Object... args) {
return jdbcTemplate.queryForObject(sql, rowMapper, args);
}
返回的是一个泛型
但是这个查询,如果没有查询到对象,它会报一个DataAccessException异常,所以,如果确定查询的时候会查询不到对象,需要用try{}catch(){}来捕捉异常,并进行判断,如果是该异常,返回为null,再在上层判断,如果是null,则进行怎么样的处理
// 得到一个对象,可能为空
public <T> T selectforObject( String sql,RowMapper<T> rowMapper,
Object... args) throws Exception {
try {
return jdbcTemplate.queryForObject(sql, rowMapper, args);
} catch (Exception e) {
e.printStackTrace();
if (e instanceof DataAccessException){
log.error("查询对象为空");
return null;
}
throw e;
}
}
前面的 RowMapper<T> rowMapper:
RowMapper<Active> rowMapper = new BeanPropertyRowMapper<Active>(
Active.class);
Active是实体类,这样,返回的就是一个Active对象