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,非常不错,推荐大家看看。