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);
}
}
查看全文
相关阅读:
mysql常用方法案例
springboot整合mybatis
mysql自定义函数统计订单状态:GET_ORDER_STATUS()
mysql计算时间差-本例为计算分钟差然后/60计算小时保留一位小数,由于直接得小时只会取整
mysql字段值为null时排序问题
对象与内存(一)
java基础提升(关于数组)
项目的部署
myeclipse中ssm的搭建
ui自动化笔记 selenium_webdriver,ui自动化框架(web)
原文地址:https://www.cnblogs.com/zhuxiangguo/p/2198371.html
最新文章
ETL-kettle (7.1)连接资源库创建资源库
ETL创建变量
嵌套事务,默认事务传播机制测试总结PROPAGATION_REQUIRED
java.lang.UnsupportedOperationException: null
jvm内存模型
jvm虚拟机初识(堆,栈,方法区)
项目启动bean依赖找不到
hibernate使用原声sql
static靜態代碼塊的使用詳解
mysql command line client 使用命令
热门文章
java 多线程详解
java static fianl 使用
css 伪类
JAVA递归
java获取数据库的列名,类型等信息
oracle 查询结果的排序,ASC/DESC,升序,降序,多列排序,ORDER BY
JSP之9大对象
JSP之7大动作
Base64转PDF、PDF转IMG(使用pdfbox插件)
fastjon案例
Copyright © 2011-2022 走看看