1 // 这个是在添加数据
  2     @Test
  3     public void demo1() {
  4         QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());
  5         String sql = "insert into Book values(?,?)";
  6         try {
  7             int num = qr.update(sql, 26, "明朝那些事");
  8             if (num > 0) {
  9                 System.out.println("添加成功");
 10             } else {
 11                 System.out.println("添加失败");
 12             }
 13         } catch (SQLException e) {
 14             // TODO Auto-generated catch block
 15             e.printStackTrace();
 16         }
 17     }
 18
 19     // 修改数据
 20     @Test
 21     public void demo2() {
 22         QueryRunner queryRunner = new QueryRunner(JDBCUtils.getDataSource());
 23         try {
 24             String sql = "update Book set bname=? where id=?";
 25             int num = queryRunner.update(sql, "史记", 29);
 26             if (num > 0) {
 27                 System.out.println("添加成功");
 28             } else {
 29                 System.out.println("添加失败");
 30             }
 31         } catch (Exception e) {
 32             e.printStackTrace();
 33         }
 34     }
 35
 36     // 下面的是查询语句
 37     // 将数据表中的第一条数据封装成object
 38     @Test
 39     public void demo3() {
 40         QueryRunner queryRunner = new QueryRunner(JDBCUtils.getDataSource());
 41         try {
 42             String sql = "select * from Book";
 43             Object[] objects = queryRunner.query(sql, new ArrayHandler());
 44
 45             System.out.println(Arrays.toString(objects));
 46         } catch (Exception e) {
 47             e.printStackTrace();
 48         }
 49     }
 50
 51     //将数据表中的每一条数据封装成object    new ArrayListHandler()
 52     @Test
 53     public void demo4(){
 54         QueryRunner queryRunner=new QueryRunner(JDBCUtils.getDataSource());
 55         try {
 56             String sql="select * from Book";
 57             List<Object[]> list=queryRunner.query(sql,new ArrayListHandler());
 58
 59             for(Object[] objects:list){
 60                 System.out.println(Arrays.toString(objects));
 61             }
 62
 63         } catch (Exception e) {
 64             e.printStackTrace();
 65         }
 66     }
 67
 68
 69     //把数据表中的第一条数据封装成JavaBean实体类对象   BeanHandler
 70     @Test
 71     public void demo5(){
 72         QueryRunner queryRunner=new QueryRunner(JDBCUtils.getDataSource());
 73         try {
 74             String sql="select * from Book";
 75             Book list=queryRunner.query(sql,new BeanHandler<>(Book.class));
 76
 77             System.out.println(list.toString());
 78         } catch (Exception e) {
 79             e.printStackTrace();
 80         }
 81     }
 82
 83
 84     //把数据表中的每一条数据封装成JavaBean实体类对象   BeanListHandler
 85         @Test
 86     public void demo6(){
 87             QueryRunner queryRunner=new QueryRunner(JDBCUtils.getDataSource());
 88             try {
 89                 String sql="select * from Book";
 90                 List<Book> list=queryRunner.query(sql,new BeanListHandler<>(Book.class));
 91
 92                 for(Book book:list)
 93                     System.out.println(book.toString());
 94             } catch (Exception e) {
 95                 e.printStackTrace();
 96             }
 97         }
 98
 99     //把数据表中的第一条数据封装成Map集合 ,键:列名  值:该列的值 new MapHandler()
100     @Test
101     public void demo7(){
102         QueryRunner queryRunner=new QueryRunner(JDBCUtils.getDataSource());
103         try {
104             String sql="select * from Book";
105             Map<String,Object > map=queryRunner.query(sql,new MapHandler());
106
107             System.out.println(map);
108         } catch (Exception e) {
109             e.printStackTrace();
110         }
111     }
112
113     //把数据表中的每一条数据封装成Map集合 ,键:列名  值:该列的值 new MapListHandler()
114         @Test
115         public void demo8(){
116             QueryRunner queryRunner=new QueryRunner(JDBCUtils.getDataSource());
117             try {
118                 String sql="select * from Book";
119                 List<Map<String,Object >>list=queryRunner.query(sql,new MapListHandler());
120                for(Map<String,Object>map:list)
121                 System.out.println(map);
122             } catch (Exception e) {
123                 e.printStackTrace();
124             }
125         }
126
127         // ColunmListHandler: 把数据表中的没一条数据封装成 Map集合, 键:列名      值:该列的值 , 然后把每一行的Map集合装入到一个List集合中.
128         @Test
129         public void demo9() {
130             // 1. 获取可以执行SQL语句的对象: QueryRunner
131             QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());
132             // 2. 编写需要执行的SQL语句
133             String sql = "select * from Book;";
134             // 3. 执行SQL语句, 获取结果集
135             try {
136                 List<Object> list = qr.query(sql, new ColumnListHandler("bname"));
137                 System.out.println(list);
138             } catch (SQLException e) {
139                 e.printStackTrace();
140             }
141         }
142
143         // ScalarHandler: 把数据表中的没一条数据封装成 Map集合, 键:列名      值:该列的值 , 然后把每一行的Map集合装入到一个List集合中.
144         @Test
145         public void demo10() {
146             // 1. 获取可以执行SQL语句的对象: QueryRunner
147             QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());
148             // 2. 编写需要执行的SQL语句
149             String sql = "select count(*) from Book;";
150             // 3. 执行SQL语句, 获取结果集
151             try {
152                 Object obj = qr.query(sql, new ScalarHandler());
153                 System.out.println(obj);
154             } catch (SQLException e) {
155                 e.printStackTrace();
156             }
157         }
158
159         // KeyedHandler: 把数据表中的没一条数据封装成 Map集合, 键:列名      值:该列的值 , 然后把每一行的Map集合装入到一个List集合中.
160         @Test
161         public void demo11() {
162             // 1. 获取可以执行SQL语句的对象: QueryRunner
163             QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());
164             // 2. 编写需要执行的SQL语句
165             String sql = "select * from Book;";
166             // 3. 执行SQL语句, 获取结果集
167             try {
168                 Map<Object, Map<String, Object>> map = qr.query(sql, new KeyedHandler("bname"));
169                 for (Object key : map.keySet()) {
170                     System.out.println(key + "..." + map.get(key));
171                 }
172
173             } catch (SQLException e) {
174                 e.printStackTrace();
175             }
176         }

