dbutils使用说明Word文档格式.docx
- 文档编号:22769102
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:16
- 大小:20.30KB
dbutils使用说明Word文档格式.docx
《dbutils使用说明Word文档格式.docx》由会员分享,可在线阅读,更多相关《dbutils使用说明Word文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
QueryRunner()
(2):
QueryRunner(Datasourceds)。
query(Connectionconn,Stringsql,Object[]params,ResultSetHandlerrsh)方法:
这一方法执行一个带参数的选择查询,在这个查询中,对象阵列的值被用来作为查询的置换参数。
这一方法内在地处理PreparedStatement和ResultSet的创建和关闭。
ResultSetHandler对象把从ResultSet得来的数据转变成一个更容易的或是应用程序特定的格式来使用。
query(Stringsql,Object[]params,ResultSetHandlerrsh)方法:
这几乎与第一种方法一样;
唯一的不同在于它不将数据库连接提供给方法,并且它是从提供给构造器的数据源(DataSource)或使用的setDataSource方法中重新获得的。
query(Connectionconn,Stringsql,ResultSetHandlerrsh)方法:
这执行一个带参数的选择查询。
D:
update(Connectionconn,Stringsql,Object[]params)方法:
这一方法被用来执行一个带参数的插入、更新或删除操作。
对象阵列为声明保存着置换参数。
E:
update(Stringsql,Object[]params)方法:
这几乎与上一种种方法一样;
F:
update(Connectionconn,Stringsql)方法:
这执行一个带参数的插入、更新或删除操作。
2.3:
ResultSetHandler接口
正如它的名字所示,这一接口执行处理一个java.sql.ResultSet,将数据转变并处理为任何一种形式,这样有益于其应用而且使用起来更容易。
这一组件提供了
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等转化类。
ResultSetHandler接口提供了一个单独的方法:
Objecthandle(java.sql.ResultSet.rs)。
因此任何ResultSetHandler的执行需要一个结果集(ResultSet)作为参数传入,然后才能处理这个结果集,再返回一个对象。
因为返回类型是java.lang.Object,所以除了不能返回一个原始的Java类型之外,其它的返回类型并没有什么限制。
如果你发现这七个执行程序中没有任何一个提供了你想要的服务,你可以自己写执行程序并使用它。
例:
packagemons;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.SQLException;
importjava.util.Iterator;
importjava.util.List;
importjava.util.Map;
importmons.dbutils.DbUtils;
importmons.dbutils.QueryRunner;
importmons.dbutils.handlers.MapListHandler;
publicclassDbUtiles{
privatestaticConnectionconn;
publicstaticConnectiongetConnection(){
Stringurl="
jdbc:
mysql:
//localhost:
3306/info_db"
;
StringdriverClassName="
org.gjt.mm.mysql.Driver"
Stringusername="
root"
Stringpassword="
Connectionconn=null;
DbUtils.loadDriver(driverClassName);
try{
conn=DriverManager.getConnection(url,username,password);
}catch(SQLExceptione){
e.printStackTrace();
}
returnconn;
publicstaticvoidmain(String[]args){
conn=getConnection();
QueryRunnerqr=newQueryRunner();
Listal=null;
al=(List)qr.query(conn,"
select*fromguestbook"
newMapListHandler());
Iteratorite=al.iterator();
while(ite.hasNext()){
Mapmap=(Map)ite.next();
System.out.println(map.get("
name"
));
}
除上述介绍的外还可以了解一下以下内容
mons.dbutils.QueryLoader:
QueryLoader类是一个从一个文件加载查询到一个Map的简单的类。
然后,当需要的时候,你从Map中选择一些查询。
在没有专门去接触代码的情况下,一个文件中的Having查询也可以改变得尽可能的简单。
mons.dbutils.wrappers.SqlNullCheckedResultSet:
这个类对使用一个系统方法来解决NULL值问题是很有用的。
用一个SqINullCheckedResultSet的实例来限制一个常规的结果集(ResultSet),然后详细地说明在遇NULL值的情况下应该做些什么。
mons.dbutils.wrappers.StringTrimmedResultSet:
用类StringTrimmedResultSet来约束一个结果集,这样一来,你就可以修整所有getString()和getObject()方法返回的字符串。
注:
dbutils组件对数据源的处理使用:
QueryRunnerqr=newQueryRunner(DataSourceds).
下面是组件中DbUtils类和BeanListHandler类的详细用法的例子:
GuestBook.java源文件
packagecom.gdufs.xxy;
publicclassGuestBook{
privateIntegerid;
privateStringname;
publicIntegergetId(){
returnid;
publicStringgetName(){
returnname;
publicvoidsetId(Integerid){
this.id=id;
publicvoidsetName(Stringname){
this.name=name;
BeanListExample.java类文件
importmons.dbutils.handlers.BeanListHandler;
publicclassBeanListExample{
publicstaticvoidmain(String[]args){
Connectionconn=null;
Stringurl="
3306/test"
Stringdriver="
com.mysql.jdbc.Driver"
Stringuser="
Stringpassword="
520134"
DbUtils.load(driver);
try{
conn=DriverManager.getConnection(url,user,password);
QueryRunnerqr=newQueryRunner();
Listresults=(List)qr.query(conn,"
selectid,namefromguestbook"
newBeanListHandler(GuestBook.class));
for(inti=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);
importmons.dbutils.QueryRunner;
importmons.dbutils.handlers.MapListHandler;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.SQLException;
importjava.util.Map;
importjava.util.List;
publicclassDbUtilsUseMapMySQL{
publicstaticvoidmain(String[]args){
StringjdbcURL="
//localhost/octopus"
StringjdbcDriver="
Stringuser="
Stringpassword="
try{
DbUtils.loadDriver(jdbcDriver);
conn=DriverManager.getConnection(jdbcURL,user,password);
QueryRunnerqRunner=newQueryRunner();
ListmapList=(List)qRunner.query(conn,"
selectid,namefromanimals_table"
newMapListHandler());
for(inti=0;
i<
mapList.size();
i++){
Mapmap=(Map)mapList.get(i);
System.out.println("
id="
+map.get("
id"
name="
—————–"
);
}
DbUtils_UseMap_MySQL:
end."
}catch(SQLExceptione){
//handletheexception
}finally{
DbUtils.closeQuietly(conn);
classEmployee{
privateintid;
privateStringname;
publicEmployee(){
publicvoidsetName(Stringname){
this.name=name;
publicStringgetName(){
returnthis.name;
publicvoidsetId(intid){
this.id=id;
publicintgetId(){
returnthis.id;
publicvoidprint(){
+id+"
name="
+name);
1.DAO基类(数据库操作基类)
这里使用了层超类模式,复用代码,统一处理异常,日志等等..
BaseDAO:
packagecom.d1zhan;
publicclassBaseDAO{
/**
*获取数据库连接
*@return
*/
publicConnectiongetConnection(){
//localhost/dbname"
//handletheexception
}finally{
*查找多个对象
*@paramsqlString
*@paramclazz
publicListquery(StringsqlString,Classclazz){
Listbeans=null;
beans=
(List)qRunner.query(
conn,
sqlString,
newBeanListHandler(clazz));
returnbeans;
*查找对象
publicObjectget(StringsqlString,Classclazz){
Objectobj=null;
if(beans!
=null&
&
!
beans.isEmpty()){//注意这里
obj=beans.get(0);
returnobj;
*执行更新的sql语句,插入,修改,删除
publicbooleanupdate(StringsqlString){
booleanflag=false;
inti=qRunner.update(conn,sqlString);
if(i>
0){
flag=true;
returnflag;
commons-DBUtils实践
1,Employee雇员
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- dbutils 使用说明