<!-- [if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:PunctuationKerning/> <w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing> <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery> <w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery> <w:ValidateAgainstSchemas/> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:SpaceForUL/> <w:BalanceSingleByteDoubleByteWidth/> <w:DoNotLeaveBackslashAlone/> <w:ULTrailSpace/> <w:DoNotExpandShiftReturn/> <w:AdjustLineHeightInTable/> <w:BreakWrappedTables/> <w:SnapToGridInCell/> <w:WrapTextWithPunct/> <w:UseAsianBreakRules/> <w:DontGrowAutofit/> <w:UseFELayout/> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!-- [if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]--><!-- [if !mso]> <object classid="clsid:38481807-CA0E-42D2-BF39-B33AF135CC4D" id=ieooui> </object> <style> st1\:*{behavior:url(#ieooui) } </style> <![endif]--><!-- [if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;} </style> <![endif]-->
dbutils 开源项目用法
dbutils
开源项目用法:
项目地址:
http://commons.apache.org/dbutils/
最新版本为
1.1
英文文档中这样写到:
DbUtils is a very small library of classes so it won't take long to go through
the javadocs for each class.
The core classes/interfaces in DbUtils are QueryRunner and ResultSetHandler.
You don't need to know about any other DbUtils classes to benefit from using
the library.
大概意思是:
DbUtils
是一个非常小的类库
因此你不需要花费太长的时间去研究
javadocs
它的核心接口是
QueryRunner
和
ResultSetHandler
你不需要关心其他
DbUtils
的类如何使用
-------------------------------------------------------------------------------------------------------------------------
QueryRunner
构造
QueryRunner
:
QueryRunner()
QueryRunner(javax.sql.DataSource ds)
有两种方法来构造
QueryRunner
一种是无参数的
一种是有
DataSource
类型参数的构造方法
这里使用
DataSource
来构造它
使用连接池来构造它的好处就是
我们无需管
Connection
对象的创建与关闭了
后面调用
QueryRunner
对象的方法也无需传入
Connection
对象了
那我们就要用到另外一个开源数据库连接池组件
dbcp
以下为
dbcp
的用法:
/**
*
*
* dbcp
连接池的用法
*/
public class DBUtils {
private static Properties properties;
private static DataSource dataSource;
private static Connection conn;
static {
try {
properties = new Properties();
//
载入
dbcp
的配置文件
properties.load(DBUtils.class.
.getResourceAsStream("/dbcpconfig.properties"));
//
创建个
BasicDataSourceFactory
对象用于创建连接池对象
BasicDataSourceFactory b = new BasicDataSourceFactory();
//
把
properties
对象设置给
BasicDataSourceFactory
dataSource = b.createDataSource(properties);
} catch (Exception e) {
e.printStackTrace();
}
}
public static DataSource getdataSource() {
return dataSource;
}
}
注意:需要导入
dbcp
连接池的
jar commons-dbcp-1.2.1.jar
和所依赖的
commons-pool-1.2.jar
commons-collections-3.1.jar
//
这样我们就可以构造个
queryRunner
对象了
QueryRunner queryRunner = new QueryRunner(DBUtils.getdataSource());
QueryRunner
主要方法
:
//
更新一列
queryRunner.update("update Users set username=?,password=? where id =
?", new String[]{"11","22","1"});
//
删除一列
queryRunner.update("delete
from Users where id =?", 1);
--------------------------------------------------------------------------------------------------------------
如果要
使用
QueryRunner
的查询方法
也就是
query()
方法的话
那么就需要有对象来接收查询出来的
ResultSet
用什么来接收呢?
要用到
实现
ResultSetHandler
接口的类
1. BeanHandler
返回个
entitybean
对象
//
指定返回哪个
entitybean
ResultSetHandler rsh = new BeanHandler(Users.class);
QueryRunner queryRunner = new QueryRunner(DBUtils.getdataSource());
Users users = (Users) queryRunner.query("select * from Users where
id=?",2, rsh);
System.out.println(users.getUsername());
--------------------------------------------------------------------------------------------------------------
2. BeanListHandler
返回个
List List
里装的是
entitybean
对象
QueryRunner queryRunner = new QueryRunner(DBUtils.getdataSource());
ResultSetHandler rsh = new BeanListHandler(Users.class);
List<Users> list = (List) queryRunner.query(
"select * from Users ", rsh);
for(Users user:list){
System.out.println(user.getUsername());
}
--------------------------------------------------------------------------------------------------------------
3. ArrayListHandler
返回
List
对象
list
里装的为
Object
数组
QueryRunner queryRunner = new QueryRunner(DBUtils.getdataSource());
//
使用
ArrayListHandler
实现类来存放结果会返回
ArrayList
对象
ResultSetHandler rsh = new ArrayListHandler();
//list
里装的是对象数组
List<Object[]> list = (List) queryRunner.query(
"select * from Users ", rsh);
for(Object[] user:list) {
for(Object obj:user)
{
System.out.println(obj);
}
}
-------------------------------------------------------------------------------------------------------------
4. ColumnListHandler
返回
List
对象
注意
:
构造
ColumnListHandler()
对象时候如果
是无参数的话
像这样
ResultSetHandler
rsh = new ColumnListHandler();
查询出来的
List
里放的类型为主键的类型
值为主键的值
;
ResultSetHandler rsh = new ColumnListHandler();
List<Integer> list = (List) queryRunner.query(
"select * from Users ", rsh);
//System.out.println(list.get(0).getClass().getSimpleName());
for(Integer in:list){
System.out.println(in);
}
构造
ColumnListHandler()
对象时候如果
是有参数的话
像这样
ResultSetHandler rsh = new ColumnListHandler(
主键值
);
那么查询出来的
List
里放的是就是这个主键对应的一行的记录
;
ResultSetHandler rsh = new ColumnListHandler(2);
List<String> list = (List) queryRunner.query(
"select * from Users ", rsh);
for(String in:list){
System.out.println(in);
}
-------------------------------------------------------------------------------------------------------------
5. KeyedHandler
根据键返回
Map
ResultSetHandler rsh = new KeyedHandler();
//map
里装的
key
为主键的值
value
为主键对应的那行记录名称和记录
Map map = (Map) queryRunner.query(
"select id,username,password from Users ", rsh);
//
根据主键值出去那一列
// Map t = (Map) map.get(2);
System.out.println(map.get(2));
---------------------------------------------------------------------------------------------------------------
6. MapHandler
根据键返回
Map
QueryRunner queryRunner = new QueryRunner(DBUtils.getdataSource());
ResultSetHandler rsh = new MapHandler();
Map map = (Map) queryRunner.query(
"select * from Users ", rsh);
System.out.println(map);
---------------------------------------------------------------------------------------------------------------
7. ScalarHandler
根据键返回第一行记录
QueryRunner queryRunner = new QueryRunner(DBUtils.getdataSource());
//
这样就会返回第一行记录名字为
username
的值
ResultSetHandler rsh = new ScalarHandler("username");
//
这的类型根据表里数据的类型而定
如果上面
ResultSetHandler rsh =
new ScalarHandler("username");
//
取出来的类型为
int
的话
那么这里也必须由
int
来接收
String result = (String) queryRunner.query("select * from Users where
id=99 ",
rsh);
System.out.println(result);
相关推荐
### DBUtils开源项目详解 #### 一、简介 DBUtils是一个强大的开源库,隶属于Apache Commons项目,主要用于简化Java中JDBC的使用。它的设计目的是为了减少JDBC编码时的样板代码,提供更简洁、更安全的数据库操作...
**dbutils jar包及使用介绍** Apache Commons DBUtils是一个轻量级的...以上就是对`commons-dbutils-1.6`版本的简要介绍,详细内容可以参考提供的`dbutils开源项目用法.doc`文档,结合实际项目需求进行学习和应用。
DBUtils是Apache软件基金会的一部分,是开源社区开发的高质量、实用的组件。这个项目的核心理念是为开发者提供一个简单易用的接口来执行SQL查询和处理结果集。 DBUtils的主要特性包括: 1. **异常处理**:DBUtils...
在本实例中,我们将深入探讨DButils的核心功能和使用方法。 1. **连接池管理** DButils支持多种数据库连接池,如C3P0、DBCP、HikariCP等。连接池是数据库管理的关键组件,它能够有效地重用数据库连接,减少创建和...
下面我们将深入探讨DBUtils的主要功能和使用方法。 1. 数据库连接管理:DBUtils提供了ConnectionHelper类,用于管理数据库连接的生命周期。它遵循了数据库连接的获取、使用和释放的最佳实践,避免了资源泄露和空闲...
Dbutils 是 Apache Commons DbUtils 的简称,它是一个用于简化 Java 数据库编程的开源库。Dbutils 基于 JDBC(Java Database Connectivity),提供了一套简洁、高效且易于使用的API,帮助开发者更方便地处理数据库...
首先,`dbutils`是Apache软件基金会提供的一个开源项目,它基于Java,提供了简单易用的API,使得开发者可以便捷地执行SQL语句,处理结果集,实现了对数据库的基本操作。它的核心组件包括QueryRunner和DBUtils,其中...
DBUtils是Apache Commons项目的一部分,它是一个实用工具库,简化了JDBC编程。commons-dbutils-1.4.jar是这个库的一个版本,它提供了一套简单易用的API,帮助开发者处理常见的数据库操作,如执行SQL查询、处理结果集...
Apache Commons DBUtils是一个Java库,它为处理数据库连接提供了一个简单且有效的方法。这个库的主要目标是简化数据库操作,使得开发人员能够更专注于SQL查询和业务逻辑,而不是处理底层的数据库连接管理。DBUtils是...
Apache Commons DBUtils 1.4 是一个开源的Java库,它是针对Java Database Connectivity (JDBC) API的一个实用工具集。这个库旨在简化数据库操作,使开发者能够更方便、更安全地处理数据库连接和数据操作。DBUtils的...
这个压缩包文件"commons-dbutils-1.6.rar"包含了DBUtils的1.6版本,这是一个非常受欢迎的开源项目,用于简化Java数据库编程。DBUtils的核心理念是通过提供实用程序类来消除JDBC的繁琐和易错性,使开发人员能够更专注...
DBUtils是Apache Commons项目的一部分,它是一个开源的Java库,专为简化数据库操作而设计。在Java编程中,DBUtils提供了许多实用的功能,使得开发者在处理JDBC(Java Database Connectivity)时可以更加高效和便捷。...
Apache DBUtils是一个开源的Java库,它为Java程序员提供了便捷的方式来处理JDBC(Java Database Connectivity)操作。DBUtils的主要目标是简化JDBC编程,减少代码重复,并帮助避免常见的JDBC编程错误。它不是一个...
DBUtils是Apache软件基金会提供的一个开源Java库,它是基于Jakarta Commons项目的一个实用工具。DBUtils的主要目标是简化Java与关系型数据库之间的交互,减少数据库操作的繁琐代码。它提供了一套实用工具类,用于...
DBUtils是Apache软件基金会开发的一个开源Java库,它提供了一套简单、易用且高度封装的数据库操作API,主要用于简化Java应用程序对数据库的访问。DBUtils的核心思想是为数据库操作提供一个安全、高效的抽象层,使得...
commons-dbutils包是Apache开源组织提供的用于操作数据库的工具包。简单来讲,这个工具包就是用来更加方便我们操作数据库的,最近工作中使用了一下,感觉确实方便很多,基本告别自己封装JDBC代码对数据库进行增删改...
`DBUtils`是Apache的另一个开源项目,它是一个实用的Java数据库操作工具包,简化了JDBC的使用。DBUtils的主要功能包括: 1. **QueryRunner**: 提供了一系列静态方法,用于执行SQL查询和更新操作,如query(), update...
源码中包含了详细的注释,有助于理解每个方法的作用和用法。 3. 关于DBUtils的知识点: - **数据库连接管理**:DBUtils使用连接池管理数据库连接,提高了性能,避免了资源浪费。默认使用的是Jakarta DBCP,但也...
`dbutils` 是一个基于Java的开源数据库操作工具包,它在JDBC(Java Database Connectivity)的基础上提供了一层简洁而强大的封装,极大地简化了数据库的编程工作。`dbutils` 由Apache软件基金会开发并维护,是许多...
Python的dbutils模块是Apache的一个开源项目,它提供了一套用于数据库操作的工具类,能够帮助简化数据库连接和管理,提高开发效率。本教程将详细讲解如何对dbutils进行简单的封装,以更好地适应实际的Python数据库...