Commons DbUtils是Apache组织提供的一个对JDBC进行简单封装的开源工具类库,使用它能够简化 JDBC应用程序的开发,同时也不会影响程序的性能。尤其结合连接池使用效果更为理想。 Commons DbUtils的核心是两个类一个接口:
1、DBUtils类:主要为关闭连接,装载JDBC驱动程序之类的常规工作提供方法,都是静态的方法。
2、QueryRunner类:为我们提供两个重要方法,调用方法之前需要先创建一个QueryRunner的对象。 QueryRunner qRunner=new QueryRunner(new ComboPooledDataSource()); 创建对象时需要传入一个连接池的数据源,这里结合c3p0连接池来完成。 qRunner.update():支持DML操作 qRunner.query():支持DQL操作 两个方法都有多个重载,可以根据需求选择不同的重载方法。
3、ResultSetHandler接口:用于处理ResultSet结果集,将结果集的的数据转换成不同形式。该接口的 实现类有很多:
测试
public class DbutilsTest {
@Test
public void test() {
//selectC3p0().forEach(System.out::println);
selectDruid().forEach(System.out::println);
}
InputStream in = null;
DataSource dataSource = null;
QueryRunner queryRunner = null;
BeanListHandler beanListHandler = new BeanListHandler<>(Tb_student.class);
public List<Tb_student> selectDruid() {
//创建集合
List<Tb_student> list = new ArrayList<>();
try {
//读取配置文件信息
in = new FileInputStream("day10\\src\\Druid.properties");
Properties properties = new Properties();
properties.load(in);
//初始化连接池
dataSource = DruidDataSourceFactory.createDataSource(properties);
String sql = "select * from tb_student";
queryRunner = new QueryRunner(dataSource);
list = (List<Tb_student>) queryRunner.query(sql, beanListHandler);
} catch (Exception e) {
e.printStackTrace();
}
return list;
}
public List<Tb_student> selectC3p0() {
//创建集合
List<Tb_student> list = new ArrayList<>();
try {
//初始化连接池
dataSource = new ComboPooledDataSource();
String sql = "select * from tb_student";
queryRunner = new QueryRunner(dataSource);
list = (List<Tb_student>) queryRunner.query(sql, beanListHandler);
} catch (Exception e) {
e.printStackTrace();
}
return list;
}
}