1. 程式人生 > >Spring與Mybatis整合

Spring與Mybatis整合

base package div classpath conf data pac 是否 ner

一 概述

1.整合的目的

將Mapper映射器的創建任務交給Spring容器。

二 具體實現

1.創建sqlSessionFactory:

<bean id="sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryBean">
       <property name="dataSource"ref="c3p0" />
       <property name="configLocation"value="classpath:MybatisConfiguration.xml" />
</
bean>

2.創建Mapper:

⑴分散創建(逐個為Dao創建Mapper)

<bean id="dao"class="org.mybatis.spring.mapper.MapperFactoryBean">
       <property name="mapperInterface"value="com.spring_mybatis.dao.IStudentDao" />
       <property name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean>

⑵集中創建(為指定包下的所有Dao創建Mapper)

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage"value="com.spring_mybatis.dao;xxxxxxxxxxx" />
</bean>

①條件:

條件一:如果映射文件采用掃描包的方式加載,那麽映射文件名必須為Dao的簡單類名,與Dao位於同一包中。采用路徑加載,映射文件名沒有特殊要求。

條件二:MapperScannerConfigurer根據類別自動加載sqlSessionFactory,如果存在多個,可以通過名稱指定:

<property name="sqlSessionFactoryName"value="sqlSessionFactory"/>

②Mapper的id:

Dao的簡單類名前兩個字母均大寫:id為簡單類名,比如IStudentDao對應的Mapper的id為IStudentDao。

Dao的簡單類名第一個字母大寫,第二個字母小寫開頭:id為首字母小寫後的簡單類名,比如StudentDao

對應的Mapper的id為studentDao。

生成Mapper id的過程:

首先取簡單類名,首字母小寫,接著判斷第二個字符是否大寫,如果大寫,id采用簡單類名,小寫則采用簡單類名首字母小寫後的形式。

Spring與Mybatis整合