DbUtils常用API的使用 方便以后查阅
package com.lizhou.Test; import java.sql.SQLException;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set; import javax.sql.DataSource; 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.MapHandler;
import org.apache.commons.dbutils.handlers.MapListHandler;
import org.apache.commons.dbutils.handlers.ScalarHandler; import com.lizhou.Domain.Account;
import com.lizhou.Util.MysqlUtil; /**
* DbUtils框架的使用
* 目的:减轻CURD操作
* DbUtils框架最核心的类,就是QueryRunner类,构造其有空参构造和带连接池(DataSource)的构造
*
*
*
* @author bojiangzhou
*
*/
public class DbUtils { public static void main(String[] args) {
/**
* 数据库为test,在c3p0-config.xml中配置
*/ // queryRunner(); //下面是ResultSetHandler的接口的各种实现类的用法(7个实现类) // beanHandler(); //针对JavaBean // beanListHandler(); //针对JavaBean // arrayHandler(); //针对数组 // arrayListHandler(); //针对数组 // mapHandler(); //针对Map // mapListHandler(); //针对Map scalarHandler(); //针对Long } //QueryRunner
public static void queryRunner(){
//获取连接池
DataSource ds = MysqlUtil.getPool();
//用连接池构造一个QueryRunner
QueryRunner qr = new QueryRunner(ds); // String sql = "update account set name=? where id=?";
String sql = "insert into account(name, money) values(?, ?)"; try {
// qr.update(sql, new Object[]{"O(∩_∩)O哈哈~", 2});
qr.update(sql, new Object[]{"一生有你", 25000});
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} //BeanHandler
public static void beanHandler(){
QueryRunner qr = new QueryRunner(MysqlUtil.getPool()); String sql = "select * from account where id = ?"; try {
Account acc = (Account) qr.query(sql, new Object[]{3}, new BeanHandler(Account.class));
System.out.println(acc.getId()+" "+acc.getName()+" "+acc.getMoney());
} catch (SQLException e) {
e.printStackTrace();
} } //BeanListHandler
public static void beanListHandler(){
QueryRunner qr = new QueryRunner(MysqlUtil.getPool()); String sql = "select * from account"; try {
List<Account> accounts = (List<Account>) qr.query(sql, new BeanListHandler(Account.class));
for(Account a : accounts){
System.out.println(a.getId()+" "+a.getName()+" "+a.getMoney());
}
} catch (SQLException e) {
e.printStackTrace();
}
} //ArrayHandler
public static void arrayHandler(){
QueryRunner qr = new QueryRunner(MysqlUtil.getPool()); String sql = "select * from account where money=?"; try {
Object[] a = (Object[]) qr.query(sql, 10000, new ArrayHandler());
for(int i = 0;i < a.length;i++){
System.out.print(a[i]+" ");
}
System.out.println("\n------------------------------");
} catch (SQLException e) {
e.printStackTrace();
}
} //ArrayListHandler
public static void arrayListHandler(){
QueryRunner qr = new QueryRunner(MysqlUtil.getPool()); String sql = "select * from account"; try {
List<Object[]> accounts = (List<Object[]>) qr.query(sql, new ArrayListHandler());
for(Object[] obj : accounts){
for(int i = 0;i < obj.length;i++){
System.out.print(obj[i]+" ");
}
System.out.println("\n------------------------------");
}
} catch (SQLException e) {
e.printStackTrace();
}
} //MapHandler
public static void mapHandler(){
QueryRunner qr = new QueryRunner(MysqlUtil.getPool()); String sql = "select * from account"; try {
Map<Object, Object> map = (Map<Object, Object>) qr.query(sql, new MapHandler());
Set<Entry<Object, Object>> entry = map.entrySet();
for(Entry e : entry){
System.out.print(e.getKey()+" ");
System.out.println(e.getValue());
}
} catch (SQLException e) {
e.printStackTrace();
}
} //MapListHandler
public static void mapListHandler(){
QueryRunner qr = new QueryRunner(MysqlUtil.getPool()); String sql = "select * from account"; try {
List< Map<Object, Object> > maps = (List<Map<Object, Object>>) qr.query(sql, new MapListHandler());
for(Map<Object, Object> map : maps){
Set<Entry<Object, Object>> entry = map.entrySet();
for(Entry e : entry){
System.out.print(e.getKey()+" ");
System.out.println(e.getValue());
}
System.out.println("-------------------------");
} } catch (SQLException e) {
e.printStackTrace();
}
} //ScalarHandler 只返回一行一列数据
public static void scalarHandler(){
QueryRunner qr = new QueryRunner(MysqlUtil.getPool()); String sql = "select count(*) from account"; try {
Object obj = qr.query(sql, new ScalarHandler());
System.out.println(obj);
} catch (SQLException e) {
e.printStackTrace();
}
} }
DbUtils常用API的使用 方便以后查阅的更多相关文章
- Java基础学习笔记十二 类、抽象类、接口作为方法参数和返回值以及常用API
不同修饰符使用细节 常用来修饰类.方法.变量的修饰符 public 权限修饰符,公共访问, 类,方法,成员变量 protected 权限修饰符,受保护访问, 方法,成员变量 默认什么也不写 也是一种权 ...
- java常用API的总结(1)
本篇是对于这一段时间以来接触到的常用api的一些总结,便于以后的查阅.... 一.正则表达式 对于正则表达式,我的感觉就是当我们在做某些题的时候正则表达式会省去我们很多的时间,并且正则表达式的使用格式 ...
- 16常用API
常用API 今日内容介绍 u 正则表达式 u Date u DateFormat u Calendar 第1章 正则表达式 1.1 正则表达式的概念 正则表达式(英语:Regular Expressi ...
- 常用API(正则表达式、Date、DateFormat、Calendar)
常用API 今日内容介绍 u 正则表达式 u Date u DateFormat u Calendar 第1章 正则表达式 1.1 正则表达式的概念 正则表达式(英语:Regular Expressi ...
- 常用API(Object、String、StringBuffer、用户登陆注册)
常用API 今日内容介绍 u Object u String u StringBuilder 第1章 Java的API及Object类 在以前的学习过程中,我们都在学习对象基本特征.对象的使用以及对象 ...
- 215 day01_Object类、常用API
day01[Object类.常用API] 主要内容 Object类 Date类 DateFormat类 Calendar类 System类 StringBuilder类 包装类 教学目标 -[ ] 能 ...
- html5 canvas常用api总结(一)
1.监听浏览器加载事件. window.addEventListener("load",eventWindowLoaded,false); load事件在html页面加载结束时发生 ...
- compass General 常用api学习[Sass和compass学习笔记]
compass 中一些常用api 包括一些浏览器hack @import "compass/utilities/general" Clearfix Clearfix 是用来清除浮动 ...
- java基础3.0:Java常用API
本篇介绍Java基础中常用API使用,当然只是简单介绍,围绕重要知识点引入,巩固开发知识,深入了解每个API的使用,查看JavaAPI文档是必不可少的. 一.java.lang包下的API Java常 ...
随机推荐
- JavaScript模块化开发整理
在网上已经有很多关于模块化开发的文章了,这里还是按照自己的理解来整理一下. 随着项目文件的越来越大和需求的越来越贴近现实(我发现现在客户不如:一个领导说我要审批你们报上来的资料,系统发布以后用的还不错 ...
- java学习:Hibernate入门
相对微软的linq-to-sql或EF框架而言,"Hibernate对于eclipse的集成开发“ 新手并不容易掌握,下面是新手上路的步骤: 一.准备工作: 1.先下载eclipse (官网 ...
- 封装Js库从获取控件的value值开始
<html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> &l ...
- js处理异常try{}catch(e){}
MXS&Vincene ─╄OvЁ &0000021─╄OvЁ MXS&Vincene MXS&Vincene ─╄OvЁ:今天很残酷,明天更残酷,后天很美好, ...
- Retrieve失败解决办法一例
错误:The service '/XRMServices/2011/OrganizationData.svc' cannot be activated due to an exception duri ...
- C#计算器代码
在刚刚接触c#的时候,就想做一个简单加减乘除计算器.这就是目标,可惜一直没有动手去做,今天特意把它简单做了.很简单,很简单,了却一个心愿了. 代码: using System; using Syste ...
- html5 canvas 笔记五(合成与裁剪)
组合 Compositing globalCompositeOperation syntax: globalCompositeOperation = type 注意:下面所有例子中,蓝色方块是先绘制的 ...
- C#网络爬虫
CronMaker is a utility which helps you to build cron expressions. CronMaker uses Quartz open source ...
- hadoop2.0初识1.0
1.给普通用户设置sudo权限 编辑:[root@life-hadoop /]# nano /etc/sudoers 在文件头部加入:yanglin ALL=(root)NOPASSWD:ALL 保存 ...
- HQL 参数绑定、唯一结果、分页、投影总结(上)
我们先总结一下HQL语句常用语法: from子句:; select子句:用于选取对象和属性; where子句:用于表达查询语句的限制条件; 使用表达式:一般用在where子句中; order by子句 ...