简化JDBC
Dbutils三个核心功能介绍
l QueryRunner中提供对sql语句操作的API.
l ResultSetHandler接口,用于定义select操作后,怎样封装结果集.
l DbUtils类,它就是一个工具类,定义了关闭资源与事务处理的方法
1.1 QueryRunner核心类
l update(Connection conn, String sql, Object... params) ,用来完成表数据的增加、删除、更新操作
l query(Connection conn, String sql, ResultSetHandler<T> rsh, Object... params) ,用来完成表数据的查询操作
1.1.1 ResultSetHandler结果集处理类
ArrayHandler |
将结果集中的第一条记录封装到一个Object[]数组中,数组中的每一个元素就是这条记录中的每一个字段的值 |
ArrayListHandler |
将结果集中的每一条记录都封装到一个Object[]数组中,将这些数组在封装到List集合中。 |
BeanHandler |
将结果集中第一条记录封装到一个指定的javaBean中。 |
BeanListHandler |
将结果集中每一条记录封装到指定的javaBean中,将这些javaBean在封装到List集合中 |
ColumnListHandler |
将结果集中指定的列的字段值,封装到一个List集合中 |
ScalarHandler |
它是用于单数据。例如select count(*) from 表操作。 |
MapHandler |
将结果集第一行封装到Map<String,Object>集合中,Key 列名, Value 该列数据 |
MapListHandler |
将结果集每一行封装到List<Map<String,Object>>集合中,Key 列名, Value 该列数据,Map集合存储到List集合 |
//增加数据 public int zengjia(User user){ QueryRunner rq=new QueryRunner(MyDBCUtils.getDataSource()); String sql="insert into user(pname,pwd) values(?,?)"; int row=qr.update(sql,user.getPname,user.getPwd); return row; } //删除数据 public int shanchu(User user){ QueryRunner qr=new QueryRunner(MyDBUtils.getDataSource()); String sql="delete from sort where sid=?"; int row=qr.update(sql,user.getSid); return row; } //查询数据常用的四种 //查询一行 public Sort chaxun1(int sid){ QueryRunner qr=new QueryRunner(MyDBCUtils.getDataSource()); String sql="select * from user where sid=?"; Sort sort=qr.query(sql,new BeanHandler<Sort>(Sort.class),sid); return sort; } //将结果集中每一条记录封装到指定的javaBean中,将这些javaBean在封装到List集合中 public List<Sort> chaxun2(){ QueryRunner qr=new QueryRunner(MyDBCUtils.getDataSource()); String sql="select * from user"; List<Sort> list=qr.query(sql,new BeanListHandler<Sort>(Sort.class)); return list; } //查询一列,封装到集合中 public List<Sort> chaxun3(){ QueryRunner qr=new QueryRunner(MyDBCUtils.getDataSource()); String sql="select sname from user"; List<Sort> list=qr.query(sql,new ColumListHandler<Sort>()); return list; } //查询count(*) public int chaxun4(){ QueryRunner qr=new QueryRunner(MyDBUtils.getDataSource()); String sql="select count(*) from user"; Long rs=qr.query(sql,new ScalarHandler<Long>()); int row=rs.intValue(); return row; }
连接池
1.1.1 常见配置项
分类 |
属性 |
描述 |
必须项 |
driverClassName |
数据库驱动名称 |
url |
数据库的地址 |
|
username |
用户名 |
|
password |
密码 |
|
基本项(扩展) |
maxActive |
最大连接数量 |
minIdle |
最小空闲连接 |
|
maxIdle |
最大空闲连接 |
|
initialSize |
初始化连接 |