MyBatis-Spring集成的理解
首先我自己簡單介紹一下mybatis
mybatis是在配置中寫SQL,用對象映射
mybatis看做是是數據持久層的框架,它主要是對數據庫和對象的關系進行操作
再說下:
mybatis和hibernate的最大區別在于,自己寫SQL,而hibernate自動映射SQL,mybatis更加靈活,更適用于二次開發,如果要涉及較多的數據庫結構的修改的話,hibernate更加有優勢些
現在開始集成MyBatis-Spring
(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"
";
<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集成的比較
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!