Spring 整合 MyBatis

學(xué)習(xí)完整課程請(qǐng)移步 互聯(lián)網(wǎng) Java 全棧工程師

本節(jié)視頻

POM

pom.xml 文件中增加 MyBatis 相關(guān)依賴:

<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.2.8</version>
</dependency>
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>
    <version>1.3.1</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>4.3.17.RELEASE</version>
</dependency>

主要增加了 3 個(gè)依賴,分別為 org.mybatis:mybatis若厚、org.mybatis:mybatis-spring枉阵、org.springframework:spring-jdbc

創(chuàng)建 MyBatis 配置文件

創(chuàng)建一個(gè)名為 mybatis-config.xml 的配置文件昧辽,內(nèi)容如下:

<?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>
    <!-- 全局參數(shù) -->
    <settings>
        <!-- 打印 SQL 語句 -->
        <setting name="logImpl" value="STDOUT_LOGGING" />
    
        <!-- 使全局的映射器啟用或禁用緩存米丘。 -->
        <setting name="cacheEnabled" value="false"/>

        <!-- 全局啟用或禁用延遲加載蚕甥。當(dāng)禁用時(shí),所有關(guān)聯(lián)對(duì)象都會(huì)即時(shí)加載炕舵。 -->
        <setting name="lazyLoadingEnabled" value="true"/>

        <!-- 當(dāng)啟用時(shí)何之,有延遲加載屬性的對(duì)象在被調(diào)用時(shí)將會(huì)完全加載任意屬性。否則咽筋,每種屬性將會(huì)按需要加載溶推。 -->
        <setting name="aggressiveLazyLoading" value="true"/>

        <!-- 是否允許單條 SQL 返回多個(gè)數(shù)據(jù)集 (取決于驅(qū)動(dòng)的兼容性) default:true -->
        <setting name="multipleResultSetsEnabled" value="true"/>

        <!-- 是否可以使用列的別名 (取決于驅(qū)動(dòng)的兼容性) default:true -->
        <setting name="useColumnLabel" value="true"/>

        <!-- 允許 JDBC 生成主鍵。需要驅(qū)動(dòng)器支持奸攻。如果設(shè)為了 true悼潭,這個(gè)設(shè)置將強(qiáng)制使用被生成的主鍵,有一些驅(qū)動(dòng)器不兼容不過仍然可以執(zhí)行舞箍。 default:false  -->
        <setting name="useGeneratedKeys" value="false"/>

        <!-- 指定 MyBatis 如何自動(dòng)映射 數(shù)據(jù)基表的列 NONE:不映射 PARTIAL:部分 FULL:全部  -->
        <setting name="autoMappingBehavior" value="PARTIAL"/>

        <!-- 這是默認(rèn)的執(zhí)行類型 (SIMPLE: 簡(jiǎn)單; REUSE: 執(zhí)行器可能重復(fù)使用prepared statements語句皆疹;BATCH: 執(zhí)行器可以重復(fù)執(zhí)行語句和批量更新) -->
        <setting name="defaultExecutorType" value="SIMPLE"/>

        <!-- 使用駝峰命名法轉(zhuǎn)換字段疏橄。 -->
        <setting name="mapUnderscoreToCamelCase" value="true"/>

        <!-- 設(shè)置本地緩存范圍 session:就會(huì)有數(shù)據(jù)的共享 statement:語句范圍 (這樣就不會(huì)有數(shù)據(jù)的共享 ) defalut:session -->
        <setting name="localCacheScope" value="SESSION"/>

        <!-- 設(shè)置 JDBC 類型為空時(shí),某些驅(qū)動(dòng)程序 要指定值, default:OTHER,插入空值時(shí)不需要指定類型 -->
        <setting name="jdbcTypeForNull" value="NULL"/>
    </settings>
</configuration>

Spring 集成 MyBatis

創(chuàng)建一個(gè)名為 spring-context-mybatis.xml 的 Spring 配置文件略就,內(nèi)容如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">

    <!-- 配置 SqlSession -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <!-- 用于配置對(duì)應(yīng)實(shí)體類所在的包捎迫,多個(gè) package 之間可以用 ',' 號(hào)分割 -->
        <property name="typeAliasesPackage" value="com.funtl.my.shop.domain"/>
        <!-- 用于配置對(duì)象關(guān)系映射配置文件所在目錄 -->
        <property name="mapperLocations" value="classpath:/mapper/**/*.xml"/>
        <property name="configLocation" value="classpath:/mybatis-config.xml"></property>
    </bean>

    <!-- 掃描 Mapper -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.funtl.my.shop.web.admin.dao" />
    </bean>
</beans>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市表牢,隨后出現(xiàn)的幾起案子窄绒,更是在濱河造成了極大的恐慌,老刑警劉巖崔兴,帶你破解...
    沈念sama閱讀 217,542評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件彰导,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡敲茄,警方通過查閱死者的電腦和手機(jī)位谋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來堰燎,“玉大人掏父,你說我怎么就攤上這事「鸭簦” “怎么了赊淑?”我有些...
    開封第一講書人閱讀 163,912評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵爵政,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我陶缺,道長(zhǎng)钾挟,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,449評(píng)論 1 293
  • 正文 為了忘掉前任组哩,我火速辦了婚禮等龙,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘伶贰。我一直安慰自己蛛砰,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評(píng)論 6 392
  • 文/花漫 我一把揭開白布黍衙。 她就那樣靜靜地躺著泥畅,像睡著了一般。 火紅的嫁衣襯著肌膚如雪琅翻。 梳的紋絲不亂的頭發(fā)上位仁,一...
    開封第一講書人閱讀 51,370評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音方椎,去河邊找鬼聂抢。 笑死,一個(gè)胖子當(dāng)著我的面吹牛棠众,可吹牛的內(nèi)容都是我干的琳疏。 我是一名探鬼主播,決...
    沈念sama閱讀 40,193評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼闸拿,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼空盼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起新荤,我...
    開封第一講書人閱讀 39,074評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤揽趾,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后苛骨,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體篱瞎,經(jīng)...
    沈念sama閱讀 45,505評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評(píng)論 3 335
  • 正文 我和宋清朗相戀三年痒芝,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了奔缠。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,841評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡吼野,死狀恐怖校哎,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤闷哆,帶...
    沈念sama閱讀 35,569評(píng)論 5 345
  • 正文 年R本政府宣布腰奋,位于F島的核電站,受9級(jí)特大地震影響抱怔,放射性物質(zhì)發(fā)生泄漏劣坊。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評(píng)論 3 328
  • 文/蒙蒙 一屈留、第九天 我趴在偏房一處隱蔽的房頂上張望局冰。 院中可真熱鬧,春花似錦灌危、人聲如沸康二。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽沫勿。三九已至,卻和暖如春味混,著一層夾襖步出監(jiān)牢的瞬間产雹,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工翁锡, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蔓挖,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,962評(píng)論 2 370
  • 正文 我出身青樓馆衔,卻偏偏與公主長(zhǎng)得像时甚,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子哈踱,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容