package JDBC_Demo;

import java.sql.SQLException;

import java.util.List;

import java.util.Map;

import org.apache.commons.dbutils.DbUtils;

import org.apache.commons.dbutils.QueryRunner;

import org.apache.commons.dbutils.handlers.ArrayHandler;

import org.apache.commons.dbutils.handlers.ArrayListHandler;

import org.apache.commons.dbutils.handlers.BeanHandler;

import org.apache.commons.dbutils.handlers.BeanListHandler;

import org.apache.commons.dbutils.handlers.ColumnListHandler;

import org.apache.commons.dbutils.handlers.KeyedHandler;

import org.apache.commons.dbutils.handlers.MapListHandler;

import org.apache.commons.dbutils.handlers.ScalarHandler;

import com.mchange.v2.c3p0.ComboPooledDataSource;

public class TestQueryRunner2 {

public static void main(String[] args) {
ComboPooledDataSource cp=new ComboPooledDataSource();
try {
DbUtils.loadDriver("com.mysql.jdbc.Driver");
cp.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/ch003?useUnicode=true&characterEncoding=UTF-8");
cp.setUser("root");
cp.setPassword("wsl123456");
cp.setInitialPoolSize(10);
cp.setMaxPoolSize(20);
cp.setMinPoolSize(2);
QueryRunner qr=new QueryRunner(cp);
String sql="select * from account";
/**
* 第一种查询
* ArrayHandler
* 把结果集中的第一行数据转成对象数组。
*/
/*Object [] a=qr.query(sql,new ArrayHandler());
for(Object o:a) {
System.out.print(o+"\t");
}
*/
/**
* 第二种查询
* ArrayListHandler
* 把结果集中的每一行数据都转成一个数组,再存放到List中
*/
/*List<Object[]> l=qr.query(sql,new ArrayListHandler());
for(Object[] o:l) {
for(Object oo:o) {
System.out.print(oo+"\t");
}
System.out.println();
}*/
/**
* 第三种查询
* BeanHandler
* 将结果集中的第一行数据封装到一个对应的JavaBean实例中
*/
Account a=qr.query(sql,new BeanHandler<Account>(Account.class));
System.out.println(a);
/**
* 第四种查询
* BeanListHandler
* 将结果集中的每一行数据都封装到一个对应的JavaBean实例中,存放到List里。
*/
/*List<Account> ls=qr.query(sql,new BeanListHandler<Account>(Account.class));
for(Account a:ls) {
System.out.println(a);
}*/
/**
* 第五种
* ColumnListHandler
* 将结果集中某一列的数据存放到List中。
* <Integer>尖括号中的类型根据("cash")指定的列所属的类型来决定
*/
/*List<Integer> l=qr.query(sql,new ColumnListHandler<Integer>("cash"));
for(Integer o:l) {
System.out.println(o);
}*/
/**
* 第六种
* KeyedHandler
* 将结果集中的每一行数据都封装到一个Map里,再把这些map再存到一个map里,其key为指定的key
*/
/*Map<String, Map<String, Object>> m=qr.query(sql,new KeyedHandler<String>(4));
for(String a:m.keySet()) {
System.out.println(m.get(a));
}*/
/**
* 第七种
* MapHandler
*/
/*Map m = qr.query(sql, new MapHandler());
System.out.println(m.get("id")+" "+m.get("name")+" "+m.get("cash"));*/
/**
* 第八种
* MapListHandler
*/
/*List<Map<String, Object>> a=qr.query(sql,new MapListHandler());
for(Map<String, Object> m:a) {
System.out.println(m.get("name")+" "+m.get("cash"));
}*/
/**
* 结果集第九种处理方法、
* 对于查询后,只有一个结果
*/
/*String st = "select count(*) from account";
long a = qr.query(st, new ScalarHandler<Long>());
System.out.println(a);
*/
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} } public static ComboPooledDataSource getDataSource() {
ComboPooledDataSource cbp=new ComboPooledDataSource(); return null;
}

}

