JDBC连接池的九种查询
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连接池的九种查询的更多相关文章
- JDBC 连接池的两种方式——dbcp & c3p0
申明:本文对于连接资源关闭采用自定义的 JDBCUtils 工具: package com.test.utils; import java.sql.Connection; import java.sq ...
- Spring+SpringMVC+MyBatis+easyUI整合优化篇(九)数据层优化-jdbc连接池简述、druid简介
日常啰嗦 终于回到既定轨道上了,这一篇讲讲数据库连接池的相关知识,线程池以后有机会再结合项目单独写篇文章(自己给自己挖坑,不知道什么时候能填上),从这一篇文章开始到本阶段结束的文章都会围绕数据库和da ...
- Jmeter(九)JDBC连接池
JDBC为java访问数据库提供通用的API,可以为多种关系数据库提供统一访问.因为SQL是关系式数据库管理系统的标准语言,只要我们遵循SQL规范,那么我们写的代码既可以访问MySQL又可以访问SQL ...
- Tomcat 的 JDBC 连接池
JDBC 连接池 org.apache.tomcat.jdbc.pool 是 Apache Commons DBCP 连接池的一种替换或备选方案. 那究竟为何需要一个新的连接池? 原因如下: Comm ...
- 【JDBC&Dbutils】JDBC&JDBC连接池&DBUtils使用方法(重要)
-----------------------JDBC---------- 0. db.properties文件 driver=com.mysql.jdbc.Driver url=jdbc: ...
- JDBC连接池和DBUtils
本节内容: JDBC连接池 DBUtils 一.JDBC连接池 实际开发中“获得连接”或“释放资源”是非常消耗系统资源的两个过程,为了解决此类性能问题,通常情况我们采取连接池技术,来共享连接Conne ...
- JDBC连接池&DBUtils
JDBC连接池 DBCP:Apache推出的Database Connection Pool 使用步骤: > 添加jar包 commons-dbcp-1.4.jar commons-pool ...
- JDBC连接池&DBUtils使用
使用连接池改造JDBC的工具类: 1.1.1 需求: 传统JDBC的操作,对连接的对象销毁不是特别好.每次创建和销毁连接都是需要花费时间.可以使用连接池优化的程序. * 在程序开始的 ...
- 数据层优化-jdbc连接池简述、druid简介
终于回到既定轨道上了,这一篇讲讲数据库连接池的相关知识,线程池以后有机会再结合项目单独写篇文章(自己给自己挖坑,不知道什么时候能填上),从这一篇文章开始到本阶段结束的文章都会围绕数据库和dao层的优化 ...
随机推荐
- CSP-S考前救急(考试前还是别复习了,事实证明复习了也没考到...
“不要为明天而忧虑,因为明天自有明天的忧虑:一天的难处一天当就够了.” 念念不忘,必有回响. 考试结束前15分钟停止写代码.然后按照以下顺序进行检查: -检查文件名是否写错-检查是否打开文件输入输出 ...
- 第09组 Beta冲刺(2/5)
队名:观光队 链接 组长博客 作业博客 组员实践情况 王耀鑫 过去两天完成了哪些任务 文字/口头描述 学习 展示GitHub当日代码/文档签入记录 接下来的计划 完成短租车,页面美化 还剩下哪些任务 ...
- Qt Quick 基本元素初体验
Qt Quick 作为 QML 语言的标准库,提供了很多基本元素和控件来帮助我们构建 Qt Quick 应用,这节我们简要地介绍一些 Qt Quick 元素. 一. 基本可视化项 1.1 Item I ...
- C++语言编程规范
前言 这里参考了<高质量C++C 编程指南 林锐>.<google C++编程指南>以及<华为C++语言编程规范>编写了这份C++语言编程规范文档,以合理使用 C+ ...
- centos7上配置mysql8的主从复制
注意:1.主库:10.1.131.75,从库:10.1.131.762.server-id必须是纯数字,并且主从两个server-id在局域网内要唯一. [主节点]vi /etc/my.cnf[mys ...
- php 安装xdebug扩展和配置phpstorm断点
参考链接:安装xdebug扩展和配置phpstorm断点
- WPF 精修篇 移动TranslateTransform
原文:WPF 精修篇 移动TranslateTransform 移动 TranslateTransform X 移动X轴 Y 移动Y轴 <StackPanel Orientation=" ...
- C# WebBrowser控件 下载文件不弹下载提示框的办法
参考链接 https://stackoverflow.com/questions/6773866/download-file-and-automatically-save-it-to-folder p ...
- c# winform devexpress TreeList过滤和绑定
/// <summary> /// 模糊查询 /// </summary> /// <param name="str"></param&g ...
- Winfrom devexpress 通用权限框架
毕业到现在也快两年了,手上的项目也有好几个,但总感觉不是狠理想,近来把手上杂七杂八的项目整理了一下,结合各个项目的优点,重新开发了一套winfrom+devexpress 通用权限(CS)框架(BS版 ...