读书人

iBATIS 三 变动

发布时间: 2012-09-04 14:19:30 作者: rapoo

iBATIS 3 变动

?  iBATIS以其对SQL控制的灵活性而受到许多大型项目的青睐,它不像Hibernate那样是完全面向对象的,iBATIS是一个半自动化的O/R Mapping框架。今晚散逛到iBATIS的官网(http://ibatis.apache.org/),发现iBATIS 3已经到Beta 5阶段,应该说已经比较稳定了,于是Download了一个下来研究,早就听说iBATIS 3在相比iBATIS 2作了很大改动,看来不假,呵呵,废话少说,见下。

  首先是初始化的改变:

Reader reader = Resources.getResourceAsReader(CONFIG_FILE_PATH);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader, "development_oracle");SqlSession session = sqlSessionFactory.openSession();
?  iBATIS 2中的SqlMapClient被SqlSession所替代,?而iBATIS 2中的静态类SqlMapClientBuilder也被SqlSessionFactoryBuilder所替代,变为了非静态的,此外最重要的是iBATIS 3中需要使用openSession()方法来返回SqlSession的实例,至于上述代码中build方法的第二参数“development_oracle”是环境配置ID,稍候会讲到。

?

  下面来看Configuration文件。

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configuration   PUBLIC "-//ibatis.apache.org//DTD Config 3.0//EN" "http://ibatis.apache.org/dtd/ibatis-3-config.dtd"><configuration><properties resource="conf/database.properties" /><environments default="development"><environment id="development"><transactionManager type="JDBC" /><dataSource type="POOLED"><property name="driver" value="${database.driver}"/><property name="url" value="${database.url}"/><property name="username" value="${database.user}"/>a<property name="password" value="${database.password}"/></dataSource></environment><environment id="development_oracle"><transactionManager type="JDBC" /><dataSource type="POOLED"><property name="driver" value="${oracle.database.driver}"/><property name="url" value="${oracle.database.url}"/><property name="username" value="${oracle.database.user}"/><property name="password" value="${oracle.database.password}"/></dataSource></environment></environments><mappers><mapper resource="conf/NewsNotice.xml"/></mappers></configuration> 

???? database.properties内容:

database.driver = org.gjt.mm.mysql.Driverdatabase.url = jdbc:mysql://localhost:3306/testdatabase.user = rootdatabase.password = rootoracle.database.driver = oracle.jdbc.driver.OracleDriveroracle.database.url = jdbc:oracle:thin:@locahost:1521:ORCL2oracle.database.user = Testeroracle.database.password = password
?  本人觉得iBATIS 3配置文件最大的变化是增加了<environment/>标签,这样对于不同的环境可以配置不同的属性,无论从开发还是布署都显得非常方便。

  iBATIS 3提供了2种transactionManager类型,分别为JDBC和MANAGED,如果设定为MANAGED,则将整个Transaction的生命周期交由J2EE Container管理;至于JDBC就不用说了吧,这个地球人都晓得的:-D

  至于Datasource的类型,iBATIS 3提供了UNPOOLED、POOLED和JNDI三种方式,

读书人网 >编程

热点推荐