DbUtils: JDBC Utility Component Examples
来源:互联网 发布:诲女知之乎原文及翻译 编辑:程序博客网 时间:2024/05/18 03:18
DbUtils: JDBC Utility Component Examples
This page provides examples that show how DbUtils may be used.
Basic Usage
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. The following example demonstrates how these classes are used together.
// Create a ResultSetHandler implementation to convert the// first row into an Object[].ResultSetHandler h = new ResultSetHandler() { public Object handle(ResultSet rs) throws SQLException { if (!rs.next()) { return null; } ResultSetMetaData meta = rs.getMetaData(); int cols = meta.getColumnCount(); Object[] result = new Object[cols]; for (int i = 0; i < cols; i++) { result[i] = rs.getObject(i + 1); } return result; }};// Create a QueryRunner that will use connections from// the given DataSourceQueryRunner run = new QueryRunner(dataSource);// Execute the query and get the results back from the handlerObject[] result = (Object[]) run.query( "SELECT * FROM Person WHERE name=?", "John Doe", h);
You could also perform the previous query using a java.sql.Connection
object instead of a DataSource
. Notice that you are responsible for closing the Connection
in this example.
ResultSetHandler h = ... // Define a handler the same as above example// No DataSource so we must handle Connections manuallyQueryRunner run = new QueryRunner();Connection conn = ... // open a connectiontry{ Object[] result = (Object[]) run.query( conn, "SELECT * FROM Person WHERE name=?", "John Doe", h);// do something with the result} finally { // Use this helper method so we don't have to check for null DbUtils.close(conn); }
ResultSetHandler Implementations
In the examples above we implemented the ResultSetHandler
interface to turn the first row of the ResultSet
into an Object[]. This is a fairly generic implementation that can be reused across many projects. In recognition of this DbUtils provides a set of ResultSetHandler
implementations in the org.apache.commons.dbutils.handlers package that perform common transformations into arrays, Maps, and JavaBeans. There is a version of each implementation that converts just the first row and another that converts all rows in the ResultSet
.
QueryRunner run = new QueryRunner(dataSource);// Use the BeanHandler implementation to convert the first// ResultSet row into a Person JavaBean.ResultSetHandler h = new BeanHandler(Person.class);// Execute the SQL statement with one replacement parameter and// return the results in a new Person object generated by the BeanHandler.Person p = (Person) run.query( "SELECT * FROM Person WHERE name=?", "John Doe", h);
Custom RowProcessor
Each of the provided ResultSetHandler
implementations accept a RowProcessor to do the actual conversion of rows into objects. By default the handlers use the BasicRowProcessor implementation but you can implement a custom version to plug in. Probably the most common customization is to implement the toBean()
method to handle custom database datatype issues.
Custom BeanProcessor
BasicRowProcessor
uses a BeanProcessor to convert ResultSet
columns into JavaBean properties. You can subclass and override processing steps to handle datatype mapping specific to your application. The provided implementation delegates datatype conversion to the JDBC driver.
BeanProcessor maps columns to bean properties as documented in the BeanProcessor.toBean() javadoc. Column names must match the bean's property names case insensitively. For example, the firstname
column would be stored in the bean by calling its setFirstName()
method. However, many database column names include characters that either can't be used or are not typically used in Java method names. You can do one of the following to map these columns to bean properties:
- Alias the column names in the SQL so they match the Java names:
select social_sec# as socialSecurityNumber from person
- Subclass BeanProcessor and override the mapColumnsToProperties() method to strip out the offending characters.
- DbUtils: JDBC Utility Component Examples
- DbUtils: JDBC Utility Component Examples
- 分析DbUtils: JDBC Utility Component Examples(QueryRunner and ResultSetHandler)
- DbUtils: JDBC Utility Component Examples(转自官方)
- JDBC Utility Component Examples
- DbUtils component学习使用(jdbc封装工具)
- JDBC Transport Examples
- DbUtils简单封装JDBC
- JDBC-DBUtils工具类
- JDBC之DbUtils工具
- JDBC工具-DBUtils
- JDBC连接池&DBUtils
- JDBC连接池&DBUtils
- DBUtils框架简化JDBC开发
- ORM底层封装( JDBC \ DBUtils)
- jdbc-使用DBUtils进行crud
- JDBC : 使用DBUtils 工具类
- 从JDBC到commons-dbutils
- C++异常和SEH的结合
- sql server 2005 连接故障一例(复制,订阅)
- 不用临时变量交换两个数的值
- 设置button按钮背景色,及字体的颜色
- ASP操作数据库的类
- DbUtils: JDBC Utility Component Examples
- ASP程序实现网页伪静态页源代码
- jQuery入门简介
- 实例:Asp实现无组件生成图片的缩略图
- MySql与Java 数据类型转换
- 静态工厂模式
- 周末在一起的时候一般做些什么?
- Seam jBPM integration
- (转)读取一个大文件,比如7、8百兆的高效的方法?