java JDBC (七) org.apache.commons.dbutils 查询
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 查询的更多相关文章
- java JDBC (六) org.apache.commons.dbutils 增删改
dbutils是apache封装了JDBC的工具类,比mysql-connector更方便些 下载地址:http://commons.apache.org/proper/commons-dbutils ...
- java.lang.ClassNotFoundException: org.apache.commons.dbutils.QueryRunner
七月 28, 2017 11:06:33 下午 org.apache.catalina.core.StandardWrapperValve invoke严重: Servlet.service() fo ...
- 高性能jdbc封装工具 Apache Commons DbUtils 1.6(转载)
转载自原文地址:http://gao-xianglong.iteye.com/blog/2166444 前言 关于Apache的DbUtils中间件或许了解的人并不多,大部分开发人员在生成环境中更多的 ...
- java.lang.ClassNotFoundException: org.apache.commons.dbutils.ResultSetHandle
原因是这两个地方都得导入dbutils的jar包,一般出错是因为WEB-INF下没有导入包,记得导入,然后buildPath即可
- Java连接数据库 #04# Apache Commons DbUtils
索引 通过一个简单的调用看整体结构 Examples 修改JAVA连接数据库#03#中的代码 DbUtils并非是什么ORM框架,只是对原始的JDBC进行了一些封装,以便我们少写一些重复代码.就“用” ...
- 写一个ORM框架的第一步(Apache Commons DbUtils)
新一次的内部提升开始了,如果您想写一个框架从Apache Commons DbUtils开始学习是一种不错的选择,我们先学习应用这个小“框架”再把源代码理解,然后写一个属于自己的ORM框架不是梦. 一 ...
- Apache Commons DbUtils 快速上手
原文出处:http://lavasoft.blog.51cto.com/62575/222771 Hibernate太复杂,iBatis不好用,JDBC代码太垃圾,DBUtils在简单与优美之间取得了 ...
- 《笔者带你剖析Apache Commons DbUtils 1.6》(转)
前言 关于Apache的DbUtils中间件或许了解的人并不多,大部分开发人员在生成环境中更 多的是依靠Hibernate.Ibatis.Spring JDBC.JPA等大厂提供的持久层技术解决方案, ...
- java.lang.IllegalAccessError: org.apache.commons.dbcp.DelegatingPreparedStatement.isClosed()Z
做spring和mybaits整合时出现的错误,让这个问题困扰了一早上,通过查资料终于把这个问题解决了 具体问题描述: java.lang.IllegalAccessError: org.apache ...
随机推荐
- Mysql 地区经纬度 查询
摘要: Mysql数据库,根据地区的经纬度信息,查询附近相邻的地区 2015-03-27 修改,增加 MySQL的空间扩展(MySQL Spatial Extensions)的解决方案: MySQL的 ...
- 模板, 保存&发布
单击“视图”菜单中的“幻灯片模板”按钮,会弹出“幻灯片母版”选项卡,在此选项卡中,可以修改当前PPT的模板, 例如网上下载的幻灯片上的LOGO都可在这里去除. 模板设计总结 1. 背景可以选择纯色,也 ...
- Java知多少(22)方法重载
在Java中,同一个类中的多个方法可以有相同的名字,只要它们的参数列表不同就可以,这被称为方法重载(method overloading). 参数列表又叫参数签名,包括参数的类型.参数的个数和参数的顺 ...
- ZeroMQ总结
Socket types Thread safety: ZeroMQ的socket是非线程安全的,并且ZeroMQ本身不建议在多个线程中传递同一个Socket,即使保证了线程同步. Socket ...
- Angular4学习笔记(二)-在WebStorm中启动项目
点击配置 创建 选择命令 package.json 运行 查看运行结果
- [转]搞个这样的 APP 要多久
我有些尴尬地拿着水杯,正对面坐着来访的王总,他是在别处打拼的人,这几年据说收获颇丰,见移动互联网如火如荼,自然也想着要进来干一场,尽管王总从事的行当也算跟IT沾边,但毕竟太长时间不接触技术,有些东西不 ...
- [Tensorflow] Cookbook - The Tensorflow Way
本章介绍tf基础知识,主要包括cookbook的第一.二章节. 方针:先会用,后定制 Ref: TensorFlow 如何入门? Ref: 如何高效的学习 TensorFlow 代码? 顺便推荐该领域 ...
- vue封装第三方插件并发布到npm
前言 写此文前特意google了一下,因为有较详细的开发教程我再写意义不大,有把插件封装成组件的教程,有把自己的组件封住成插件的教程,本文主要说明如何把第三方的插件封装成vue插件,简化配置,一键安装 ...
- 一个表中的id有多个记录,把所有这个id的记录查出来,并显示共有多少条记录数
一个表中的id有多个记录,把所有这个id的记录查出来,并显示共有多少条记录数 select id ,Count(*) from table_name group by id having count( ...
- 安卓手机优化 ROOT自启动管理 + 电量管理
一.KingRoot + 净化大师 KingRoot 主要完成ROOT 和 自启动软件的管理 这里禁止的自启动管理 对于有些软件是不太管用 比如美团 手机百度等 净化大师 主要完成 高电量的软件优化 ...