在Apache dbutils中有两个核心接口/类:QueryRunner和ResultSetHandler;下面是讲解
上代码
public class UserDao {
private QueryRunner queryRunner=new QueryRunner((DataSourceUtil.getDataSource()));
//开启驼峰映射
private BeanProcessor bean=new GenerousBeanProcessor();
private RowProcessor processor=new BasicRowProcessor(bean);
/**
* 根据id找分类
* @param id
* @return
*/
private Category findById(int id){
String sql="select * from category where id=?";
Category category=null;
try {
category=queryRunner.query(sql,new BeanHandler<>(Category.class,processor),id);
} catch (SQLException throwables) {
throwables.printStackTrace();
}
return category;
}
/**
* 返回分类列表
*/
private List<Category> list(){
String sql="select * from category where id=?";
List<Category> list=null;
try {
list=queryRunner.query(sql,new BeanListHandler<>(Category.class,processor));
} catch (SQLException throwables) {
throwables.printStackTrace();
}
return list;
}
}
通过上面的代码,主要解释,下面这个方法
category=queryRunner.query(sql,new BeanHandler<>(Category.class,processor),id);
首先query返回的是一个object对象,query的参数,第一个参数是sql语句,第二个new BeanHandler<>里面的两个参数,第一个是结果集查询后要映射到哪个类里面,第二个processor是设置驼峰映射,然后参数id是sql命令的参数,有些命令里面可以省略;
然后update的
public int save(User user) throws Exception {
// String sql="insert into user (phone,pwd,sex,img,create_time,role,username,wechat) values(?,?,?,?,?,?,?,?)";
// Object[] params={
// user.getPhone(),
// user.getPwd(),
// user.getSex(),
// user.getImg(),
// user.getCreateTime(),
// user.getRole(),
// user.getUsername(),
// user.getWechat()
// };
String sql = "delete from user where id= ?";
Object [] params = {15};
int i=0;
try {
i= queryRunner.update(sql,params);
}catch (Exception e){
e.printStackTrace();
throw new Exception();
}
return i;
}