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

本文共 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

你可能感兴趣的文章
scrollview不充满屏幕的原因
查看>>
PHP单例模式
查看>>
解密敏捷自动化测试
查看>>
DelphiMVC拦截器介绍
查看>>
Spring Cloud构建微服务架构:分布式配置中心【Dalston版】
查看>>
iOS 11正式版终于来了!强力助攻小程序
查看>>
开放平台API接口调用频率控制系统设计浅谈
查看>>
Lucene4.3进阶开发之潜龙勿用( 七)
查看>>
DTD和schema小总结
查看>>
去掉导航栏的黑线
查看>>
怎样让html加载完毕后加载js代码
查看>>
piwik 案例介绍
查看>>
敏感字过滤
查看>>
为什么我们要从 NodeJS 迁移到 Ruby on Rails
查看>>
Android 文件式数据库Realm
查看>>
Linux 面试知识点笔记
查看>>
论flex布局和box布局的华为meta8手机自带浏览器的兼容
查看>>
dubbo与springcloud初识
查看>>
iis web.config 配置示例
查看>>
归并排序
查看>>