ibatis in Spring(簡(jiǎn)單配置)
(實(shí)現(xiàn)Spring與ibaties的簡(jiǎn)單)
這里我們重點(diǎn)探討Spring框架下的ibatis應(yīng)用,特別是在容器事務(wù)管理模式下的ibatis應(yīng)用開(kāi)發(fā)。針對(duì)ibatis,Spring配置文件如下:
1、Ibatis-Context.xml:
(下面我將對(duì)本文檔進(jìn)行詳細(xì)說(shuō)明)
<?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" 這個(gè)節(jié)點(diǎn)不用介紹了
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>
這里的sqlMapClient節(jié)點(diǎn)實(shí)際上配置了一個(gè)sqlMapClient的創(chuàng)
建工廠類。 configLocation
屬性配置了ibatis映射文件的名稱。
<beanid="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation"> <value>SqlMapConfig.xml</value>
</property>
</bean>
transactionManager節(jié)點(diǎn), 這里我們的transactionManager配置與之前JDBC示例中相同,都采用了DataSourceTransactionManager
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactio
nManager">
<property name="dataSource"><ref
local="dataSource"/></property>
</bean>
userDAO節(jié)點(diǎn)
對(duì)應(yīng)的,UserDAO需要配置兩個(gè)屬性,sqlMapClient和DataSource,
sqlMapClient將從指定的DataSource中獲取數(shù)據(jù)庫(kù)連接。
<bean id="userDAO" class="net.xiaxin.dao.UserDAO">
<property name="dataSource">
<ref local="dataSource" />
</property>
<property name="sqlMapClient">
<ref local="sqlMapClient" />
</property>
</bean>
下面是事務(wù)管理
<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>
2、sqlMapConfig.xml:
<sqlMapConfig>
<sqlMap resource="net/xiaxin/dao/entity/user.xml"/>
</sqlMapConfig>
3、net/xiaxin/dao/entity/user .xml
<sqlMap namespace="User">
<typeAlias alias="user" type="net.xiaxin.dao.entity.User" />
<insert id="insertUser" parameterClass="user">
INSERT INTO users ( username, password) VALUES ( #username#,
#password# )
</insert>
</sqlMap>
4、UserDAO.java
public class UserDAO extends SqlMapClientDaoSupport implements
IUserDAO {
public void insertUser(User user) {
getSqlMapClientTemplate().update("insertUser", user);
}
}
5、User .java
public class User {
public Integer id;
public String username; public String password;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
扼要
6、測(cè)試代碼
InputStream is = new FileInputStream("Ibatis-Context.xml");
XmlBeanFactory factory = new XmlBeanFactory(is);
IUserDAO userdao = (IUserDAO)factory.getBean("userDAOProxy");
User user = new User();
user.setUsername("Sofia");
user.setPassword("mypass");
userdao.insertUser(user);
posted on 2009-03-24 13:26
重慶理工小子 閱讀(1168)
評(píng)論(0) 編輯 收藏 所屬分類:
Spring2