package cn.sasa.demo1;

import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;
import java.util.Map; 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.MapHandler;
import org.apache.commons.dbutils.handlers.MapListHandler;
import org.apache.commons.dbutils.handlers.ScalarHandler; import cn.sasa.demo5.DBProperties; public class ResultSetHandlerDemo {
static Connection conn = null;
static {
try {
conn = DBProperties.getConnection();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} public static void main(String[] args) throws SQLException {
//arrayHandler();
//arrayListHandler();
//beanHandler();
//beanListHandler();
//columnListHandler();
//scalarHandler();
//mapHandler();
mapListHandler();
}
/**
* ArrayHandler 获取一行
*/
static void arrayHandler() throws SQLException {
QueryRunner query = new QueryRunner();
String sql = "SELECT * FROM product WHERE pid=?;";
Object[] objArr = query.query(conn, sql, new ArrayHandler(),4);
for(Object obj : objArr) {
System.out.println(obj);
}
} /**
* ArrayListHandler
*/
static void arrayListHandler() throws SQLException {
QueryRunner query = new QueryRunner();
String sql = "SELECT * FROM product WHERE pid<?;";
List<Object[]> objList = query.query(conn, sql, new ArrayListHandler(),4);
for(Object[] objArr : objList) {
for(Object obj : objArr) {
System.out.print(obj);
System.out.print("\t");
}
System.out.println("");
}
} /**
* BeanHandler
* 封装成JavaBean对象,JavaBean对象必须有空参构造函数
*/
static void beanHandler() throws SQLException {
QueryRunner query = new QueryRunner();
String sql = "SELECT * FROM product;";
Product product = query.query(conn, sql, new BeanHandler<Product>(Product.class));
System.out.println(product.getPname());
} /**
* 转成一个对象集合
*/
static void beanListHandler() throws SQLException {
QueryRunner query = new QueryRunner();
String sql = "SELECT * FROM product WHERE pid<?;";
List<Product> objList = query.query(conn, sql, new BeanListHandler<Product>(Product.class),4);
for(Product obj : objList) {
System.out.println(obj.getPname());
}
} /**
* columnListHandler
* 指定列的数据存到集合
*/
static void columnListHandler() throws SQLException {
QueryRunner query = new QueryRunner();
String sql = "SELECT * FROM product WHERE pid<?;";
List<Object> objList = query.query(conn, sql, new ColumnListHandler<Object>("pname"),4);
for(Object obj : objList) {
System.out.println(obj);
}
} /**
* ScalarHandler 获取单行单列的结果集
*/
static void scalarHandler() throws SQLException {
QueryRunner query = new QueryRunner();
String sql = "SELECT COUNT(*) AS row_count FROM product WHERE pid<?;";
Object obj = query.query(conn, sql, new ScalarHandler<Object>(),4);
System.out.println(obj);
} /**
* MapHandler 将第一行结果集封装到Map集合中
* 键:列名
* 值:列中的数据
* @throws SQLException
*/
static void mapHandler() throws SQLException {
QueryRunner query = new QueryRunner();
String sql = "SELECT * FROM product";
Map<String, Object> map = query.query(conn, sql, new MapHandler());
for(String key : map.keySet()) {
System.out.println(map.get(key).toString());
}
} /**
* MapListHandler
* 结果集的每一行 列:值 存到 Map集合的 键:值
* Map集合再存到List集合中
* @throws SQLException
*/
static void mapListHandler() throws SQLException {
QueryRunner query = new QueryRunner();
String sql = "SELECT * FROM product";
List<Map<String,Object>> mapList = query.query(conn, sql, new MapListHandler());
for(int i=0; i<mapList.size(); i++) { for(String key : mapList.get(i).keySet()) {
System.out.print("key:" + key + " val:" + mapList.get(i).get(key) + "\t");
}
System.out.println("");
}
}
}
package cn.sasa.demo1;

public class Product {
private int pid;
private String pname;
private double price;
private String ptype;
private String create_tm; public Product() {}
public Product(int pid, String pname,double price,
String ptype, String create_tm) {
this.pid = pid;
this.pname = pname;
this.price = price;
this.ptype = ptype;
this.create_tm = create_tm;
}
public int getPid() {
return pid;
}
public void setPid(int pid) {
this.pid = pid;
}
public String getPname() {
return pname;
}
public void setPname(String pname) {
this.pname = pname;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public String getPtype() {
return ptype;
}
public void setPtype(String ptype) {
this.ptype = ptype;
}
public String getCreate_tm() {
return create_tm;
}
public void setCreate_tm(String create_tm) {
this.create_tm = create_tm;
}
}

java JDBC (七) org.apache.commons.dbutils 查询的更多相关文章

  1. java JDBC (六) org.apache.commons.dbutils 增删改

    dbutils是apache封装了JDBC的工具类,比mysql-connector更方便些 下载地址:http://commons.apache.org/proper/commons-dbutils ...

  2. java.lang.ClassNotFoundException: org.apache.commons.dbutils.QueryRunner

    七月 28, 2017 11:06:33 下午 org.apache.catalina.core.StandardWrapperValve invoke严重: Servlet.service() fo ...

  3. 高性能jdbc封装工具 Apache Commons DbUtils 1.6(转载)

    转载自原文地址:http://gao-xianglong.iteye.com/blog/2166444 前言 关于Apache的DbUtils中间件或许了解的人并不多,大部分开发人员在生成环境中更多的 ...

  4. java.lang.ClassNotFoundException: org.apache.commons.dbutils.ResultSetHandle

    原因是这两个地方都得导入dbutils的jar包,一般出错是因为WEB-INF下没有导入包,记得导入,然后buildPath即可

  5. Java连接数据库 #04# Apache Commons DbUtils

    索引 通过一个简单的调用看整体结构 Examples 修改JAVA连接数据库#03#中的代码 DbUtils并非是什么ORM框架,只是对原始的JDBC进行了一些封装,以便我们少写一些重复代码.就“用” ...

  6. 写一个ORM框架的第一步(Apache Commons DbUtils)

    新一次的内部提升开始了,如果您想写一个框架从Apache Commons DbUtils开始学习是一种不错的选择,我们先学习应用这个小“框架”再把源代码理解,然后写一个属于自己的ORM框架不是梦. 一 ...

  7. Apache Commons DbUtils 快速上手

    原文出处:http://lavasoft.blog.51cto.com/62575/222771 Hibernate太复杂,iBatis不好用,JDBC代码太垃圾,DBUtils在简单与优美之间取得了 ...

  8. 《笔者带你剖析Apache Commons DbUtils 1.6》(转)

    前言 关于Apache的DbUtils中间件或许了解的人并不多,大部分开发人员在生成环境中更 多的是依靠Hibernate.Ibatis.Spring JDBC.JPA等大厂提供的持久层技术解决方案, ...

  9. java.lang.IllegalAccessError: org.apache.commons.dbcp.DelegatingPreparedStatement.isClosed()Z

    做spring和mybaits整合时出现的错误,让这个问题困扰了一早上,通过查资料终于把这个问题解决了 具体问题描述: java.lang.IllegalAccessError: org.apache ...

随机推荐

  1. 删除最少字符生成Palindrome

    看到一个哥们G家电面试题,求删除最少字符生成Palindrome.大神们都在讨论dp,我完全想不到. 放一个没优化的DFS. 乐神说是O(n3)复杂度, 有机会的话要减少使用substring,并且要 ...

  2. (转载)Redis5.0重量级特性Stream尝鲜

    转 导读:Redis5.0最新重点推出了Stream的支持,给众多架构师在消息队列方面带来了新的选择,特别是Redis粉丝们绝对是一个福音.那么Redis的Stream有哪些特别的功能?跟kafka有 ...

  3. python 带正则的search 模块

    glob  是python 提供的一个支持正则表达式的查找文件的模块. 实现上采用了os.listdir() 和 fnmatch.fnmatch().  但是没有真的invoking a subshe ...

  4. 仿迅雷播放器教程 -- C++ 100款开源界面库 (10)

      (声明:Alberl以后说到开源库,一般都是指著名的.或者不著名但维护至少3年以上的.那些把代码一扔就没下文的,Alberl不称之为开源库,只称为开源代码.这里并不是贬低,像Alberl前面那个系 ...

  5. [IR] Concept Search and PLSA

    [Topic Model]主题模型之概率潜在语义分析(Probabilistic Latent Semantic Analysis) 感觉LDA在实践中的优势其实不大,学好pLSA才是重点 阅读笔记 ...

  6. C语言的标准库和系统调用

    http://blog.csdn.net/yusiguyuan/article/details/23181327 Linux系统调用这部分经常出现两个词:libc库和封装函数,不知道你是否清楚它们的含 ...

  7. 使用kill -9 进程ID杀死jps中进程

  8. 【代码审计】XYHCMS V3.5文件上传漏洞分析

      0x00 环境准备 XYHCMS官网:http://www.xyhcms.com/ 网站源码版本:XYHCMS V3.5(2017-12-04 更新) 程序源码下载:http://www.xyhc ...

  9. 配置openssh实现sftp远程文件上传

    客服端:winscp等ftp/sftp客户端 服务器:阿里云默认使用的openssh 需求:可以sftp远程传输文件到服务器固定文件夹下,不可远程ssh登录 步骤: 1. 建立系统用户ftpuser及 ...

  10. Python2.7字符编码详解

    目录 Python2.7字符编码详解 声明 一. 字符编码基础 1.1 抽象字符清单(ACR) 1.2 已编码字符集(CCS) 1.3 字符编码格式(CEF) 1.3.1 ASCII(初创) 1.3. ...