DBUtils介绍
1 DBUtils简介
DBUtils是Apache Commons组件中的一员,开源免费!
DBUtils是对JDBC的简单封装,但是它还是被很多公司使用!
jar:commons-dbutils.jar
2 DBUtils主要类
DbUtils:都是静态方法,一系列的close()方法;
QueryRunner:
update():执行insert、update、delete;DDL、DML
* int update(String sql, Object… params) --> 可执行增、删、改语句
* int update(Connection con, String sql, Object… parmas) 可以支持事务的功能
query():执行select语句;DQL
* T query(String sql, ResultSetHandler rsh, Object… params) --> 可执行查询
> 它会先得到ResultSet,然后调用rsh的handle()把rs转换成需要的类型!
* T query(Connection con, String sql, ResultSetHadler rsh, Object… params),支持事务
batch():执行批处理。
增、删、改
public void fun1() throws SQLException {
QueryRunner qr = new QueryRunner();
String sql = “insert into user values(?,?,?)”;
qr.update(JdbcUtils.getConnection(), sql, “u1”, “zhangSan”, “123”);
}
查
DataSource ds = JdbcUtils.getDataSource();
QueryRunner qr = new QueryRunner(ds);
String sql = “select * from tab_student”;
// 把结果集转换成Bean
Student stu = qr.query(sql, new BeanHandler(Student.class));
// 把结果集转换成Bean的List
List list = qr.query(sql, new BeanListHandler(Student.class));
// 把结果集转换成Map
Map<String,Object> map = qr.query(sql, new MapHandler());
// 把结果集转换成List
// 把结果集转换成一列的List
List list = qr.query(sql, new ColumnListHandler(“name”)) ;
// 把结果转换成单行单列的值
Number number = (Number)qr.query(sql, new ScalarHandler());
================
批处理
DataSource ds = JdbcUtils.getDataSource();
QueryRunner qr = new QueryRunner(ds);
String sql = "insert into tab_student values(?,?,?,?)";
Object[][] params = new Object[10][]; //表示 要插入10行记录
for(int i = 0; i < params.length; i++) {
params[i] = new Object[]{"S_300" + i, "name" + i, 30 + i, i%2==0?"男":"女"};
}
qr.batch (sql, params);
================