`

commons-dbutils

 
阅读更多
现在ORM框架很多,什么Hibernate,ibatis等等。

Hibernate是提供了便利的方法来自动生成sql,帮你做了很多事情,但是你要花大量时间去学习那该死的,难记的,复杂的hsql语言,我业内的朋友也在向我抱怨,什么one-to-one,one-to-many,many-to-many,any等,把对象关系写在hbm文件里,自己看了都想吐.还不如自己写sql.

其实Hibernate还做了一级缓存(启用),二级缓存(默认未启用),如果你做批量操作,悲剧来了,OOM是正常的,因为缓存了太多的对象。

其实ibatis是不错的选择,半自动,可以自己写sql,最好帮你吧结果集设置到对象属性中,所以这个框架用的还是很多的.

以上两个框架就是最流行的ORM,那么如果我想更简单一点,我不要xml配置文件,我不要配置属性与数据库对象的映射, 那么选择commons-dbutils.

基于逻辑分离,我这里也把sql放到单独的文件中.
<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
	<comment>ENTITY event, TABLE events</comment>
	<entry key="eventsSequnce">
		EVENTS_SEQUENCE
	</entry> 
	<entry key="queryEvents">
		SELECT event_id,event_date,title FROM events 
	</entry> 
	<entry key="queryEventById">
		SELECT event_id,event_date,title FROM events WHERE event_id = ?
	</entry>
	<entry key="deleteEvent">
		DELETE events WHERE event_id = ?
	</entry>
	<entry key="updateEvent">
		UPDATE events SET event_date = ?, title = ? WHERE event_id = ?
	</entry>
	<entry key="insertEvent">
		INSERT into events(event_id,event_date,title) VALUES(?,?,?)
	</entry>
</properties>



这就是Property的xml结构,用xml格式能够清晰一点。 接下来加载使用。


public Map<String, String> loadQueries(String path){
		QueryLoader ql = QueryLoader.instance();
		Map<String, String> queries = new HashMap<String, String>();
		try {
			queries = ql.load(path);
		} catch (IOException e) {
			 throw new RuntimeException("Load Queries  fail, ["+path+"]");
		}
		return queries;
}

这是dbutils提供的属性文件加载类,返回Map<key,sql>,这样我们使用的时候只需要get就可以了。

接下来演示一个搜索并把结果集设置到对象的例子


 public <T> T queryBean(String sql, final Class<T> clazz,final Map<String, String> columnToPropertyOverrides,Object...params) throws SQLException { 
			ResultSetHandler<T> rsh = new ResultSetHandler<T>(){ 
				@Override
				public T handle(ResultSet rs) throws SQLException { 
					BeanProcessor bp = new BeanProcessor(columnToPropertyOverrides);
					if(rs.next()){
						return bp.toBean(rs, clazz);
					}
					return null;
				}
				
			};
			return queryRunner.query(sql, rsh, params)
}



这里我建了一个ResultSetHandler,故名思义,就是转化结果集的。 属性到字段的映射,如果一样的话,不需要配置,如果不一样,可以columntoProperty overrride.
还有这是一个泛型方法,支持所有类型哦。

例子就不发了,加载sql, 然后但用执行。

每一个DAO都加载属于自己的xml,并且通过简单的文件维护来获取. 这里的key随便定义,最好是DAO方法名,这样可以方便维护,每一个DAO的方法对应一条Sql语句, 再加上以上的简单QueryRunner(执行器).



分享到:
评论

相关推荐

    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文档...

    commons-dbutils-1.6

    这个项目在1.6版本中包含了两个主要的jar文件:`commons-dbutils-1.6.jar`和`commons-dbutils-1.6-sources.jar`。 `commons-dbutils-1.6.jar`是运行时库,它提供了大量的静态方法来处理数据库操作。这个库的核心...

    commons-dbutils.jar.rar

    - `commons-dbutils-1.6.jar`: 相对于1.3版,可能会有性能改进、bug修复和新功能的添加。 - `commons-dbutils-1.7.jar`: 最新版本,通常会提供更好的兼容性和更多的改进。 5. **使用场景** DBUtils适用于那些...

    commons-dbutils-1.4.jar

    这个项目的最新版本为"commons-dbutils-1.4.jar",它的主要目标是减轻开发人员在处理数据库连接、查询结果集等方面的负担,让Java程序员能够更加专注于业务逻辑,而不是底层的数据库交互细节。 DBUtils的核心设计...

    commons-dbutils-1.6.rar所有jar包

    这个压缩包文件"commons-dbutils-1.6.rar"包含了DBUtils的1.6版本,这是一个非常受欢迎的开源项目,用于简化Java数据库编程。DBUtils的核心理念是通过提供实用程序类来消除JDBC的繁琐和易错性,使开发人员能够更专注...

    commons-dbutils-1.8.1.jar

    commons-dbutils-1.8.1.jar

    commons-dbutils-1.5

    这个"commons-dbutils-1.5"版本是DBUtils项目的早期稳定版本,它包含了对早期JDBC API的良好封装,旨在减少代码量并提高容错性。 DBUtils的核心设计理念是基于数据库操作的事务管理和异常处理,它通过简化常见任务...

    commons-dbutils-1.4 bin+src

    这个"commons-dbutils-1.4 bin+src"压缩包包含两个关键文件:`commons-dbutils-1.4-sources.jar`和`commons-dbutils-1.4.jar`。 1. `commons-dbutils-1.4.jar`: 这是DBUtils库的二进制版本,包含了编译后的Java类...

    commons-dbutils-1.3.zip

    这个压缩包“commons-dbutils-1.3.zip”包含的是DBUtils库的1.3版本。DBUtils库是Apache Commons项目的一部分,旨在提供一个简单、安全的方式来处理数据库操作,减少与数据库交互时出现的常见错误。 DBUtils的核心...

    Commons-dbutils1.7 jar包.rar

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

    JavaWeb需要用到的jar包_jar包_javaweb_commons-dbutils-1.3_

    1. **commons-dbutils-1.3**: Commons-DbUtils是Apache的一个开源项目,它提供了一个简单且实用的数据库操作工具包。DbUtils的主要功能包括:连接池管理、SQL执行、结果集处理等。DbUtils与JDBC结合使用,可以避免...

    commons-dbutils-1.5.jar

    commons-dbutils-1.5.jar

    commons-dbutils-1.7.rar

    commons-dbutils-1.7.jar,commons-dbutils-1.7-javadoc.jar,commons-dbutils-1.7-sources.jar,commons-dbutils-1.7-tests.jar,commons-dbutils-1.7-test-sources.jar

    commons-dbutils-1.6.jar

    commons-dbutils-1.6.jar

    commons-dbutils-1.7.jar

    commons-dbutils-1.7.jar 最新

    commons-dbutils-1.3

    这个"commons-dbutils-1.3"版本是该库的一个早期版本,但仍然在许多项目中广泛使用,因为它提供了一些核心功能,比如查询结果的处理和异常处理。 DBUtils的核心功能主要包括以下几个方面: 1. **结果集处理**:...

    commons-dbutils.jarv1.6官方免费版

    commons-dbutils.jar是在java架构开发时十分重要的一款.jar包,正确的使用commons dbutils可以让你的开发事半功倍,如果您在开发过程中缺少这款jar包,马上来下载commonsdbutils jar包吧! 软件功能: commons-...

Global site tag (gtag.js) - Google Analytics