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. WebApi XML,Json格式自定义,IEnumerable<T>,ArrayOf

    global.ascx中application-start() GlobalConfiguration.Configuration.Formatters.XmlFormatter.UseXmlSeri ...

  2. netbeans rcp中如何编程设置主窗口标题

    http://www.th7.cn/Program/java/201510/606050.shtml ————————————————————————————————————————————————— ...

  3. windows命令行(DOS批处理)添加任务计划

    自动创建每周运行一次的计划任务 创建计划任务可用at,schtasks命令,schtasks提供了很多参数 命令schtasks SCHTASKS /Create [/S system [/U use ...

  4. iOS Xcode, 解决“Could not insert new outlet connection”的问题。

    在Xcode中,我们能够在StoryBoard编辑界面或者是xib编辑界面中通过"Control键+拖拽"的方式将某个界面元素和相应的代码文件连接起来,在代码文件里创建outlet ...

  5. MySql安全模式的关闭和开启

    #MySql关闭安全模式 ; commit; #MySql开启安全模式 ; commit;

  6. PhoneGap 数据库操作

    1,openDatabase phonegap官方文档中已经很清楚的标明,如果使用一个数据库首先要用window对象进行创建: var dbShell = window.openDatabase(na ...

  7. Python标准输出重定向

    目录 Python标准输出重定向 声明 一. 背景知识 二. 重定向方式 2.1 控制台重定向 2.2 print >>重定向 2.3 sys.stdout重定向 2.4 上下文管理器(C ...

  8. Bitmap(三)

    转自:http://www.open-open.com/lib//view/open1333418945202.html Bitmap是Android系统中的图像处理的最重要类之一.用它可以获取图像文 ...

  9. element的form表单中如何一行显示多el-form-item标签

    效果图: HTML代码: <script src="//unpkg.com/vue/dist/vue.js"></script> <script sr ...

  10. Spark2 Model selection and tuning 模型选择与调优

    Model selection模型选择 ML中的一个重要任务是模型选择,或使用数据为给定任务找到最佳的模型或参数. 这也称为调优. 可以对诸如Logistic回归的单独Estimators进行调整,或 ...