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. vue处理用户输入

    为了让用户和你的应用进行互动,可以用 v-on 指令绑定一个监听事件用于调用我们 Vue 实例中定义的方法: <div id="app-5"> <p>{{ ...

  2. Ubuntu 设置NAT共享网络(命令行方法)

    本文介绍如何使用iptables来实现NAT转发,事实上就是将一台机器作为网关(gateway)来使用.我们假设充当网关的机器至少有网卡eth0和eth1,使用eth0表示连接到外网的网卡,使用eth ...

  3. easyui 表格底部加合计

    function setTotal() { var userid = $("#hd_buildUser").val(); $("#totalSum").data ...

  4. [UFLDL] Linear Regression & Classification

    博客内容取材于:http://www.cnblogs.com/tornadomeet/archive/2012/06/24/2560261.html Deep learning:六(regulariz ...

  5. [Bayes] dchisq: Metropolis-Hastings Algorithm

    dchisq gives the density,                          # 计算出分布下某值处的密度值 pchisq gives the distribution fun ...

  6. web.xml配置DispatcherServlet (***-servlert.xml)

    1. org.springframework.web.servlet.DispatcherServlet 所在jar包: <dependency> <groupId>org.s ...

  7. 写在开始前---web前后端对接

    现阶段接口对接问题: 1.接口乱,不清晰明了,无文档或文档过期 2.接口和业务不匹配.不可用 3.前后端沟通,工程复杂化 4.不能深入了解业务 5.任务延期 注:前后端对业务深入了解,接口之间都是有联 ...

  8. CentOS7 下安装mysql历程

    一.成功他妈的经历 背景(废话不用看):自己对Linux不是很熟悉,说难听点就是门都没有么到!基于这近年大数据之类的热闹话题,自己就想学习一下!开始下的是Minimal ISO这个版本,Vbox5虚拟 ...

  9. STM FLASH在线编程 升级

    注意字节到 stm flash 顺序是反的 例如 12 34 56 78 世纪写入内存 应该是 78 56 34 12

  10. [No0000140]WMI使用的WIN32_类库名

    "SELECT * FROM Win32_NetworkAdapter WHERE (MACAddress IS NOT NULL) AND (NOT (PNPDeviceID LIKE ' ...