CommonDbutils是操作数据库的组件,对传统操作数据库的类进行二次封装,可以把结果集转化成List。
DBUtils包括3个包:
org.apache.commons.dbutils
org.apache.commons.dbutils.handlers
org.apache.commons.dbutils.wrappers
DBUtils封装了对JDBC的操作,简化了JDBC操作,可以少写代码。
org.apache.commons.dbutils
DbUtils关闭链接等操作
QueryRunner进行查询的操作
org.apache.commons.dbutils.handlers
ArrayHandler:将ResultSet中第一行的数据转化成对象数组
ArrayListHandler将ResultSet中所有的数据转化成List,List中存放的是 Object[]
BeanHandler:将ResultSet中第一行的数据转化成类对象
BeanListHandler:将ResultSet中所有的数据转化成List,List中存放的是类对象
ColumnListHandler:将ResultSet中某一列的数据存成List,List中存放的是 Object对象
KeyedHandler:将ResultSet中存成映射,key为某一列对应为Map。Map中存放的是数据
MapHandler:将ResultSet中第一行的数据存成Map映射
MapListHandler:将ResultSet中所有的数据存成List。List中存放的是Map
ScalarHandler:将ResultSet中一条记录的其中某一列的数据存成Object
org.apache.commons.dbutils.wrappers
SqlNullCheckedResultSet:对ResultSet进行操作,改版里面的值
StringTrimmedResultSet:去除ResultSet中中字段的左右空格。Trim()
主要方法:
DbUtils类:启动类
ResultSetHandler接口:转换类型接口
MapListHandler类:实现类,把记录转化成List
BeanListHandler类:实现类,把记录转化成List,使记录为JavaBean类型的对象
QreryRunner类:执行SQL语句的类
建立三个Java文件
命名为BeanListExample.java
Guestbook.java
MapListExample.java
源码:
BeanListExample.java
Code
package com.sy;
import org.apache.commons.dbutils.DbUtils;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.List;
public class BeanListExample{
public static
void main(String[]args){
Connectionconn= null ;
Stringurl= " jdbc:mysql://localhost:3306/people" ;
StringjdbcDriver= " com.mysql.jdbc.Driver" ;
Stringuser= " root " ;
Stringpassword= " hicc " ;
DbUtils.loadDriver(jdbcDriver);
try {
conn= DriverManager.getConnection(url,user,password);
QueryRunnerqr= new QueryRunner();
Listresults= (List)qr.query(conn," selectid,namefromguestbook" ,new BeanListHandler(Guestbook.class ));
for ( int i = 0 ;i < results.size();i++ ) {
Guestbookgb= (Guestbook)results.get(i);
System.out.println(" id: " + gb.getId()+ " ,name: " + gb.getName());
}
} catch (SQLExceptione) {
e.printStackTrace();
} finally {
DbUtils.closeQuietly(conn);
}
}
}
Guestbook.java
Code
package com.sy;
public class Guestbook{
private Integerid;
private Stringname;
public IntegergetId(){
return id;
}
public void setId(Integerid){
this .id= id;
}
public StringgetName(){
return name;
}
public void setName(Stringname){
this .name= name;
}
}
MapListExample.java
Code
package com.sy;
import org.apache.commons.dbutils.DbUtils;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.MapListHandler;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;
public class MapListExample{
public static
void main(String[]args){
Connectionconn= null ;
Stringurl= " jdbc:mysql://localhost:3306/people" ;
StringjdbcDriver= " com.mysql.jdbc.Driver" ;
Stringuser= " root " ;
Stringpassword= " hicc " ;
DbUtils.loadDriver(jdbcDriver);
try {
conn= DriverManager.getConnection(url,user,password);
QueryRunnerqr= new QueryRunner();
Listresults= (List)qr.query(conn," selectid,namefromguestmessage" ,new MapListHandler());
for ( int i = 0 ;i < results.size();i++ ) {
Mapmap= (Map)results.get(i);
System.out.println(" id: " + map.get( " id " ) + " ,name: " + map.get( " name " ));
}
} catch (SQLExceptione) {
e.printStackTrace();
} finally {
DbUtils.closeQuietly(conn);
}
}
}
使用组建好需要添加commons - dbutils - 1.1 .jar和mysql - connector - java - 5.1 . 6 - bin.jar 两个jar包。
配置完毕!!!
// 另一种方法
// 使用dbutils1.0版本
import java.util. * ;
import java.util.logging.* ;
import java.sql.* ;
import org.apache.commons.dbutils.* ;
import org.apache.commons.dbutils.handlers.* ;
public class TestDBUnits{
public static
void main(String[]args)throws Exception{
TestDBUnitstest= new TestDBUnits();
for ( int i = 0 ;i< 1 ;i ++ ) {
test.testQuery1();
test.testQuery2();
test.testUpdate();
}
}
public void testQuery1(){
try {
QueryRunnerqr= new QueryRunner();
ResultSetHandlerrsh= new ArrayListHandler();
Stringstrsql= " select*fromtest1" ;
ArrayListresult= (ArrayList)qr.query(getConnection(),strsql,rsh);
// System.out.print("");
} catch (Exceptionex){
ex.printStackTrace(System.out);
}
}
public void testQuery2(){
try {
QueryRunnerqr= new QueryRunner();
ResultSetHandlerrsh= new MapListHandler();
Stringstrsql= " select*fromtest1" ;
ArrayListresult= (ArrayList)qr.query(getConnection(),strsql,rsh);
for ( int i = 0 ;i< result.size();i++ ) {
Mapmap= (Map)result.get(i);
// System.out.println(map);
}
// System.out.print("");
} catch (Exceptionex){
ex.printStackTrace(System.out);
}
}
public void testUpdate(){
try {
QueryRunnerqr= new QueryRunner();
ResultSetHandlerrsh= new ArrayListHandler();
Stringstrsql= " inserttest1(page,writable,content)values('ttt','ttt','faskldfjklasdjklfjasdklj')" ;
qr.update(getConnection(),strsql);
// System.out.print("");
} catch (Exceptionex){
ex.printStackTrace(System.out);
}
}
private ConnectiongetConnection()throws InstantiationException,
IllegalAccessException,ClassNotFoundException,SQLException{
StringstrDriver= " org.gjt.mm.mysql.Driver" ;
StringstrUrl= " jdbc:mysql://localhost:3306/test" ;
StringstrUser= " root " ;
StringstrPass= "" ;
Class.forName(strDriver).newInstance();
return DriverManager.getConnection(strUrl,strUser,strPass);
}
}
分享到:
相关推荐
DButils详解,相信这个文档对刚开始接触DBUtils的人来说,是个入门的好帮手
Dbutils_详解,适合初学者学习Dbutils。
DBUtils详解,含函数介绍和使用 QueryRunner
下面小编就为大家分享一篇java学习笔记之DBUtils工具包详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
主要介绍了JDBC数据库操作库DButils类的使用方法详解,需要的朋友可以参考下
不会让大家后悔,里面介绍了连接池,dbutils的应用,struts-hibernate-sprint结合开发的实例详解,用的是sql server数据库,也可以改为mysql oracle只要改变数据库连接驱动和url即可。
python连接Mysql数据库: Python编程中可以使用MySQLdb进行数据库的连接及诸如查询/插入/更新等操作,但是每次连接MySQL数据库请求时,都是独立的去请求访问,相当浪费资源,而且访问数量...DBUtils提供两种外部接口:
jdbc详解,主流的数据库连接,数据库连接池,Apache-DBUtils实现CRUD操作
8.3 Commons DbUtils 8.4 网络留言板V3.0 第9章 JSP及其应用 9.1 JSP基础知识 9.2 JSP 语法 9.3 JSP 范例 9.4 网络留言板V4.0 第10章 JavaBean及其应用 10.1 JavaBean 基础知识 10.2 JavaBean 在 JSP 中的...
您可能感兴趣的文章:MySQL中在查询结果集中得到记录行号的方法PHP调用MsSQL Server 2012存储过程获取多结果集(包含output参数)的详解sql 查询记录数结果集某个区间内记录JavaWeb dbutils执行sql命令并遍历结