精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2006-05-22
刚刚上传0.3.1版到sourceforge上(http://dao-zero.sourceforge.net),下载地址是http://sourceforge.net/project/showfiles.php?group_id=164840。主要是加入了对RowHandler的支持,并更新了文档/tutorial,具体大家可以到项目主页上去看。 最初的对dao-zero的想法和叙述见http://forum.iteye.com/viewtopic.php?t=19732&start=0&postdays=0&postorder=asc&highlight= 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2006-05-23
我自己已经计划好的是:
(1)增加对queryForPaginatedList()和queryForMap的支持,这两个特性完成以后对iBatis API的支持就基本上算是完整了; (2)内部实现上准备统一到使用cglib上; 可能的话还想: (1)把dao层一些其他常见代码(例如参数验证和SQL过滤)也放到dao-zero的代理中去 (2)研究一下是否也为hibernate做个类似的东西(也顺便深入学习一下hibernate) (3)做到不依赖于spring (4)ejb3 ...... |
|
返回顶楼 | |
发表时间:2006-05-29
支不支持
public List queryForList(String statementName, Object parameterObject, int skipResults, int maxResults); |
|
返回顶楼 | |
发表时间:2006-05-29
squall 写道 支不支持
public List queryForList(String statementName, Object parameterObject, int skipResults, int maxResults); 目前还不支持。我考虑有两个替代方案: (1)使用SQL自己的分页,大数据量时性能相对更好 (2)自己写DAO的这个方法的实现代码,而其他部分用dao-zero做,具体可以参见http://dao-zero.sourceforge.net/index_zh_cn.html#content_6 我确实也在考虑加入这个特性(包括PaginatedList),问题在于怎么加才用起来简单。一个方案是直接约定将method的后两个int参数作为skipResults和maxResults,另一个方案是用annotation指定,可都觉得不够理想,如果你有什么想法可以帮助我一下就太好了。 现在的版本这个并没有把这个特性以很高优先级考虑,因为认为大家用ibatis时都是用sql分页的,这个特性用得很少,想当然了,抱歉 |
|
返回顶楼 | |
发表时间:2006-05-29
最近也开始用ibatis,有个简单的生成工具。input目录里是定义,output里是输出。
http://dwangel.mudfans.cn/wp-content/uploads/2006/05/gentool-share.zip 包含支持库了。 可以根据定义预先生成一些SqlMapping。 不过,我用的是自己GenericDAO。 考虑是否可以加上类似我的这样根据模版生成功能。 可以少写点东西而已。 |
|
返回顶楼 | |
发表时间:2006-05-29
dwangel 写道 最近也开始用ibatis,有个简单的生成工具。input目录里是定义,output里是输出。
http://dwangel.mudfans.cn/wp-content/uploads/2006/05/gentool-share.zip 包含支持库了。 可以根据定义预先生成一些SqlMapping。 不过,我用的是自己GenericDAO。 考虑是否可以加上类似我的这样根据模版生成功能。 可以少写点东西而已。 能具体说一下怎么加吗? 粗看下来gentool应该是个类似abator的ibatis dao代码生成工具,而dao-zero是运行时的动态实现,不是编译前的代码生成,和代码生成工具的出发点不一样 |
|
返回顶楼 | |
发表时间:2006-05-30
我看了看daozero的代码,觉得代码写得太复杂了重构了一部份。
daozero中每种statement都给了两种实现,其中一种mapped是参数大于一个的时候使用的,没有看出来它的用途,请指点 |
|
返回顶楼 | |
发表时间:2006-05-30
squall 写道 我看了看daozero的代码,觉得代码写得太复杂了重构了一部份。
daozero中每种statement都给了两种实现,其中一种mapped是参数大于一个的时候使用的,没有看出来它的用途,请指点 mapped的意思是参数多于1个的时候,得new一个Map来作为参数传给ibatis。 举个例子,有3个DAO方法: (1)List findAccountsByDepositAndLoan( String _deposit, String _loan ); (2)List findAccounts( AccountInfo _account ); (3)List findAccountsByDeposit( String _deposit ); 这时非mapped是用来处理(2)和(3)的,mapped是用来处理(1)的。 代码是写得不好,因为有了这个想法就花了几个小时匆匆忙忙地做了试试看,再后来一直在补充功能和考虑新特性的使用方便性,所以也没去重构。 欢迎重构!源码中已经有比较充分的test case,放心做好了,有问题可以MSN联系。如果你有兴趣,我们一起做。 |
|
返回顶楼 | |
发表时间:2006-05-30
msn: squall_like@hotmail.com
|
|
返回顶楼 | |
发表时间:2006-05-31
非常感谢squall贡献了他refactor的daozero的代码,我把它们合并进了0.3.2版。
下载地址是http://sourceforge.net/project/showfiles.php?group_id=164840 0.3.2版还更新了一下文档中的错误,因为文档第4部分的AccountDaoImpl类应该是继承自SqlMapClientDaoSupport的,漏写了。 顺便说一下版本号,是这样定的:0.x.y,x递增代表新特性的追加,y表示bug修改或内部代码的改进。 现在正在做的是加入对queryForPaginatedList()和分页情况下的queryForList(String,Object,int,int)的直接支持,准备发布在0.4版中。 另外,也在考虑这两件事: 1. 把daozero往完整的dao层工具发展,就是说与大家常用的dao层代码生成工具结合起来,一方面把代码生成工具做得到的特性尽可能放到daozero的运行时bean中,另一方面是把剩下的做在代码生成工具里。大家一下如何?或者讨论一下dao代码生成工具可以怎么做,可以做进哪些功能? 2.让dao-zero支持传入参数允许混合使用map,bean和java基本类,更夸张点的,还可以允许直接(混合)使用HttpSession和HttpRequest,还有struts的动态bean,这样就可以省掉在action里提取装配查询参数的代码,这个主意怎么样? |
|
返回顶楼 | |