博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DBUtil
阅读量:6575 次
发布时间:2019-06-24

本文共 1968 字,大约阅读时间需要 6 分钟。

DBUtils

增删改

//dbutils 只是帮我们简化了CRUD 的代码, 但是连接的创建以及获取工作。 不在他的考虑范围    QueryRunner queryRunner = new QueryRunner(new ComboPooledDataSource());        //增加    //queryRunner.update("insert into account values (null , ? , ? )", "aa" ,1000);        //删除    //queryRunner.update("delete from account where id = ?", 5);        //更新    //queryRunner.update("update account set money = ? where id = ?", 10000000 , 6);

查询

  1. 直接new接口的匿名实现类

    QueryRunner queryRunner = new QueryRunner(new ComboPooledDataSource()); Account  account =  queryRunner.query("select * from account where id = ?", new ResultSetHandler
    (){ @Override public Account handle(ResultSet rs) throws SQLException { Account account = new Account(); while(rs.next()){ String name = rs.getString("name"); int money = rs.getInt("money"); account.setName(name); account.setMoney(money); } return account; } }, 6); System.out.println(account.toString());
  2. 直接使用框架已经写好的实现类。

    • 查询单个对象

      QueryRunner queryRunner = new QueryRunner(new ComboPooledDataSource());

      //查询单个对象
      Account account = queryRunner.query("select * from account where id = ?",
      new BeanHandler(Account.class), 8);

    • 查询多个对象

      QueryRunner queryRunner = new QueryRunner(new ComboPooledDataSource());

      List list = queryRunner.query("select * from account ",
      new BeanListHandler(Account.class));

ResultSetHandler 常用的实现类

以下两个是使用频率最高的

BeanHandler,  查询到的单个数据封装成一个对象BeanListHandler, 查询到的多个数据封装 成一个List
<对象>

ArrayHandler,  查询到的单个数据封装成一个数组ArrayListHandler,  查询到的多个数据封装成一个集合 ,集合里面的元素是数组。 MapHandler,  查询到的单个数据封装成一个mapMapListHandler,查询到的多个数据封装成一个集合 ,集合里面的元素是map。

ColumnListHandler

KeyedHandler
ScalarHandler

总结

事务

使用命令行演示使用代码演示

脏读、

不可重复读、

幻读

丢失更新

悲观锁乐观锁4个隔离级别    读未提交    读已提交    可重复读    可串行化

数据连接池

  • DBCP

    不使用配置

    使用配置

  • C3P0

    不使用配置

    使用配置 (必须掌握)

  • 自定义连接池

    装饰者模式

DBUtils

简化了我们的CRUD , 里面定义了通用的CRUD方法。

queryRunner.update();queryRunner.query

转载于:https://www.cnblogs.com/lq123/p/10089146.html

你可能感兴趣的文章
B0BO TFS 安装指南(转载)
查看>>
gulp常用命令
查看>>
TCP(Socket基础编程)
查看>>
RowSet的使用
查看>>
表单提交中的input、button、submit的区别
查看>>
每日一记--cookie
查看>>
约瑟夫环
查看>>
S5:桥接模式 Bridge
查看>>
线程池-Executors
查看>>
WPF and Silverlight 学习笔记(十二):WPF Panel内容模型、Decorator内容模型及其他...
查看>>
FLUSH TABLES WITH READ LOCK 和 LOCK TABLES比较
查看>>
MySQL:创建、修改和删除表
查看>>
Java多线程程序设计详细解析
查看>>
IOS 7 Study - UISegmentedControl
查看>>
八、通用类型系统
查看>>
JQuery的ajaxFileUpload的使用
查看>>
Java分享笔记:使用keySet方法获取Map集合中的元素
查看>>
Java面向对象练习题之人员信息
查看>>
关于Integer类中parseInt()和valueOf()方法的区别以及int和String类性的转换.以及String类valueOf()方法...
查看>>
python之sys模块详解
查看>>