`

Apache Commons DbUtils

    博客分类:
  • java
阅读更多
dbutils jar下载地址http://labs.renren.com/apache-mirror//commons/dbutils/binaries/commons-dbutils-1.4-bin.zip

配置获取一个数据库连接(添加数据库驱动)
		String url = "xxx";
		String driver = "oracle.jdbc.driver.OracleDriver";
		Class.forName(driver);
		Connection con = DriverManager.getConnection(url, "user","password");

将查询结果转换成对应的bean
		BeanHandler<Score> bh = new BeanHandler<Score>(Score.class);
		QueryRunner run = new QueryRunner();
		try {
			Score score =run.query(con, "select ss.* from score_score ss where ss.id=?",bh,299);
			//上面使用的query方法最后一个参数是可变参数,是sql中需要传递填充的值
			System.out.println(score.getScore());
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			try {
				DbUtils.close(con);
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}


将查询结果转换成对应的bean list
		BeanListHandler<Score> blh = new BeanListHandler<Score>(Score.class);
		QueryRunner run = new QueryRunner();
		try {
			List<Score> list =run.query(con, "select * from score_score",blh);
			for(Score s:list){
				System.out.println(s.getScore());
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			try {
				DbUtils.close(con);
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}

上面的bean和bean list转换不需要显示的调用PreparedStatement和ResultSet。直接通过QueryRunner工具类。

-------------个----------------
将ResultSet转换成bean
		PreparedStatement pstat = null;
		ResultSet rs = null;
		String sql = "select ss.* from score_score ss where ss.id=299";
		try {
			pstat =con.prepareStatement(sql);
			rs = pstat.executeQuery();
			while(rs.next()){
				RowProcessor rp = new BasicRowProcessor();
				Score score = rp.toBean(rs, Score.class);
				System.out.println(score.getScore());
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			DbUtils.closeQuietly(con, pstat, rs);
		}

将ResultSet转换成bean list
		PreparedStatement pstat = null;
		ResultSet rs = null;
		String sql = "select * from score_score";
		try {
			pstat =con.prepareStatement(sql);
			rs = pstat.executeQuery();
			while(rs.next()){
				RowProcessor rp = new BasicRowProcessor();
				List<Score> list= rp.toBeanList(rs,Score.class);
				for(Score s:list){
					System.out.println(s.getScore());
				}
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			DbUtils.closeQuietly(con, pstat, rs);
		}




* 类调用转换过程
* QueryRunner类的run方法
* 通过PreparedStatement获取ResultSet,然后对获取的ResultSet进行转换
* BeanHandler,BeanListHandler的默认RowProcessor都是
* ArrayHandler.ROW_PROCESSOR=BasicRowProcessor
* 而BasicRowProcessor的默认covert是BeanProcessor
* 所以最终转换都是调用的BeanProcessor中的toBean方法和toBeanList方法
*
* 所以要想控制转换 可以自定义BeanProcessor
* BeanProcessor转换过程:
* A.首先从传递过来的bean的class文件中提取所有的属性
* 即PropertyDescriptor[] props;
* PropertyDescriptor 对应存储属性名和属性类型
* B.检查ResultSet中的row colums和PropertyDescriptor[]的对应关系;哪个属性对应哪个字段
*   默认的匹配规则就是列名和属性名相等(忽略大小写)
*   对应方法:mapColumnsToProperties(ResultSetMetaData rsmd, PropertyDescriptor[] props)
*   可以从写该方法指定特定的属性和特定的列对应
* C.class,属性,对应字段值都有就可以创建对象赋值了
0
2
分享到:
评论

相关推荐

    apache commons dbutils api_zh

    apache commons dbutils api_zh

    Apache Commons DbUtils 1.6 API

    Apache Commons DbUtils 1.6 API 是一个Java库,它为数据库操作提供了简化的、异常安全的工具。这个API设计的目的是为了简化JDBC(Java Database Connectivity)编程,减轻开发人员处理数据库连接、事务和结果集时的...

    Apache commons dbutils 1.4jar是JDBC的开源数据库工具包

    Apache Commons DBUtils 1.4 是一个开源的Java库,它是针对Java Database Connectivity (JDBC) API的一个实用工具集。这个库旨在简化数据库操作,使开发者能够更方便、更安全地处理数据库连接和数据操作。DBUtils的...

    基于Apache Commons DbUtils的EnhancedJDBC设计源码

    EnhancedJDBC是一个基于Apache Commons DbUtils构建并扩展其功能的纯JDBC持久层工具,项目包含410个文件,主要由401个Java源文件组成,辅以少量批处理脚本、Markdown文档、版本控制忽略文件、许可协议文件、XML配置...

    apache commons dbutils实现增删改查功能

    Apache Commons DBUtils 是一个基于 Apache Commons JDBC 的轻量级数据库操作库,它简化了 Java 应用程序中的数据库访问,特别是在执行 SQL 查询和处理结果集时。DBUtils 提供了一种安全、简单的方式来处理数据库...

    Apache Commons DbUtils 包是一组用于简化 JDBC 开发的 Java 实用程序类

    Apache Commons DbUtils 是一个开源的 Java 库,它是 Apache Commons 项目的一部分,旨在为 Java 开发者提供一种简单且安全的方式来处理 JDBC(Java Database Connectivity)操作。DbUtils 的设计目标是减少那些繁琐...

    commons-dbutils-1.4.jar

    《Apache Commons DBUtils详解及其在Java数据库操作中的应用》 Apache Commons DBUtils是Apache软件基金会开发的一个开源项目,它提供了一套简洁、高效且实用的工具类,用于简化Java应用程序中的数据库操作。这个...

    commons-dbutils-1.7-API文档-中文版.zip

    赠送jar包:commons-dbutils-1.7.jar; 赠送原API文档:commons-dbutils-1.7-javadoc.jar; 赠送源代码:commons-dbutils-1.7-sources.jar; 赠送Maven依赖信息文件:commons-dbutils-1.7.pom; 包含翻译后的API文档...

    Apache Commons DbUtils 1.5 API CHM

    数据库查询工具包 Commons-DbUtils 1.5 api 文档,官方下载,原创制作

    commons-dbutils.jar.rar

    `commons-dbutils.jar.rar` 是一个包含Apache Commons DBUtils库的不同版本的压缩文件,主要用于Java应用程序中的数据库操作。DBUtils是一个实用程序库,它简化了JDBC(Java Database Connectivity)的使用,提供了...

    commons-dbutils的再封装jar包

    commons-dbutils的再封装jar包,Blog文件的示例代码

    Apache-DBUtils封装JDBC

    使用了Apache Commons DbUtils库中的类和方法封装JDBC,使用了org.apache.commons.dbutils.QueryRunner、org.apache.commons.dbutils.handlers.BeanHandler和org.apache.commons.dbutils.handlers.BeanListHandler等...

    Commons-dbutils1.7 jar包.rar

    commons-dbutils包是Apache开源组织提供的用于操作数据库的工具包。简单来讲,这个工具包就是用来更加方便我们操作数据库的,最近工作中使用了一下,感觉确实方便很多,基本告别自己封装JDBC代码对数据库进行增删改...

    Apache Commons DbUtils工具包使用介绍

    ### Apache Commons DbUtils工具包使用介绍 #### 一、简介 **Apache Commons DbUtils** 是一个用于简化 Java JDBC 操作的轻量级工具包。它通过封装 JDBC 的基础功能,帮助开发者减少冗余代码,提高代码的可读性...

    commons-dbutils-1.3.zip

    Apache Commons DBUtils是一个Java库,它简化了与数据库交互的任务,是Java开发中常用的数据访问工具。这个压缩包“commons-dbutils-1.3.zip”包含的是DBUtils库的1.3版本。DBUtils库是Apache Commons项目的一部分,...

    apache commons jar(commons所有的jar包,从官网下载提供.zip

    apache commons jar(commons所有的jar包,从官网下载提供给大家) 因为涉及jar太多,包括有src源代码,只需要3分,希望大家理解,我也是从官网花了很长时间才一个一个下完,需要的请自取。全部是zip文件,每个对应的...

    commons-dbutils-1.6.rar所有jar包

    Apache Commons DBUtils是一个Java库,它为处理数据库连接提供了简单且健壮的工具。这个压缩包文件"commons-dbutils-1.6.rar"包含了DBUtils的1.6版本,这是一个非常受欢迎的开源项目,用于简化Java数据库编程。...

    commons-dbutils-1.6

    Apache Commons DBUtils是Java开发中的一个实用工具库,主要用于简化JDBC(Java Database Connectivity)的使用。这个项目在1.6版本中包含了两个主要的jar文件:`commons-dbutils-1.6.jar`和`commons-dbutils-1.6-...

    commons-dbutils-1.7

    Apache Commons DbUtils是Java开发中的一个实用工具库,专门针对JDBC(Java Database Connectivity)进行优化,以提供更简洁、高效的数据库操作API。这个库在Java社区中广泛使用,因为它大大减轻了开发者处理数据库...

Global site tag (gtag.js) - Google Analytics