Spring全体Ibatis Sql MapClient DaoSupport
13181 ワード
ブログの転載Spring全体Ibatis Sql MapClient Dao Support
ブログを参照してください.iBaitsのSql MapClient Templateの使用について詳しく説明してください.
SpringはDAOモードにより、iBATISへの良好なサポートを提供しています.Sql MapClientオブジェクトはiBATISの主要なオブジェクトであり、Sql MapClientオブジェクトの作成をspringに管理させて、iBatisとSpringを統合することができます.
hibernateと同様に、SpringはSql MapClient DaoSupportオブジェクトを提供しています.私たちのDAOはこのクラスを継承して、Sql MapClient Templateオブジェクトを通じてデータベースを操作します.これらの概念はすべてヒベルナと似ているように見えます.
ブログを参照してください.iBaitsのSql MapClient Templateの使用について詳しく説明してください.
SpringはDAOモードにより、iBATISへの良好なサポートを提供しています.Sql MapClientオブジェクトはiBATISの主要なオブジェクトであり、Sql MapClientオブジェクトの作成をspringに管理させて、iBatisとSpringを統合することができます.
hibernateと同様に、SpringはSql MapClient DaoSupportオブジェクトを提供しています.私たちのDAOはこのクラスを継承して、Sql MapClient Templateオブジェクトを通じてデータベースを操作します.これらの概念はすべてヒベルナと似ているように見えます.
SqlMapClientTemplate CRUD .
。Spring 。
hibernate , iBATIS ? iBatis Spring ?
第一に、我々は、これらの方法に声明的な事務処理の能力を追加するために、springがAOPでブロッキングする方法の呼び出しを理解する必要があります.一般的な構成は以下の通りです.
<tx:advice id="txAdvice" transaction-manager=" ">
<tx:attributes>
<tx:method name="add*" propagation="REQUIRED"/>
<tx:method name="del*" propagation="REQUIRED"/>
<tx:method name="update*" propagation="REQUIRED"/>
<tx:method name="*" read-only="true"/>
tx:attributes>
tx:advice>
<aop:config>
<aop:pointcut id="allManagerMethod" expression="execution(* com.ibatis.manager.*.*(..))"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="allManagerMethod"/>
aop:config>
。 , , , iBatis Spring 。
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
bean>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://127.0.0.1/ibatis"/>
<property name="username" value="root"/>
<property name="password" value="mysql"/>
bean>
, spring SqlMapClient , iBatis Spring
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation"><value>classpath:sqlMapConfig.xmlvalue>property>
bean>
sqlMapConfig.xml :
<sqlMapConfig>
<settings
lazyLoadingEnabled="true"
useStatementNamespaces="true" />
<sqlMap resource="com/ibatis/dao/impl/ibatis/User.xml"/>
sqlMapConfig>
User.xml:
<sqlMap namespace="User">
<typeAlias alias="User" type="com.ibatis.User"/>
<select id="selectAllUsers" resultClass="User">
select * from t_user
select>
<select id="selectUser" resultClass="User" parameterClass="int">
select * from t_user where id=#id#
select>
<insert id="insertUser" parameterClass="User">
insert into t_user values (
null,#username#,#password#
)
insert>
<update id="updateUser" parameterClass="User">
update t_user set username = #username#,password=#password#
where id=#id#
update>
<delete id="deleteUser" parameterClass="int">
delete from t_user where id=#id#
delete>
sqlMap>
```
DAO :
package com.iabtis.dao.impl.ibatis;
import java.util.List;
import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
import com.ibatis.dao.UserDAO;
import com.ibatis.crm.model.User;
public class UserDAOImpl extends SqlMapClientDaoSupport implements UserDAO {
public void select(User user) {
getSqlMapClientTemplate().delete("selectUser ",user.getId());
}
public List findAll() {
return getSqlMapClientTemplate().queryForList("selectAllUsers ");
}
public void delete(User user) {
getSqlMapClientTemplate().delete("deleteUser ",user.getId());
}
public void save(User user) {
getSqlMapClientTemplate().insert("insertUser ",user);
}
public void update(User user) {
getSqlMapClientTemplate().update("updateUser ",user);
}
}
Sql MapClient DaoSupportを継承し、Sql MapClientオブジェクトの注入を要求します.そのため、次のようなDAO構成が必要です.これはiBatisとSpringを統合する最後のステップです.<bean id="userDAO" class="com.ibatils.dao.impl.ibatis.UserDAOImpl">
<property name=”sqlMapClient” ref=”sqlMapClient”/>
bean>
これは注意すべき問題です.これからは業務ロジック層でDAOオブジェクトを呼び出すことができます.