论坛首页 Java企业应用论坛

ibatis3 beta 1 发布,新功能介绍

浏览 20987 次
精华帖 (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,非常不错,推荐大家看看。

 


   发表时间: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增强就少定了很多代码。 不知道还有没有比较重要的增强,主要是以前的缺陷有没有改进?

0 请登录后投票
   发表时间:2009-08-12  
动态SQL 一直是 IBatis 的一大亮点。也希望IBatis的易用性能越做越好。

阿干的贴,呵呵。

0 请登录后投票
   发表时间:2009-08-12  
就是。动态sql 增强了不少。jstl的标签加了好几个,开发越来越灵活了。

还有一个特别喜欢的就是insert之后貌似可以直接返回主键了。
0 请登录后投票
   发表时间:2009-08-12  
动态代码感觉不错.
Annotation的支持我感觉毫无意义.
本来好不容易脱离JAVA Code的SQL语句又移植回来了..
0 请登录后投票
   发表时间: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好像也挂了,可参考的文档太少了,郁闷。。
0 请登录后投票
   发表时间:2009-08-12  
dmewy 写道
动态代码感觉不错.
Annotation的支持我感觉毫无意义.
本来好不容易脱离JAVA Code的SQL语句又移植回来了..


对于一些简单的Sql语句用annotation还是不错的,可以减少Xml配置,并使代码变得简洁
而且Annotation和Xml之间的迁移也比较方便,只可惜Java的Annotation本身太过于局限了,
C#的Attributes相比就强多了
0 请登录后投票
   发表时间:2009-08-12  
dmewy 写道
动态代码感觉不错.
Annotation的支持我感觉毫无意义.
本来好不容易脱离JAVA Code的SQL语句又移植回来了..


是的,使用ibatis一个非常主要的目的就是所有sql语句都在管理当中,annotation只能很小的project用用,确实挺方便的,一旦规模上来,要找sql的话,还是集中来的好
1 请登录后投票
   发表时间:2009-08-12  
bigfirebird 写道
就是。动态sql 增强了不少。jstl的标签加了好几个,开发越来越灵活了。

还有一个特别喜欢的就是insert之后貌似可以直接返回主键了。

貌似以前就有
0 请登录后投票
   发表时间:2009-08-13  
我希望赶快有中文版指南,英文看着太痛苦了。
变化也太大了,不能兼容以前的了
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics