mybatis與spring3.1整合

spring的配置文件中加入如下內容java

<!-- 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.SqlSessionFactoryBean (必需)spring

  就是中間件所需的處理類sql


2.dataSource  (必需)session

  spring中數據源引用mybatis


3.configLocation  (可選)app

  Mybatis自身的配置文件,通常用來聲明別名ide


4.mapperLocation  (可選)xml

  mybatis的映射文件中間件


5.typeAliasesPackage (可選)繼承

  要映射類的包路徑,若是使用了這種方式,則configLocation中沒必要再進行聲明




使用mybatis進行數據處理的四種方式(SqlSessionTemplate/SqlSessionDaoSupport/MapperFactoryBean/MapperScannerConfigurer)

不一樣方式的特色

  1. SqlSessionTemplate  這個須要寫配置文件,在實現類中注入sqlsession,再使用sqlsession,是細顆粒控制

  2. SqlSessionDaoSupport   這個只須要在實現類中繼承特殊類就能夠使用sqlsession

  3. MapperFactoryBean  這個要寫配置文件,把對應的全部接口在配置文件中引用便可,無需寫實現類

  4. MapperScannerConfigurer  這個要寫配置文件,只要給出接口所在的包便可,會自動把包中的接口引入,無需寫實現類

  • SqlSessionTemplate

  1. 配置文件加入新配

<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactory" />
 <constructor-arg index="1" value="BATCH" /><!--- 若是想要進行批量操做可加入這個屬性 ->
</bean>

2 注入sqlsession()

@Reasource //使用spring3的註解注入
private SqlSession sqlSession;

3 使用sqlsession來進行操作

public User getUser(String userId) {
    return (User) sqlSession.selectOne("org.mybatis.spring.sample.mapper.UserMapper.getUser", userId);
  }
  • SqlSessionDaoSupport(sqlSessionFactory會被spring自動裝配,不須要手動注入)



  1. 繼承SqlSessionDaoSupport類


public class UserDaoImpl extends SqlSessionDaoSupport implements UserDao {
}


 2 使用getSqlSession()方法取sqlSession來進行數據處理

public User getUser(String userId) { 
    return (User) getSqlSession().selectOne("org.mybatis.spring.sample.mapper.UserMapper.getUser", userId); 
  } 
  • MapperFactoryBean

  1. 寫配置文件,引入每一個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> 


2. 在業務層可直接注入dao的接口進行操做


  • MapperScannerConfigurer

  1. 寫配置文件,配置包名將自動引入包中的全部接口

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> 
  <property name="basePackage" value="org.mybatis.spring.sample.mapper" /> 
</bean> 

在業務層可直接注入DAO接口操做,注入時使用的是接口名,其首字母小寫

注意:若是有別的實現類,其提供的名稱若是是接口名,且首字母小寫,則會在啓動時出現衝突錯誤

相關文章
相關標籤/搜索