學(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>