DBUtils提供的jar包实现CRUD操作
导入jar包:
commons-dbutils-1.3.jar
使用现成的jar中的QueryRunner测试增、删、改的操作:
//测试插入
@Test
public void testInsert(){
Connection connection = null;
try {
QueryRunner runner = new QueryRunner();
connection = JDBCUtils.getConnection();
String sql = "insert into customers(name,email,birth)values(?,?,?)";
int insertCount = runner.update(connection, sql, "张三", "zhangsan@126.com", "2000-09-08");
System.out.println("添加了"+ insertCount + "条记录");
} catch (SQLException e) {
e.printStackTrace();
} finally {
JDBCUtils.closeResource(connection,null);
}
}
使用现成的jar中的QueryRunner测试查询的操作:
/**
* 测试查询
* BeanHandler:是ResultHandler接口的实现类,用于封装表中的一条记录
*/
@Test
public void testQuery1(){
Connection connection = null;
try {
QueryRunner runner = new QueryRunner();
connection = JDBCUtils.getConnection();
String sql = "select id,name ,email,birth from customers where id = ?";
BeanHandler<Customer> beanHandler = new BeanHandler<>(Customer.class);
Customer customer = runner.query(connection, sql, beanHandler, 22);
System.out.println("customer = " + customer);
} catch (SQLException e) {
e.printStackTrace();
} finally {
JDBCUtils.closeResource(connection,null);
}
}
/**
* BeanListHandler:是ResultHandler接口的实现类,用于封装表中的多条记录构成的集合
*/
@Test
public void testQuery2(){
Connection connection = null;
try {
QueryRunner runner = new QueryRunner();
connection = JDBCUtils.getConnection();
String sql = "select id,name ,email,birth from customers where id < ?";
BeanListHandler<Customer> handler = new BeanListHandler<>(Customer.class);
List<Customer> customers = runner.query(connection, sql, handler, 22);
customers.forEach(System.out::println);
} catch (SQLException e) {
e.printStackTrace();
} finally {
JDBCUtils.closeResource(connection,null);
}
}
使用dbutils.jar包中的DbUtils工具类实现连接等资源的关闭:
public static void closeResource1(Connection conn,Statement ps,ResultSet rs){
DbUtils.closeQuietly(conn);
DbUtils.closeQuietly(ps);
DbUtils.closeQuietly(rs);
}