1.pom中添加mybatis 依赖jar
<!--mysql依赖-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
2.application.yml配置文件中配置数据源及mybatis配置
server:
port: 8020
spring:
application:
name: user-service
datasource:
driverClassName: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/cloud2020?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
username: root
password: password
mybatis: #mybatis相关配置
mapper-locations: classpath:mybatis/mapper/*.xml
config-location: classpath:mybatis/mybatis-config.xml
3.resources目录下mybatis文件夹下添加mybatis-config.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>
<setting name="callSettersOnNulls" value="true"/>
<!--所有映射器中配置的缓存的全局开关-->
<setting name="cacheEnabled" value="true"/>
<!--是否启用延迟加载的全局开关。-->
<setting name="lazyLoadingEnabled" value="true"/>
<!--当启用时,带有延迟加载属性的对象的加载与否完全取决于对任意延迟属性的调用;反之,每种属性将会按需加载。-->
<setting name="aggressiveLazyLoading" value="true"/>
<!--是否允许单一语句返回多结果集(需要兼容驱动)。-->
<setting name="multipleResultSetsEnabled" value="true"/>
<!--是否使用列标签代替列名-->
<setting name="useColumnLabel" value="true"/>
<!--是否允许 JDBC 支持自动生成主键-->
<setting name="useGeneratedKeys" value="false"/>
<!--
指定 MyBatis 是否以及如何自动映射指定的列到字段或属性。
NONE 表示取消自动映射;
PARTIAL 只会自动映射没有定义嵌套结果集映射的结果集。
FULL 会自动映射任意复杂的结果集(包括嵌套和其他情况)。
-->
<setting name="autoMappingBehavior" value="PARTIAL"/>
<!--
配置默认的执行器。
SIMPLE 就是普通的执行器;
REUSE 执行器会重用预处理语句(prepared statements);
BATCH 执行器将重用语句并执行批量更新
-->
<setting name="defaultExecutorType" value="SIMPLE"/>
<!--是否开启自动驼峰命名规则-->
<setting name="mapUnderscoreToCamelCase" value="true"/>
<!--MyBatis 利用本地缓存机制(Local Cache)防止循环引用(circular references)和加速重复嵌套查询。
默认值为 SESSION,这种情况下会缓存一个会话中执行的所有查询。
若设置值为 STATEMENT,本地会话仅用在语句执行上,对相同 SqlSession 的不同调用将不会共享数据。-->
<setting name="localCacheScope" value="SESSION"/>
<!--
当没有为参数提供特定的 JDBC 类型时,为空值指定 JDBC 类型。
某些驱动需要指定列的 JDBC 类型,多数情况直接用一般类型即可,
比如 NULL、VARCHAR 或 OTHER。-->
<setting name="jdbcTypeForNull" value="NULL"/>
<!-- 打印查询语句 -->
<setting name="logImpl" value="STDOUT_LOGGING" />
</settings>
<typeAliases>
<typeAlias alias="Integer" type="java.lang.Integer"/>
<typeAlias alias="Long" type="java.lang.Long"/>
<typeAlias alias="HashMap" type="java.util.HashMap"/>
<typeAlias alias="LinkedHashMap" type="java.util.LinkedHashMap"/>
<typeAlias alias="ArrayList" type="java.util.ArrayList"/>
<typeAlias alias="LinkedList" type="java.util.LinkedList"/>
</typeAliases>
</configuration>