JDBC连接池的九种查询的更多相关文章

  1. JDBC 连接池的两种方式——dbcp & c3p0

    申明:本文对于连接资源关闭采用自定义的 JDBCUtils 工具: package com.test.utils; import java.sql.Connection; import java.sq ...

  2. Spring+SpringMVC+MyBatis+easyUI整合优化篇(九)数据层优化-jdbc连接池简述、druid简介

    日常啰嗦 终于回到既定轨道上了,这一篇讲讲数据库连接池的相关知识,线程池以后有机会再结合项目单独写篇文章(自己给自己挖坑,不知道什么时候能填上),从这一篇文章开始到本阶段结束的文章都会围绕数据库和da ...

  3. Jmeter(九)JDBC连接池

    JDBC为java访问数据库提供通用的API,可以为多种关系数据库提供统一访问.因为SQL是关系式数据库管理系统的标准语言,只要我们遵循SQL规范,那么我们写的代码既可以访问MySQL又可以访问SQL ...

  4. Tomcat 的 JDBC 连接池

    JDBC 连接池 org.apache.tomcat.jdbc.pool 是 Apache Commons DBCP 连接池的一种替换或备选方案. 那究竟为何需要一个新的连接池? 原因如下: Comm ...

  5. 【JDBC&Dbutils】JDBC&JDBC连接池&DBUtils使用方法(重要)

    -----------------------JDBC---------- 0.      db.properties文件 driver=com.mysql.jdbc.Driver url=jdbc: ...

  6. JDBC连接池和DBUtils

    本节内容: JDBC连接池 DBUtils 一.JDBC连接池 实际开发中“获得连接”或“释放资源”是非常消耗系统资源的两个过程,为了解决此类性能问题,通常情况我们采取连接池技术,来共享连接Conne ...

  7. JDBC连接池&DBUtils

    JDBC连接池 DBCP:Apache推出的Database Connection Pool 使用步骤: > 添加jar包  commons-dbcp-1.4.jar  commons-pool ...

  8. JDBC连接池&DBUtils使用

    使用连接池改造JDBC的工具类: 1.1.1          需求: 传统JDBC的操作,对连接的对象销毁不是特别好.每次创建和销毁连接都是需要花费时间.可以使用连接池优化的程序. * 在程序开始的 ...

  9. 数据层优化-jdbc连接池简述、druid简介

    终于回到既定轨道上了,这一篇讲讲数据库连接池的相关知识,线程池以后有机会再结合项目单独写篇文章(自己给自己挖坑,不知道什么时候能填上),从这一篇文章开始到本阶段结束的文章都会围绕数据库和dao层的优化 ...

随机推荐

  1. [LeetCode] 83. Remove Duplicates from Sorted List 移除有序链表中的重复项

    Given a sorted linked list, delete all duplicates such that each element appear only once. Example 1 ...

  2. Windows下MySQL安装流程,8.0以上版本ROOT密码报错及修改

    官网下载MySQL安装后,解压,添加环境变量,以管理员方式运行cmd,运行以下命令 mysqld --initialize --console mysqld -install net start my ...

  3. pyqt中pyrcc和pyuic的使用

    一.pyrcc的使用 1.1 作用 将资源文件转换成py文件,并在主程序引入 1.2 资源文件编写说明 新建resource.qrc,代码如下: <!DOCTYPE RCC><RCC ...

  4. pandas的使用(7)--分组

    pandas的使用(7)--分组

  5. 如何定时查询某线程的CPU执行时间

    #!/bin/bash pid=$(ps -T -p $(pgrep xxx) | grep xxx | gawk -F" " '{print $2}') if [ -z $pid ...

  6. Kubernetes管理GPU应用

    目录 简介 GPU驱动 Nvidia-docker Nvidia-device-plugin 在Kubernetes上运行GPU应用 附录 简介 伴随着人工智能技术的发展,机器学习的应用场景越来越广泛 ...

  7. mybatis + mysql 批量插入、删除、更新

    mybatis + mysql 批量插入.删除.更新 Student 表结构 批量插入 public int insertBatchStudent(List<Student> studen ...

  8. idea中maven项目打jar包

    从Eclipse换成Idea的小伙伴们可能会找不到Eclipse中Maven项目打jar包的方法,因为eclipse只需要在工程上点击右键,右键菜单中就有Maven打包的相关选项. 然而Idea的右键 ...

  9. WPF DataGird 类似Excel筛选效果 未成品

    这个本是针对MSDN上所写的代码,不过写一半不想写了. 不想浪费代码,是个半成品的半成品. 效果图: 思路: 利用PopUp来做显示层. 显示层中的数据则是绑定到Datagrid的数据. popup中 ...

  10. 【题解】Diferenc-Diferencija [SP10622]

    [题解]Diferenc-Diferencija [SP10622] 传送门:\(\text{Diferenc-Diferencija}\) \(\text{[SP10622]}\) [题目描述] 序 ...