本帖最后由 小石姐姐 于 2018-5-23 14:43 编辑
DBUtils
##QueryRunner对象:核心运行类(执行CRUD和批处理)
```
构造方法
QueryRunner()
QueryRunner(DataSource ds)
类中方法
查询方法query
增删改方法Updata
```
##一般情况下如果哦执行CRUD的操作
```
构造:
QueryRunner(DataSource ds);
方法:
int update(String sql,Object... args);
T query(String sql,ResultSetHandler rsh,Object... args);
```
##如果有事务管理的话使用另一套完成CRUD的操作
```
构造:
QueryRunner();
方法:
int update(Connection conn,String sql,Object... args);
T query(Connection conn,String sql,ResultSetHandler rsh,Object... args);
```
###DBUtils类处理事务一个提交方法一个回滚方法
#DBUtils的使用之ResultSetHandler的实现类
###ArrayHandler(将一条记录封装到一个数组当中.这个数组应该是Oebject[])
###ArrayListHandler(将多条记录封装到一个装有Object数组的List集合中)
##封装对象到BeanHandler
```
注意结果集和别名的使用
BeanHandler: 将一条记录封装到一个JavaBean中
public void demo3() throws SQLException{
QueryRunner queryRunner = new QueryRunner(JDBCUtils2.getDataSource());
Account account = queryRunner.query("select * from account where id=?",new BeanHandler<Account>(Account.class),1);
syso(account);
```
##BeanListHandler:将多条记录封装到一个装有JavaBean的List集合中.
一条记录就是i一个Java的对象(JavaBean),如果多条记录(多个Java的对象),将多个Java对象撞到一个List集合中.
```
public void demo4() throws SQLException{
QueryRunner queryRunner = new QueryRunner(JDBCUtils2.getDataSource());
List<Account> list = queryRunner.query("select * from account",new BeanListHandler<Account>(Account.class))
for(Account account : list){
syso(account);
}
}
```
##技术点
```
决定一个JavaBean类的属性的不是由自己定义的属性决定的,而是由set和get方法来决定.
如果有setMoney()方法或者getMoney()方法,即使不定义money这个属性,这个类中也会默认有money这个属性
```
#DBUtils的使用之ResultSetHandler的实现类
##MapHandler:将一条记录封装到一个Map集合中,Map的key是列名,Map的value就是表中列的记录值.
```
public void demo5() throws SQLException{
QueryRunner queryRunner = new QueryRunner(JDBCUtils2.getDataSource());
Map<String,Object> map = queryRunner.query("select* from account where id=?",new MapHandler(),4);
syso(map);
}
```
##MapListHandler:将多条记录封装到一个装有Map的List集合中.
```
public void demo6() throws SQLException{
QueryRunner queryRunner = new QueryRunner(JDBCUtils2.getDataSource());
List<Map<String,Object>> list = queryRunner.query("select * from account",new MapListHandler());
for(Map<String,Object> map: list){
syso(map);
}
}
```
##实现类四
```
ColumnListHandler ScalarHandler KeyedHandler
```
###ColumnListHandler:将数据中的某列封装到List集合中
```
public void demo7() throws SQLException{
QueryRunner queryRunner = new QueryRunner(JDBCUtils2.getDataSource());
List<Object> list = queryRunner.query("select name,money from account",new ColumnListHandler("name"));
for(Object object : list){
syso(object);
}
}
```
###ScalarHandler:将单个值封装
```
public void demo8() throws SQLException{
QueryRunner queryRunner = new QueryRunner(JDBCUtils2.getDataSource());
Object obj = queryRunner.query("select count(*) from account",new ScalarHandler());
syso(obj);
}
```
###KeyedHandler(了解):将一条记录封装到一个Map集合中.将多条记录封装到一个装有Map集合的Map集合中.而且外面的Map的key是可以指定的.
```
public void demo9() throws SQLException{
QueryRunner queryRunner = new QueryRunner(JDBCUtils2.getDataSource());
Map<Object,Map<String,Object>> map=queryRunner.query("select * from account",new KeyedHandler("id"));
for(Object key : map.keySet()){
syso(key+" "+map.get(key));
}
}
```
|
|