spring整合使用持久層框架mybatis(二)

spring中整合使用mybatis的用法總結

一:在Spring配置Mybatis

第一步:將mybatis-spring類包添加 到項目的類庫中

第二步:編寫spring和持久層銜接的xml文件,這裏起名爲spring-dao.xml

<!-- 3:配置SqlSessionFactory對象 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><!-- 注入數據庫連接池 -->
    <property name="dataSource" ref="dataSource"/>  
    <!-- 配置MyBatis全局配置文件:mybatis-config.xml -->
    <property name="configLocation" value="classpath:mybatis-config.xml"/><!-- 掃描entity包 使用別名 -->
    <property name="typeAliasesPackage" value=""/>
    <!-- 掃描sql配置文件:mapper需要的xml文件 -->
    <property name="mapperLocations" value="classpath:mapper/*.xml"/></bean>

mybatis-spring 類包提供了SqlSessionFactoryBean,以便通過Spring風格創建mybatis的SqlSessionFactory,如①所示。只需要注入數據源並指定mybatis的總配置文件就可以了,如②所示。 mapperLocations屬性支持掃描式加載sql映射文件。

二:編寫myBatis中的dao

第一種方法:使用SqlSessionTemplate模板類

mybatis-spring效仿spring的風格提供了一個模板類SqlSessionTemplate,可以通過模板類輕鬆訪問數據庫
但是這種方法使用字符串指定映射項,容易引起錯誤,因爲字符串本身沒有語義性,如果存在編寫錯誤,編譯器無法識別,只能在運行期發現。

第二種方法:使用映射接口

接口的名稱和映射命名空間相同,接口方法和映射基的id相同

第一步:在spring-dao.xml中添加配置

<!-- 4:配置掃描Dao接口包,動態實現Dao接口,注入到spring容器中-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <!-- 注入sqlSessionFactory -->
    <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
    <!-- 給出需要掃描Dao接口包 -->
    <property name="basePackage" value=""/>
</bean>

MapperScannerConfigurer將掃描basePackage所指定的包下的所有的接口類(包括子包),如果它們在sql映射文件中定義過,則將它們動態定義爲Spring Bean,這樣我們就可以在Service中直接注入映射接口的bean了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章