DbUtils工具类
是Apache Commons 项目组提供的一个高效的JDBC代码开发工具包。
官网: http://commons.apache.org/proper/commons-dbutils/
核心类: QueryRunner
public static boolean save(Cart cart){
//1. 核心对象 QueryRunner 是进行数据库操作的核心对象。
// 它的带参数的 DataSource 构造方法,决定了将来它的所有操作,会自动从连接池中获取连接,且用完之后自动放回。 不需要我们操心。
QueryRunner queryRunner = new QueryRunner(DataSourceUtils.getDataSource());
int result = -1;
//借助这个对象可以方便高效的进行 CRUD 操作。
//今天用的全是方法中不带 Connection 参数的方法。
//1. insert操作 -> update方法
//sql 就是你要传递的insert 语句,参数用问号代替
try {
result = queryRunner.update("insert into s_cart (name,price,total) values(?,?,?)",cart.getName(),cart.getPrice(),cart.getTotal());
} catch (SQLException e) {
e.printStackTrace();
}
return result!=-1;
}
/**
演示查询
*/
public static Cart getById(int id){
QueryRunner queryRunner = new QueryRunner(DataSourceUtils.getDataSource());
//所有的select操作,使用query方法来进行
//第二个参数 ResultSetHandler 是关键。
//DbUtils工具类提供了 ResultSetHandler 接口的不同实现来应对不同的场景。
// BeanHandler 用于将结果中的一行数据,映射到一个Java对象上。
Cart cart = null;
try {
//注意: 这里的Cart 是通过反射来创建的。 意味着,我们必须保证它存在公共无参的构造方法。
cart = queryRunner.query("select * from s_cart where id=?", new BeanHandler<Cart>(Cart.class), id);
} catch (SQLException e) {
e.printStackTrace();
}
return cart;
}
public static boolean update(Cart cart) {
//1. 核心对象 QueryRunner 是进行数据库操作的核心对象。
// 它的带参数的 DataSource 构造方法,决定了将来它的所有操作,会自动从连接池中获取连接,且用完之后自动放回。 不需要我们操心。
QueryRunner queryRunner = new QueryRunner(DataSourceUtils.getDataSource());
int result = -1;
//借助这个对象可以方便高效的进行 CRUD 操作。
//今天用的全是方法中不带 Connection 参数的方法。
//1. update操作 -> update方法
//sql 就是你要传递的update 语句,参数用问号代替
try {
result = queryRunner.update("update s_cart set name=?,price=?,total=? where id=?",cart.getName(),cart.getPrice(),cart.getTotal(),cart.getId());
} catch (SQLException e) {
e.printStackTrace();
}
return result!=-1;
}
public static boolean deleteById(int id) {
//1. 核心对象 QueryRunner 是进行数据库操作的核心对象。
// 它的带参数的 DataSource 构造方法,决定了将来它的所有操作,会自动从连接池中获取连接,且用完之后自动放回。 不需要我们操心。
QueryRunner queryRunner = new QueryRunner(DataSourceUtils.getDataSource());
int result = -1;
//借助这个对象可以方便高效的进行 CRUD 操作。
//今天用的全是方法中不带 Connection 参数的方法。
//1. delete操作 -> update方法
//sql 就是你要传递的delete语句,参数用问号代替
try {
result = queryRunner.update("delete from s_cart where id=?",id);
} catch (SQLException e) {
e.printStackTrace();
}
return result!=-1;
}