转载于:https://www.cnblogs.com/zhuguangzhe/p/7458260.html

数据库连接池之_DButils相关推荐

  1. c#打开数据库连接池的工作机制_数据库连接池-tomcat-jdbc使用笔记

    现在 主流的数据库连接池有:Proxool.C3P0.DBCP.tomcat-jdbc.Druid.其中tomcat-jdbc是tomcat服务器比较可靠的 数据库连接池. Tomcat 在 7.0 ...

  2. Druid数据库连接池超时问题com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 1000, active 10

    问题描述: com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 1000, active 10at com.alibab ...

  3. Druid数据库连接池使用参考

    一:添加相应依赖 druid-1.0.9.jar: mysql-connector-java-5.1.48-bin.jar 二:编写properties文件 放置位置在src中: driverClas ...

  4. mysql连接池为何不用nio_为什么要用数据库连接池?

    1.为什么要用数据库连接池? 最原始的数据库使用就是打开一个连接并进行使用,使用过后一定要关闭连接释放资源.由于频繁的打开和关闭连接对jvm包括数据库 都有一定的资源负荷,尤其应用压力较大时资源占用比 ...

  5. net core mysql 连接池_EF Core 小坑:DbContextPool 会引起数据库连接池连接耗尽

    EF Core 小坑:DbContextPool 会引起数据库连接池连接耗尽 发布时间:2019-02-18 22:05, 浏览次数:1152 , 标签: EF Core DbContextPool ...

  6. 数据库连接池,实现及分析

    在我们日常对数据库操作时存在一个问题,要为每次数据操作请求建立一个数据库连接.而每次建立连接都需要花费很多开销,如加载驱动类.注册驱动.获取连接,这样如果在短时间内连接多次,就 会耗费多余的时间(加载 ...

  7. swoole实现数据库连接池

    2019独角兽企业重金招聘Python工程师标准>>> 原生 PHP CURD 让我们来回顾一下PHP中数据库的使用 <?php # curd.php$id = 1;$dbh ...

  8. 聊一个不常见的面试题:为什么数据库连接池不采用 IO 多路复用?

    欢迎关注方志朋的博客,回复"666"获面试宝典 今天我们聊一个不常见的 Java 面试题:为什么数据库连接池不采用 IO 多路复用? 这是一个非常好的问题.IO多路复用被视为是非常 ...

  9. 为什么数据库连接池不采用 IO 多路复用?

    欢迎关注方志朋的博客,回复"666"获面试宝典 接着,今天我们聊一个不常见的 Java 面试题:为什么数据库连接池不采用 IO 多路复用? 这是一个非常好的问题.IO多路复用被视为 ...

最新文章

  1. 搞懂机器学习的常用评价指标!
  2. SMO学习笔记(三)——效验数据库备份文件
  3. 密码篇——对称加密—DES
  4. python3学哪个版本好玩_python2和python3到底应该学哪个好?
  5. Binding在WPF中的使用
  6. YbtOJ#20067-[NOIP2020模拟赛B组Day5]糖果分配【dp】
  7. mybatis学习(7):Windows下安装MySQL详细教程
  8. Oracle的执行计划详解
  9. 最近发现了一条新的“致富”路
  10. Python连接SQLite
  11. 获取元素属性(offsetHeight、clientHeight...)无效
  12. 一文读懂机器学习(转)
  13. 图片转化成矩阵,灰度处理,黑白对调--ByMatlab
  14. li序号 ul_ul ol li的序号编号样式
  15. SSM+基于微信小程序的航空售票管理系统 毕业设计-附源码191111
  16. 【Unity3d】存档与读档
  17. ThreeJs顶点法向量光照计算
  18. PHP招聘:如何面试应届生求职者
  19. 手眼标定AX=XB原理
  20. python实现批量修改图片颜色

热门文章

  1. 廊田镇楼下村定点帮扶-农业大健康·李喜贵:功能性农业深加工
  2. Pandas CookBook -- 02DataFrame基础操作
  3. WPF控件textBox多行输入设置
  4. Eclipse中设置在创建新类时自动生成注释的方法
  5. 学习笔记---好文章链接帖
  6. ios 获取当前系统时间
  7. C# HashTable 使用用法详解
  8. SqlServer判断数据库、表、存储过程、函数是否存在
  9. 阿里的财报,释放了什么信号?
  10. 如何更好的解决问题 : The puzzle of die