Spring與Mybatis整合
阿新 • • 發佈:2017-05-28
base package div classpath conf data pac 是否 ner ⑵集中創建(為指定包下的所有Dao創建Mapper)
一 概述
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整合