springBoot整合MyBatis(传统方式:带xml配置文件)
程序员文章站
2022-07-15 10:24:04
...
springBoot整合MyBatis(传统方式:带xml配置文件)
本文使用了IDEA工具,使用了druid数据源,整合带*Mapper.xml的方式下面开始整合。
整合主要分四个步骤:
第一步: 引入依赖
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.9</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.0</version>
</dependency>
第二步:完成三层代码编写
Controller层: @RestController
Service层: @Service
Dao层: @Mapper
第三步: 配置
在application.properties属性配置文件中配置如下:
#配置druid数据源
spring.datasource.druid.username=root
spring.datasource.druid.password=123456
spring.datasource.druid.url=jdbc:mysql://127.0.0.1:3306/xxxx
spring.datasource.druid.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.druid.initial-size=5
#mybatis.config-location=classpath:mybatis.cfg.xml
#mybatis.mapper-locations=classpath:cn.xx.mapper/*.xml
#mybatis.type-aliases-package=classpath:cn.xx.entity
#控制台打印sql语句
logging.level.cn.hangzhou.mapper=debug
第四步: 添加扫描mapper接口
在springboot启动类上添加注解:
@MapperScan(“xxxx,mapper”)
总结:
-mapper接口和mapper配置文件在同一文件夹下面时,应保证mapper接口中的方法名称和mapper配置文件中的id名称保持一致。
- 本案例中mapper接口和mapper.xml文件在同一目录下,为了 src目录下的配置资源也能加载到classpath目录中,在pom文件的build标签上添加如下:
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
如果不添加上述配置,userMapper可以注入不到spring容器中,导致调用mapper方法报错!!!
- mapper.xml模板
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.XXXX.UserMapper">
<insert id="insert" useGeneratedKeys="true" keyProperty="id">
INSERT INTO user
(username,password,create_time,update_time)
VALUES
(#{username},#{password},#{create_time}.#{update_time})
</insert>
<select id="getAll" resultType="cn.XXXXX.User">
SELECT * FROM user
</select>
</mapper>
- 为了使mapper接口能够成功注入spring容器中,在springboot启动类添加如**解:
@SpringBootApplication
@MapperScan("cn.xxx.mapper")
public class SpringbootMybatis2Application {
public static void main(String[] args) {
SpringApplication.run(SpringbootMybatis2Application.class, args);
}
}
**其中mybatis主配置可配可不配,mybatis主配置文件模板如下:
<?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="lazyLoadingEnabled" value="true"/>
<!-- 将积极加载改为消息加载即按需加载 -->
<setting name="aggressiveLazyLoading" value="false"/>
<!--lazyLoadTriggerMethods默认情况下仅仅支持自动将equals,clone,hashCode,toString这几个方法定义为延迟加载的加载触发方法。-->
<setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode"/>
</settings>
</configuration>
推荐阅读
-
SpringBoot系列-整合Mybatis(XML配置方式)
-
springboot 整合Mybatis步骤(有mybatis核心配置文件mybatis-config.xml的形式)
-
springBoot整合MyBatis(传统方式:带xml配置文件)
-
SpringBoot系列-整合Mybatis(XML配置方式)
-
Springboot整合MyBatis(四:Mybatis的xml配配置文件,详细配置之类型别名(typeAliases))
-
Springboot整合MyBatis(六:Mybatis的xml配配置文件,详细配置之类对象工厂(objectFactory)查询是创建对象实例操作一下)