mybatisとspring 3.1が統合されています.

4030 ワード

spring 3のリリース時にmybatisはまだ正式版が出ていないので、springは最新のmybatisを統合していませんでしたが、コミュニティは中間部品を開発しました.
 
必要なjarバッグ
mybatis-3.0.6.jar
mybatis-spring-1.0.22.jar
 
ポイント:
1.スプリングにmybatis工場類を配置する
2.dao層でspring注入のツールbeanを使ってデータを操作する
統合時には、4つの方法でmybatisを使ってデータ処理ができます.
 
springに必要な配置.
springのプロファイルには以下の内容が含まれています.
 
<!-- MyBatis   -->
	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="c3p0DataSource" />
		<property name="configLocation" value="/WEB-INF/config/db/MyBatisConfiguration.xml" />
		<property name="mapperLocations" value="/WEB-INF/config/db/*Mapper.xml" />
		<property name="typeAliasesPackage" value="${mybatis.alias.basepackage}" />
	</bean>
 
1.Sql Session FactoryBen(必須)
   中間部品に必要な処理類です.
 
2.dataSource  (必須)
   springにおけるデータソース参照
 
3.config Location  (オプション)
   Mybatis自身のプロファイルは、別名を宣言するのに一般的です.
 
4.mapperLocation  (オプション)
   mybatisのマッピングファイル
 
5.type Aliases Package(オプション)
   マッピングクラスのパケットパスは、このような方法を使用すると、configLocation中に宣言する必要はありません.
 
 
 
mybatisを使ってデータ処理を行う4つの方法(Sql Session Template/Sql Session DaoSupport/Mapper FactoryBen/MapperScanner Configrer)
異なった方式の特徴
  • Sql Session Template  これは配置ファイルを書く必要があります.実現クラスにsqlsessionを注入し、sqlsessionを使用すると、微細粒子制御
  • です.
  • Sql Session DaoSupport   これは、実現クラスに特殊クラスを継承するだけで、sqlsession
  • を使用することができます.
  • Mapper FactoryBen  これは配置ファイルを書きます.対応するすべてのインターフェースを配置ファイルに引用すればいいです.
  • Mapper Scanner Configrer  これは配置ファイルを書きたいです.インタフェースのあるカバンを与えさえすれば、自動的にカバンの中のインターフェースを導入します.
  • Sql Session Template
  • 構成ファイルを新たな配合
    <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
      <constructor-arg index="0" ref="sqlSessionFactory" />
      <constructor-arg index="1" value="BATCH" /><!---                   ->
    </bean>
    に追加する. 
  • 注入sqlsession()
    @Reasource //  spring3     
    private SqlSession sqlSession;
     
  • は、sqlsessionを用いて動作する
    public User getUser(String userId) {
        return (User) sqlSession.selectOne("org.mybatis.spring.sample.mapper.UserMapper.getUser", userId);
      }
  • .
  • Sql Session DaoSupport(Sql Session Factoryはspringに自動的に組み立てられ、手動注入は不要)
  • Sql Session DaoSupport類を継承する
    public class UserDaoImpl extends SqlSessionDaoSupport implements UserDao {
    
    }
     
  • .get Sql Session()方法を用いてsql Sessionを取り、データ処理
    public User getUser(String userId) {
        return (User) getSqlSession().selectOne("org.mybatis.spring.sample.mapper.UserMapper.getUser", userId);
      }
    を行う. 
  • Mapper FactoryBen
  • は、各DAOインターフェース
    <bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
      <property name="mapperInterface" value="org.mybatis.spring.sample.mapper.UserMapper" />
      <property name="sqlSessionFactory" ref="sqlSessionFactory" />
    </bean>
    を導入する構成ファイルを書き込みます. 
  • は、業務層にdaoのインターフェースを直接注入して動作することができる
  • .
  • Mapper Scanner Configrer
  • は構成ファイルを書き込み、構成パケット名は自動的にパケット中のすべてのインターフェース
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
      <property name="basePackage" value="org.mybatis.spring.sample.mapper" />
    </bean>
    に導入される. 
  • は、業務層にDAOインターフェースを直接注入して動作することができ、注入時に使用されるのはインターフェース名であり、頭文字小文字
  • である.
  • 注意:他の実装クラスがある場合、その名前がインターフェース名であり、イニシャル小文字であれば、起動時に衝突エラーが発生することがあります.