zoukankan
html css js c++ java
Dbutils 详解
Common Dbutils是操作数据库的组件,对传统操作数据库的类进行二 次封装,可以把结果集转化成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类型的对象
Qrery Runner类:执行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)
{
Connection conn
=
null
;
String url
=
"
jdbc:mysql://localhost:3306/people
"
;
String jdbcDriver
=
"
com.mysql.jdbc.Driver
"
;
String user
=
"
root
"
;
String password
=
"
hicc
"
;
DbUtils.loadDriver(jdbcDriver);
try
{
conn
=
DriverManager.getConnection(url, user, password);
QueryRunner qr
=
new
QueryRunner();
List results
=
(List) qr.query(conn,
"
select id,name from guestbook
"
,
new
BeanListHandler(Guestbook.
class
));
for
(
int
i
=
0
; i
<
results.size(); i
++
)
{
Guestbook gb
=
(Guestbook) results.get(i);
System.out.println(
"
id:
"
+
gb.getId()
+
"
,name:
"
+
gb.getName());
}
}
catch
(SQLException e)
{
e.printStackTrace();
}
finally
{
DbUtils.closeQuietly(conn);
}
}
}
Guestbook.java
Code
package
com.sy;
public
class
Guestbook
{
private
Integer id;
private
String name;
public
Integer getId()
{
return
id;
}
public
void
setId(Integer id)
{
this
.id
=
id;
}
public
String getName()
{
return
name;
}
public
void
setName(String name)
{
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)
{
Connection conn
=
null
;
String url
=
"
jdbc:mysql://localhost:3306/people
"
;
String jdbcDriver
=
"
com.mysql.jdbc.Driver
"
;
String user
=
"
root
"
;
String password
=
"
hicc
"
;
DbUtils.loadDriver(jdbcDriver);
try
{
conn
=
DriverManager.getConnection(url, user, password);
QueryRunner qr
=
new
QueryRunner();
List results
=
(List) qr.query(conn,
"
select id,name from guestmessage
"
,
new
MapListHandler());
for
(
int
i
=
0
; i
<
results.size(); i
++
)
{
Map map
=
(Map) results.get(i);
System.out.println(
"
id:
"
+
map.get(
"
id
"
)
+
"
,name:
"
+
map.get(
"
name
"
));
}
}
catch
(SQLException e)
{
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
{
TestDBUnits test
=
new
TestDBUnits();
for
(
int
i
=
0
; i
<
1
; i
++
)
{
test.testQuery1();
test.testQuery2();
test.testUpdate();
}
}
public
void
testQuery1()
{
try
{
QueryRunner qr
=
new
QueryRunner() ;
ResultSetHandler rsh
=
new
ArrayListHandler();
String strsql
=
"
select * from test1
"
;
ArrayList result
=
(ArrayList)qr.query(getConnection() ,strsql ,rsh);
//
System.out.print("");
}
catch
(Exception ex)
{
ex.printStackTrace(System.out);
}
}
public
void
testQuery2()
{
try
{
QueryRunner qr
=
new
QueryRunner() ;
ResultSetHandler rsh
=
new
MapListHandler();
String strsql
=
"
select * from test1
"
;
ArrayList result
=
(ArrayList)qr.query(getConnection() ,strsql ,rsh);
for
(
int
i
=
0
; i
<
result.size() ; i
++
)
{
Map map
=
(Map)result.get(i);
//
System.out.println(map);
}
//
System.out.print("");
}
catch
(Exception ex)
{
ex.printStackTrace(System.out);
}
}
public
void
testUpdate()
{
try
{
QueryRunner qr
=
new
QueryRunner() ;
ResultSetHandler rsh
=
new
ArrayListHandler();
String strsql
=
"
insert test1(page ,writable ,content)values('ttt','ttt','faskldfjklasdjklfjasdklj')
"
;
qr.update(getConnection() ,strsql);
//
System.out.print("");
}
catch
(Exception ex)
{
ex.printStackTrace(System.out);
}
}
private
Connection getConnection()
throws
InstantiationException,
IllegalAccessException, ClassNotFoundException, SQLException
{
String strDriver
=
"
org.gjt.mm.mysql.Driver
"
;
String strUrl
=
"
jdbc:mysql://localhost:3306/test
"
;
String strUser
=
"
root
"
;
String strPass
=
""
;
Class.forName(strDriver).newInstance();
return
DriverManager.getConnection(strUrl, strUser, strPass);
}
}
查看全文
相关阅读:
在react-native中使用es7语法中的decorator装饰器
chrome从版本55开始,不再支持设置网页内容编码
react-native 获取组件的宽度和高度
手动安装Android Support Library(23.0.1)
ubuntu 14.04 git clone 出现 fatal: Unable to find remote helper for 'https'
React-Native 在android写不支持gif的解决方案!
游戏大世界场景(胡诌篇)
多线程先判断再操作免锁设计方案
Mysql语句优化
JVM GC Q&A(补充ing)
原文地址:https://www.cnblogs.com/zhuxiangguo/p/2198371.html
最新文章
IntelliJ IDEA 2017.3 搭建一个多模块的springboot项目(二)
IntelliJ IDEA 2017.3 搭建一个多模块的springboot项目(一)
IntelliJ IDEA 2017.3 多模块右边栏 maven projects,maven项目命名问题
IntelliJ IDEA 2017.3 创建多Module项目时,右边栏出现多个root模块的问题。如图。
java程序显示log日志信息的方法
IntelliJ IDEA 2017.3 配置Tomcat运行web项目教程(多图)
MySql 实现数组根据下标获取对应值逻辑(array[i]逻辑)
JQuery触发hover事件无效时使用js原生的触发事件方法
pom里引入lib下的包后编译报 package com.sun.crypto.provider does not exist问题解决
tomcat 容器下web项目由http改为https操作步骤及相关的坑
热门文章
js 文件系统API操作示例
chrome插件访问原始页面的变量
html5 自带全屏API调用方法
从零开始新建一个Maven 、springMVC工程
使用方法拦截机制在不修改原逻辑基础上为 spring MVC 工程添加 Redis 缓存
文件上传控件bootstrap-fileinput的使用
解决在sass中使用calc不能包含变量的问题。
FAILURE: Build failed with an exception.
react-native在mac上执行gradlew命令报错 ./gradlew: command not found
vscode中使用Experimental Decorators报错
Copyright © 2011-2022 走看看