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. X509证书 指定了无效的提供程序类型 System.Security.Cryptography.CryptographicException 错误解决方法

    第一种解决办法: IIS 应用程序池--选中你网站的所配置的应用程序池--右键 选择 “高级配置” --将“加载用户配置文件” 设置为True 第二种解决办法: 在加载证书方法时使用以下方法,请注意第 ...

  2. Linux系统运维笔记,CentOS 7.4防火墙配置

    1.查看firewall服务状态 systemctl status firewalld 2.查看firewall的状态 firewall-cmd --state 3.开启.重启.关闭.firewall ...

  3. web版聊天功能简单实现

    一.问题 核心点:如何找到要发送的人? 要完成一个功能我觉得首先要分析该功能的逻辑及技术难点,而不是盲目的直接就撸代码,这样非常浪费时间.个人觉得web版聊天功能没什么实际应用场景,以前看过中国移动好 ...

  4. vue 学习注意事项

    一:插值方式: 1:数据绑定,最常见的形式就是使用 “Mustache” 语法(双大括号)的文本插值 <span>Message: {{ msg }}</span>  通过使用 ...

  5. Navicat Keygen - for Windows

    如何使用这个注册机 从这里下载最新的release. 使用navicat-patcher.exe替换掉navicat.exe和libcc.dll里的Navicat激活公钥. navicat-patch ...

  6. 建模语言UML

    建模语言UML Unified Modeling Language (UML)又称统一建模语言或标准建模语言,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持, ...

  7. nginx 指向本地目录

    # 必须配置此目录 location /upload { root D:\\upload\\; rewrite break; }

  8. Java面试-TCP连接及其优化

    作为一个后端程序员,网络连接这块是一个绕不过的砍,当你在做服务器优化的时候,网络优化也是其中一环,那么作为网络连接中最基础的部分-TCP连接你了解吗?今天我们来仔细看看这个部分. TCP建立连接-三次 ...

  9. 【JVM】jstat命令详解---JVM的统计监测工具

    java进程的PID获取命令: https://www.cnblogs.com/sxdcgaq8080/p/10734752.html ================================ ...

  10. StringBuilder删除最后的字符

    stringbuilder碰到拼接XXx:XXX:这样的字符的时候,往往需要删除最后一个字符,通过remove(起始索引,向右移除的个数)可以实现. StringBuilder sb = new St ...