Spring-mybatisの統合
5064 ワード
Springはソフトウェア業界の春と言えます.Spring-mybatisを統合することによって、Springの強さを実感しました.
統合バージョン1:
Springプロファイル:
この中でSpringが生成したオブジェクトsql Session Templateは、興味のある学生がソースコードで構成sql Session Templateを確認できます.
統合バージョン2:
注意:mybatis-spring-1.2.3.jarを導入して拭きます.データソースの設定-->
どうやって実現しますか?
統合バージョン1:
Springプロファイル:
<!-- -->
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/test"></property>
<property name="username" value="root"></property>
<property name="password" value="a"></property>
</bean>
<!-- -->
<bean id="txManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<tx:method name="select*" propagation="REQUIRED" />
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut id="pointcut"
expression="execution(* com.lsw.spring4_mybatis.dao.*.*(..))" />
<aop:advisor advice-ref="txAdvice" pointcut-ref="pointcut" />
</aop:config>
<!-- sqlSession -->
<bean id="sqlSessionFatory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="configLocation" value="classpath:mybatis-config.xml"></property>
</bean>
<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFatory"></constructor-arg>
</bean>
<bean id="userDao" class="com.lsw.spring4_mybatis.dao.impl.UserDaoImpl">
<property name="sqlSession" ref="sqlSessionTemplate"></property>
</bean>
その中で私もケースに加えた声明式事務は、多くのところで利用できます.例えば、転送、前の操作が失敗しました.次の操作は行わないべきです.操作はロールバックして、Springはすでに私達のために用意されています.配置ファイルに配置すればいいです.この中でSpringが生成したオブジェクトsql Session Templateは、興味のある学生がソースコードで構成sql Session Templateを確認できます.
統合バージョン2:
注意:mybatis-spring-1.2.3.jarを導入して拭きます.データソースの設定-->
<!-- -->
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/test"></property>
<property name="username" value="root"></property>
<property name="password" value="a"></property>
</bean>
<!-- -->
<bean id="txManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<!-- -->
<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<tx:method name="select*" propagation="REQUIRED" />
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut id="pointcut"
expression="execution(* com.lsw.spring4_mybatis.dao.*.*(..))" />
<aop:advisor advice-ref="txAdvice" pointcut-ref="pointcut" />
</aop:config>
<!-- sqlSession -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="configLocation" value="classpath:mybatis-config.xml"></property>
</bean>
<bean id="userDao" class="com.lsw.spring4_mybatis.dao.impl.UserDaoImpl">
<property name="sqlSessionFactory" ref="sqlSessionFactory"></property>
</bean>
その中で、beanオブジェクトの作成を省略しました(sql Session Template)どうやって実現しますか?
public class UserDaoImpl extends SqlSessionDaoSupport implements UserDao{
@Override
public List<User> selectUser() {
return this.getSqlSession().selectList("com.lsw.spring4_mybatis.bean.User.selectUser");
}
}
はSql Session DaoSupport類を継承しています.Sql Session DaoSupport類にはset Sql Session Factoryの方法があります.また、最下階もsql Session Templateを統合して実現しました.この方法はコードを簡略化した.