`
argan
  • 浏览: 129637 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

ibatis3 beta 1 发布,新功能介绍

阅读更多

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

 


分享到:
评论
13 楼 phoenixup 2009-08-13  
cats_tiger 写道
可以开始写一个Spring的整合了。


在RC版没有出来之前,一切言之过早,目前User Guide中提到的内容和真实版本的API有差异,应该等稳定了再动手。而且SpringSource的动作一向不慢~~
12 楼 cats_tiger 2009-08-13  
可以开始写一个Spring的整合了。
11 楼 argan 2009-08-13  
blackwolf1983 写道
我希望赶快有中文版指南,英文看着太痛苦了。
变化也太大了,不能兼容以前的了


ibatis 3是一个全新的版本,几乎是重写,很多地方都精心的设计过,为什么要兼容以前的版本呢,那样只会背上沉重的包袱,就像jdk一样,如果java能像python那样,放下一些包袱,放弃一部分兼容性,那样才能有希望啊。
10 楼 blackwolf1983 2009-08-13  
nathanlee 写道
bigfirebird 写道
就是。动态sql 增强了不少。jstl的标签加了好几个,开发越来越灵活了。

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

貌似以前就有

我接到的主键都是null的,后来自己实现了一个读取主键的方法,能告诉下为啥不能返回主键吗?

ibatis有jstl标签吗?我怎么没见过
9 楼 blackwolf1983 2009-08-13  
我希望赶快有中文版指南,英文看着太痛苦了。
变化也太大了,不能兼容以前的了
8 楼 nathanlee 2009-08-12  
bigfirebird 写道
就是。动态sql 增强了不少。jstl的标签加了好几个,开发越来越灵活了。

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

貌似以前就有
7 楼 argan 2009-08-12  
dmewy 写道
动态代码感觉不错.
Annotation的支持我感觉毫无意义.
本来好不容易脱离JAVA Code的SQL语句又移植回来了..


是的,使用ibatis一个非常主要的目的就是所有sql语句都在管理当中,annotation只能很小的project用用,确实挺方便的,一旦规模上来,要找sql的话,还是集中来的好
6 楼 hyxw5890 2009-08-12  
dmewy 写道
动态代码感觉不错.
Annotation的支持我感觉毫无意义.
本来好不容易脱离JAVA Code的SQL语句又移植回来了..


对于一些简单的Sql语句用annotation还是不错的,可以减少Xml配置,并使代码变得简洁
而且Annotation和Xml之间的迁移也比较方便,只可惜Java的Annotation本身太过于局限了,
C#的Attributes相比就强多了
5 楼 hyxw5890 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好像也挂了,可参考的文档太少了,郁闷。。
4 楼 dmewy 2009-08-12  
动态代码感觉不错.
Annotation的支持我感觉毫无意义.
本来好不容易脱离JAVA Code的SQL语句又移植回来了..
3 楼 bigfirebird 2009-08-12  
就是。动态sql 增强了不少。jstl的标签加了好几个,开发越来越灵活了。

还有一个特别喜欢的就是insert之后貌似可以直接返回主键了。
2 楼 raymond2006k 2009-08-12  
动态SQL 一直是 IBatis 的一大亮点。也希望IBatis的易用性能越做越好。

阿干的贴,呵呵。

1 楼 grandboy 2009-08-10  
<div class="quote_title">argan 写道</div>
<div class="quote_div">
<p>* 动态sql增强了不少:</p>
<p> </p>
<pre name="code" class="xml">&lt;select id=”findActiveBlogLike”
      parameterType=”Blog” resultType=”Blog”&gt;
  SELECT * FROM BLOG WHERE state = ‘ACTIVE’
  &lt;choose&gt;
    &lt;when test=”title != null”&gt;
      AND title like ${title}
    &lt;/when&gt;
    &lt;when test=”author != null &amp;&amp; author.name != null”&gt;
      AND title like ${author.name}
    &lt;/when&gt;
    &lt;otherwise&gt;
      AND featured = 1
    &lt;/otherwise&gt;
  &lt;/choose&gt;
&lt;/select&gt;
</pre>
<p> * 其他的一些增强</p>
<p> </p>
</div>
<p>很喜欢这个功能,动态sql增强就少定了很多代码。 不知道还有没有比较重要的增强,主要是以前的缺陷有没有改进?</p>

相关推荐

    ibatis3资料-介绍

    ### iBATIS 3:简介与新功能 iBATIS是一个开源框架,旨在简化Java应用程序中的数据访问层(DAO)的开发。它提供了一种基于SQL映射的方式,使开发者能够更加灵活地处理数据库交互,而无需编写繁琐的JDBC代码。iBATIS...

    iBATIS3 beta2 测试完整实例

    iBATIS3 beta2 是一个基于Java的持久层框架,它是对原先的iBATIS2的一个重大升级。这个测试完整实例旨在帮助开发者更好地理解和运用iBATIS3的新特性,特别是对于那些正在从早期版本迁移或者初次接触iBATIS3的人来说...

    Spring 3.0 整合 iBatis 3 Beta10 配置

    在Spring 3.0中整合iBatis 3 Beta10是一个相对复杂的过程,因为官方文档并未明确提及对iBatis 3的支持。不过,通过一些自定义配置和理解两个框架的基本原理,开发者可以实现这样的整合。下面我们将详细介绍如何进行...

    Ibatis3手册 Ibatis3参考手册

    本篇文章基于“Ibatis3手册 Ibatis3参考手册”的标题及描述,深入解析Ibatis3的核心概念、架构特点以及如何进行实际操作,旨在帮助读者全面理解Ibatis3的工作原理与应用场景。 ### 一、Ibatis3简介 Ibatis3是一款...

    iBATIS3 beta2 英文文档

    iBATIS 3是一款开源的持久层框架,它简化了Java应用程序与...总之,iBATIS 3是一个功能强大且灵活的持久层框架,通过丰富的配置选项和强大的动态SQL功能,为Java开发者提供了一种高效、简洁的数据库操作解决方案。

    ibatis3开发指南

    本文采用的是ibatis3 beta9版本,尽管是测试版,但接近通用版本(GA),因此其功能和稳定性值得信赖,预计在GA版本发布后,本文介绍的例子同样适用。 三、数据库选择与抽象层的重要性 ibatis3的核心价值在于它提供...

    IBATIS3代码生成器

    【标题】"IBATIS3代码生成器"是一款专为基于IBATIS3框架的项目设计的工具,它能够自动生成常见的SQL映射文件、Java DAO接口和实现类,大大提高了开发效率,降低了手动编写这些代码的工作量。该工具的核心理念是通过...

    ibatis系列 详细介绍

    1. **iBATIS概述**:介绍iBATIS的基本概念、设计理念和核心组件,包括SqlMapConfig.xml配置文件、SqlMap接口和SqlMapClient对象等。 2. **映射文件**:详述了SqlMap映射文件的结构和元素,如sql、select、insert、...

    ibatis3__发布_入门示例

    标题与描述概述的知识点主要集中在iBatis 3(现称为MyBatis)的入门级应用,特别是关于如何在Web项目中集成并使用这个框架。iBatis 3是一个持久层框架,它允许开发者通过XML配置文件或注解来映射SQL语句,从而简化了...

    ibatis最新

    3. ibator-1.2.1.681.jar:这是Ibatis Auto Generator(Ibator)的jar包,是一个代码生成工具,能够自动生成基于Ibatis的DAO层、实体类和XML配置文件,极大地提高了开发效率,降低了手动编写这些重复代码的工作量。...

    ibatis_struts2_spring_介绍

    ibatis_struts2_spring_介绍

    第一个ibatis3工程

    此外,iBatis3还提供了动态SQL的功能,使得在映射文件中可以编写条件语句,大大提高了SQL的可维护性。例如,可以使用`if`、`choose`、`when`、`otherwise`等标签来构建动态查询。 最后,运行工程并测试。通过JUnit...

    iBatis技术框架介绍

    iBatis技术框架介绍。ibatis2.x教程。

    iBATIS 3 内的新特性.pdf

    为了更好地理解iBATIS 3的新特性,我们首先需要了解其核心功能: 1. **持久化框架**:iBATIS 3是一个持久化框架,用于配置Java类的属性和RDBMS内的表列之间的映射。 2. **配置方式**:可以使用XML文件来配置iBATIS ...

    ibatis 3 核心包

    总的来说,Ibatis 3的核心包提供了完整的数据访问框架,包括配置管理、SQL执行、参数处理和结果转换等一系列功能,使得开发者可以方便地进行数据库操作,降低了数据访问层的复杂度,提升了开发效率。

    ibatis总结 ibatis ibatis ibatis ibatis

    1. Ibatis SQL映射: Ibatis的主要特点是通过XML或注解定义SQL映射文件,将SQL语句与Java对象绑定。例如,`&lt;select&gt;`标签用于定义查询语句,`&lt;insert&gt;`、`&lt;update&gt;`和`&lt;delete&gt;`分别对应增删改操作。在SQL映射文件...

    ibatis3应用实例(oracle数据库)

    Ibatis3与Oracle数据库的结合,既发挥了Oracle的强大数据库功能,又利用了Ibatis3的灵活性和易用性。通过深入理解并实践Ibatis3的动态SQL和CRUD操作,开发者可以在Oracle环境下构建高效、稳定的数据库应用系统。在...

    ibatis的增删改查功能

    总结,Ibatis以其简单易用、灵活高效的特性在Java开发中占据重要地位,其增删改查功能的实现让开发者能更加专注于业务逻辑,而不是繁琐的JDBC操作。对于初学者来说,深入理解Ibatis的CRUD操作及其相关配置,对提升...

    iBatis 3 用户指南

    在《iBatis 3 用户指南》中,不仅涵盖了上述基本概念和用法,还会详细介绍如何集成iBatis 3到Spring等其他框架中,以及如何处理复杂查询、事务管理和异常处理等问题。通过阅读这份指南,开发者可以全面掌握iBatis 3...

Global site tag (gtag.js) - Google Analytics