MyBatis-Spring集成的理解

首先我本身簡單介紹一下mybatisspring

mybatis是在配置中寫SQL,用對象映射
mybatis看作是是數據持久層的框架,它主要是對數據庫和對象的關係進行操做sql

再說下:
mybatis和hibernate的最大區別在於,本身寫SQL,而hibernate自動映射SQL,mybatis更加靈活,更適用於二次開發,若是要涉及較多的數據庫結構的修改的話,hibernate更加有優點些數據庫

如今開始集成MyBatis-Springmybatis

(1)要使用MyBatis-Spring的模塊的,首先要下載mybatis-spring.jar包,導入Mybatis相關的包。而且在Maven中pom.xml加入加入依賴關係
(2)在spring框架的應用上下文配置文件applicationContext.xml中定義SqlSessionFactory和至少一個數據映射類


以下在MyBatis-Spring中,SqlSessionFactorBean 用於建立SqlSessionFactory
這是個人項目配置:


 <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        
        <property name="dataSource" ref="dataSource"/>
        <property name="configLocation" value="classpath:mybatis/mybatis-config.xml"/>
        <!-- mapper和resultmap配置路徑 -->
        <property name="mapperLocations">
            <list>
               
                <value>classpath:com/xmoney/**/*-oracle-mapper.xml</value>
            </list>
        </property>
    </bean>


其中數據源dataSource能夠是任何的數據庫,屬性configLocation用來指定Mybatis的XML文件配置的路徑
屬性mapperLocations中list用來指定mybatis的XML的映射文件,好比項目中每一個模塊的xml(用來操做數據庫的Sql語句)
(3)MyBatis的自動配置

沒有必要爲Spring的全部的XML文件註冊全部的映射器,能夠使用MapperScannerConfigurer,它將查找類路徑下的映射器,而且將他們自動建立成MapperFactoryBeans


這是在applicationContext.xml中的配置:

 <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.xmoney"/>
        <property name="markerInterface" value="com.xmoney.manage.entity.Mapper"/>
    </bean>
其中屬性basePackage會讓接口文件映射問基本包路徑


這裏要注意一點:若是你使用了一個以上的DataSource,也就是多個SqlSessionFactory,那麼自動裝配就會不起做用
此時能夠將sqlSessionFactory換成sqlSessionFactoryBeanName或者sqlSessionTemplateBeanName


屬性markerInterface指定要尋找的父接口


其中MyBatis的配置XML 以下


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
    PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-config.dtd">


<configuration>
<settings>
<!-- changes from the defaults -->
<setting name="lazyLoadingEnabled" value="false" />
</settings>
<typeAliases>
   <typeAlias alias="Hnyhb" type="com.xmoney.manage.entity.Hnyhb" />
   <typeAlias alias="Page" type="com.xmoney.manage.entity.Page" />
</typeAliases>


</configuration>


這裏有兩個配置,一個是LazyLoadingEnable,設爲false,讓Mybatis禁止Lazy加載
在TypeAliases,這是一個別名,之因此要別名,是爲了在Mapper映射的時候方便使用


以上是我對Mybatis和spring集成的配置,以及和hibernate與spring集成的比較oracle

後續有不少開發填坑的文章發佈,若是對你有幫助,請支持和加關注一下app

http://e22a.com/h.05ApkG?cv=AAKHZXVo&sm=339944框架

https://shop119727980.taobao.com/?spm=0.0.0.0 spa

相關文章
相關標籤/搜索