ibatis in SPRing
與Hibernate類似,ibatis也是一個ORM解決方案,不同的是兩者各有側(cè)重。
Hibernate提供了java對象到數(shù)據(jù)庫表之間的直接映射,開發(fā)者無需直接涉及數(shù)據(jù)庫
操作的實現(xiàn)細節(jié),實現(xiàn)了一站式的ORM解決方案。
而ibatis則采取了另一種方式,即提供Java對象到SQL(面向參數(shù)和結(jié)果集)的映射實
現(xiàn),實際的數(shù)據(jù)庫操作需要通過手動編寫SQL實現(xiàn)。
在Java ORM世界中,很幸運,我們擁有了這兩個互補的解決方案,從而使得開發(fā)過程
更加輕松自如。
關(guān)于兩者的對比,請參見筆者另一份文檔:
《ibatis開發(fā)指南》http://www.xiaxin.net/ibatis_Guide.rar
與Hibernate in Spring一節(jié)類似,這里我們重點探討Spring框架下的ibatis應(yīng)用,特
別是在容器事務(wù)治理模式下的ibatis應(yīng)用開發(fā)。
針對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節(jié)點
新聞熱點
疑難解答