精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (1)
|
|
---|---|
作者 | 正文 |
发表时间:2009-08-10
ibatis 3 beta 1 发布,可以去下载试用一下了,http://ibatis.apache.org/java.cgi?Preferred=http://www.apache.org/dist
大概读了一下User Guide,值得关注的几点: * Namespace 现在不是optional了,是required * 可以使用Java Annotation来配置这些sql了,不过由于java本身和annotation本身的限制,更复杂的sql还是建议使用xml * 强类型的接口(interface binding),可以使用:
BlogMapper mapper = session.getMapper(BlogMapper.class); Blog blog = mapper.selectBlog(101); package org.apache.ibatis.example; public interface BlogMapper { @Select("SELECT * FROM blog WHERE id = #{id}") Blog selectBlog(int id); }
* 增加了很多扩展点,可以写不用的plugin来扩展功能,
Executor : (update, query, flushStatements, commit, rollback, getTransaction, close, isClosed)
ParameterHandler : (getParameterObject, setParameters)
ResultSetHandler : (handleResultSets, handleOutputParameters)
StatementHandler : (prepare, parameterize, batch, update, query)
* Configuration本身可以被替换,这个是很核心的东西了 * 动态sql增强了不少:
<select id=”findActiveBlogLike” parameterType=”Blog” resultType=”Blog”> SELECT * FROM BLOG WHERE state = ‘ACTIVE’ <choose> <when test=”title != null”> AND title like ${title} </when> <when test=”author != null && author.name != null”> AND title like ${author.name} </when> <otherwise> AND featured = 1 </otherwise> </choose> </select> * 其他的一些增强
看的出来,ibatis 3.0做了很多事情,开放了很多精心设计的扩展点,使用上灵活很多,也友好很多,非常值得关注啊
说实话,从wiki上最早的关于3.0的讨论开始,我就开始关注相关信息了,svn,wiki,maillist,非常不错,推荐大家看看。
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-08-10
argan 写道
* 动态sql增强了不少:
<select id=”findActiveBlogLike” parameterType=”Blog” resultType=”Blog”> SELECT * FROM BLOG WHERE state = ‘ACTIVE’ <choose> <when test=”title != null”> AND title like ${title} </when> <when test=”author != null && author.name != null”> AND title like ${author.name} </when> <otherwise> AND featured = 1 </otherwise> </choose> </select> * 其他的一些增强
很喜欢这个功能,动态sql增强就少定了很多代码。 不知道还有没有比较重要的增强,主要是以前的缺陷有没有改进? |
|
返回顶楼 | |
发表时间:2009-08-12
动态SQL 一直是 IBatis 的一大亮点。也希望IBatis的易用性能越做越好。
阿干的贴,呵呵。 |
|
返回顶楼 | |
发表时间:2009-08-12
就是。动态sql 增强了不少。jstl的标签加了好几个,开发越来越灵活了。
还有一个特别喜欢的就是insert之后貌似可以直接返回主键了。 |
|
返回顶楼 | |
发表时间:2009-08-12
动态代码感觉不错.
Annotation的支持我感觉毫无意义. 本来好不容易脱离JAVA Code的SQL语句又移植回来了.. |
|
返回顶楼 | |
发表时间:2009-08-12
这次的User-guide感觉的写的很乱,没有条理,也没和改动以前的代码进行对照,另外好多特性也没写清楚,文档里还有错误,比如:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN" "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd"> <mapper namespace="org.apache.ibatis.example.BlogMapper"> <select id="selectBlog" parameterType="int" resultClass="Blog"> select * from Blog where id = #{id} </select> </mapper> 现在Select标签里已经没有resultClass这个属性了,而且是resultType <select id=”selectPerson” parameterClass=”int” resultClass=”hashmap”> SELECT * FROM PERSON WHERE ID = #{id} </select> parameterClass也没有了,而是 parameterType 以前的文档写的还是挺详细,易懂的,这次的文档感觉根本没好好写,改了这么多也没有个PetStore之类的例子参考,现在他们的confluence好像也挂了,可参考的文档太少了,郁闷。。 |
|
返回顶楼 | |
发表时间:2009-08-12
dmewy 写道 动态代码感觉不错.
Annotation的支持我感觉毫无意义. 本来好不容易脱离JAVA Code的SQL语句又移植回来了.. 对于一些简单的Sql语句用annotation还是不错的,可以减少Xml配置,并使代码变得简洁 而且Annotation和Xml之间的迁移也比较方便,只可惜Java的Annotation本身太过于局限了, C#的Attributes相比就强多了 |
|
返回顶楼 | |
发表时间:2009-08-12
dmewy 写道 动态代码感觉不错.
Annotation的支持我感觉毫无意义. 本来好不容易脱离JAVA Code的SQL语句又移植回来了.. 是的,使用ibatis一个非常主要的目的就是所有sql语句都在管理当中,annotation只能很小的project用用,确实挺方便的,一旦规模上来,要找sql的话,还是集中来的好 |
|
返回顶楼 | |
发表时间:2009-08-12
bigfirebird 写道 就是。动态sql 增强了不少。jstl的标签加了好几个,开发越来越灵活了。
还有一个特别喜欢的就是insert之后貌似可以直接返回主键了。 貌似以前就有 |
|
返回顶楼 | |
发表时间:2009-08-13
我希望赶快有中文版指南,英文看着太痛苦了。
变化也太大了,不能兼容以前的了 |
|
返回顶楼 | |