maven依赖:
<!-- https://mvnrepository.com/artifact/commons-dbutils/commons-dbutils -->
<dependency>
<groupId>commons-dbutils</groupId>
<artifactId>commons-dbutils</artifactId>
<version>1.6</version>
</dependency>
Demo1:SQL没参数
public static void main(String[] args) throws SQLException {
//.1创建对象
QueryRunner queryRunner = new QueryRunner();
//2.编写sql 这个SQL没有条件,所以下面的query中不需要传参数
String sql = "Select * from tableName";
//3.执行SQL, 第二个参数 结果返回类型(MapHandler -- 返回单个Map)
queryRunner.query(sql,new MapHandler());
//3.执行SQL, 第二个参数 结果返回类型(ScalarHandler -- 返回列的头一个值)
queryRunner.query(sql,new ScalarHandler());
}
Demo2:SQL有参数
public static void main(String[] args) throws SQLException {
//.1创建对象
QueryRunner queryRunner = new QueryRunner();
//2.编写sql 这个SQL 有条件,下面query 需要传参
String sql = "Select * from tableName where id = ?";
//2.1 sql语句ID定义
int id = 123;
//3.执行SQL, 第二个参数 结果返回类型(MapHandler -- 返回单个Map)
queryRunner.query(sql,new MapHandler(),id);
//3.执行SQL, 第二个参数 结果返回类型(ScalarHandler -- 返回列的头一个值)
queryRunner.query(sql,new ScalarHandler(),id);
//3.执行SQL, 第二个参数 结果返回类型(BeanHandler -- 返回自定义实体)
UserBean bean = queryRunner.query(sql, new BeanHandler<UserBean>(UserBean.class), id);
}
查看源码
query方法中RequestSetHandler 类型列表
AbstractListHandler —————— 返回多行List的抽象类
ArrayHandler —————— 返回一行的Object[]
ArrayListHandler —————— 返回List,每行是Object[]
BeanHandler —————— 返回第一个Bean对象
BeanListHandler —————— 返回List,每行是Bean
ColumnListHandler —————— 返回一列的List
KeyedHandler ——————返回Map,具体见代码
MapHandler —————— 返回单个Map
MapListHandler —————— 返回List,每行是Map
ScalarHandler —————— 返回列的头一个值