需求缘起:
在一节视频中,有这么一段留言:“会不会推出SpringBoot整合Mybaits配置文件sqlMapConfig.xml搭配mapper.xml的视频呢??? 看到有这个整合直接付款来看,结果是急速开发模式,sql都写在类中了,想看配置方式的 大神出一个吧。”粉丝需求,那才是真的需求。好吧,废话太多,不好,不好,还是赶紧进入正题。
本节大纲:
(1)MyBatis介绍
(2)配置思路
(3)新建project以及添加依赖包
(4)创建启动类App.java
(5)编写实体类Demo
(6)编写application配置文件,指定xml路径
(7)编写映射接口DemoMapper和XML
(8)编写service类DemoService
(9)编写控制类DemoController
(10)测试
接下来看看本节的内容:
(1)MyBatis介绍
来源:MyBatis 本是apache的一个开源项目iBatis,2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。
介绍:MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(PlainOrdinary Java Objects,普通的 Java对象)映射成数据库中的记录。
(2)配置思路
在Spring Boot中使用xml集成MyBatis的话,那么核心的文件就是实体类和SQL的映射类,比如DemoMapper,在此类当中就是普通的接口即可,那么对应SQL配置文件在Demo.xml中,那么要怎么能够识别到DemoMapper类呢,使用@MapperScan();在Demo.xml中使用<mapper> 的 namespace属性进行指定指定xml文件和mapper的对应关系,那么现在的问题就是如何识别到Demo.xml配置文件呢,这个就很简单了,在application.properties文件中配置mapper的位置即可,形如:mybatis.mapper-locations=classpath:mybatis/mapper/*.xml。
根据以上的思路,那我们编码大概的思路就是:
(a)编写实体类Demo;
(b)编写配置文件Demo.xml,主要是SQL;
(c)编写DemoMapper和Demo是对应的,在Service层就可以调用DemoMapper;
(d)在application.properties文件中配置Demo.xml文件的路径;
(3)新建project以及添加依赖包
新建project,取名为spring-boot-mybatis-xml,在pom.xml文件添加相关依赖包:
(4)创建启动类App.java
编写启动类,注意,添加了@MapperScan("com.kfit.*.mapper"),扫描mapper接口:
(5)编写实体类Demo
编写Demo类,主要属性id,name:
(6)编写application配置文件,指定xml路径
########################################################
###datasource -- mysql的数据库配置.
########################################################
spring.datasource.url =jdbc:mysql://localhost:3306/test
spring.datasource.username = root
spring.datasource.password = root
spring.datasource.driverClassName =com.mysql.jdbc.Driver
spring.datasource.max-active=20
spring.datasource.max-idle=8
spring.datasource.min-idle=8
spring.datasource.initial-size=10
########################################################
###mybatis配置.
########################################################
mybatis.mapper-locations=classpath:com/kfit/*/mapper/*.xml
在这里重要的配置是:mybatis.mapper-locations=classpath:com/kfit/*/mapper/*.xml
(7)编写映射接口DemoMapper和xml文件
编写XML文件,Demo.xml:
编写DemoMapper接口:
(8)编写service类DemoService
(9)编写控制类DemoController
(10)测试
启动,访问地址:http://127.0.0.1:8080/save
在浏览器可以看到:
{
id: 0,
name: "张三"
}