龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > JAVA开发 >

Spring+ibatis 数据化持久层(转)

时间:2009-12-23 15:42来源:未知 作者:admin 点击:
分享到:
ibatis in Spring 与Hibernate类似,ibatis也是一个ORM解决方案,不同的是两者各有侧重。 Hibernate提供了Java对象到数据库表之间的直接映射,开发者无需直接涉及数据库 操作的实现细节,实现

ibatis in Spring
  与Hibernate类似,ibatis也是一个ORM解决方案,不同的是两者各有侧重。
  Hibernate提供了Java对象到数据库表之间的直接映射,开发者无需直接涉及数据库
  操作的实现细节,实现了一站式的ORM解决方案。
  而ibatis则采取了另一种方式,即提供Java对象到SQL(面向参数和结果集)的映射实
  现,实际的数据库操作需要通过手动编写SQL实现。
  在Java ORM世界中,很幸运,我们拥有了这两个互补的解决方案,从而使得开发过程
  更加轻松自如。
  关于两者的对比,请参见笔者另一份文档:
  《ibatis开发指南》http://www.xiaxin.net/ibatis_Guide.rar
  与Hibernate in Spring一节类似,这里我们重点探讨Spring框架下的ibatis应用,特
  别是在容器事务治理模式下的ibatis应用开发。
  针对ibatis,Spring配置文件如下:
  Ibatis-Context.XML:
  <?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
  "http://www.springframework.org/dtd/spring-beans.dtd">
  <beans>
  <bean id="dataSource"
  class="org.apache.commons.dbcp.BasicDataSource"
  destroy-method="close">
  <property name="driverClassName">
  <value>net.sourceforge.jtds.jdbc.Driver</value>
  </property>
  <property name="url">
  <value>jdbc:jtds:sqlserver://127.0.0.1:1433/Sample</value>
  </property>
  <property name="username">
  <value>test</value>
  </property>
  <property name="passWord">
  <value>changeit</value>
  </property>
  </bean>
  <bean id="sqlMapClient"
  class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
  SpringFrameWork Developer’s Guide Version 0.6
  October 8, 2004 So many open source projects. Why not Open your Documents?
  <property name="configLocation">
  <value>SqlMapConfig.xml</value>
  </property>
  </bean>
  <bean id="transactionManager"
  class="org.springframework.jdbc.datasource.DataSourceTransactio
  nManager">
  <property name="dataSource"><ref
  local="dataSource"/></property>
  </bean>
  <bean id="userDAO" class="net.xiaxin.dao.UserDAO">
  <property name="dataSource">
  <ref local="dataSource" />
  </property>
  <property name="sqlMapClient">
  <ref local="sqlMapClient" />
  </property>
  </bean>
  <bean id="userDAOProxy"
  class="org.springframework.transaction.interceptor.TransactionPro
  xyFactoryBean">
  <property name="transactionManager">
  <ref bean="transactionManager" />
  </property>
  <property name="target">
  <ref local="userDAO" />
  </property>
  <property name="transactionAttributes">
  <props>
  <prop key="insert*">PROPAGATION_REQUIRED</prop>
  <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
  </props>
  </property>
  </bean>
  </beans>
  对比之前的JDBC和Hibernate配置,可以看到:
  1. sqlMapClient节点
  
  

精彩图集

赞助商链接