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层的优化 ...
随机推荐
- [LeetCode] 83. Remove Duplicates from Sorted List 移除有序链表中的重复项
Given a sorted linked list, delete all duplicates such that each element appear only once. Example 1 ...
- Windows下MySQL安装流程,8.0以上版本ROOT密码报错及修改
官网下载MySQL安装后,解压,添加环境变量,以管理员方式运行cmd,运行以下命令 mysqld --initialize --console mysqld -install net start my ...
- pyqt中pyrcc和pyuic的使用
一.pyrcc的使用 1.1 作用 将资源文件转换成py文件,并在主程序引入 1.2 资源文件编写说明 新建resource.qrc,代码如下: <!DOCTYPE RCC><RCC ...
- pandas的使用(7)--分组
pandas的使用(7)--分组
- 如何定时查询某线程的CPU执行时间
#!/bin/bash pid=$(ps -T -p $(pgrep xxx) | grep xxx | gawk -F" " '{print $2}') if [ -z $pid ...
- Kubernetes管理GPU应用
目录 简介 GPU驱动 Nvidia-docker Nvidia-device-plugin 在Kubernetes上运行GPU应用 附录 简介 伴随着人工智能技术的发展,机器学习的应用场景越来越广泛 ...
- mybatis + mysql 批量插入、删除、更新
mybatis + mysql 批量插入.删除.更新 Student 表结构 批量插入 public int insertBatchStudent(List<Student> studen ...
- idea中maven项目打jar包
从Eclipse换成Idea的小伙伴们可能会找不到Eclipse中Maven项目打jar包的方法,因为eclipse只需要在工程上点击右键,右键菜单中就有Maven打包的相关选项. 然而Idea的右键 ...
- WPF DataGird 类似Excel筛选效果 未成品
这个本是针对MSDN上所写的代码,不过写一半不想写了. 不想浪费代码,是个半成品的半成品. 效果图: 思路: 利用PopUp来做显示层. 显示层中的数据则是绑定到Datagrid的数据. popup中 ...
- 【题解】Diferenc-Diferencija [SP10622]
[题解]Diferenc-Diferencija [SP10622] 传送门:\(\text{Diferenc-Diferencija}\) \(\text{[SP10622]}\) [题目描述] 序 ...