Springboot整合mybatis
在 Spring+SpringMVC 中整合 MyBatis 步骤需要在配置文件里配置多个 Bean,比如MapperScannerConfigurer,SqlSessionFactoryBean 等,步骤还是比较复杂的,Spring Boot 中对此做了进一步的简化,使 MyBatis 基本上可以做到开箱即用,本章来学习怎么在 Spring Boot 中整合Mybatis,也就是搭建SSM环境 。
Spring Boot中整合mybatis,主要有两种方式。
方式1:xml文件
方式2:注解方式
一 方式1 使用XML方式整合Mybatis
使用Xml方式也就是将Sql语句写在**Mapper.xml文件中
1.先用idea创建一个添加mybatis需要的相关依赖的工程。
创建出来的项目结构如下:
2.准备数据库和表
3.创建表映射类
之前创建表映射类时,我们是手动添加set,get,toString方法和构造方法等,比如像这样
现在,我们可以添加一个Lombok 依赖来简化这些代码
Lombok 是一种 Java 实用工具,可用来帮助开发人员消除 Java 的冗长,尤其是对于简单的 Java 对象(POJO)。它通过注释实现这一目的。通过在开发环境中实现 Lombok,开发人员可以节省构建诸如 hashCode()和equals() 这样的方法以及以往用来分类各种 accessor 和 mutator 的大量时间。
<!--简化bean代码-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
添加需要的注解,通过注解来实现自动帮我们加入get,set,构造方法等。
@Data /* 生成getter,setter ,toString等函数*/
@NoArgsConstructor /*生成无参构造函数*/
@AllArgsConstructor /*生成有参构造函数*/
package com.test.ssm.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data /* 生成getter,setter ,toString等函数*/
@NoArgsConstructor /*生成无参构造函数*/
@AllArgsConstructor /*生成有参构造函数*/
public class Users {
private int id;
private String uname;
private String pwd;
}
4.创建mapper文件
4.1创建UsersMapper.xml文件,并添加sql语句
<?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="com.test.ssm.mapper.UsersMapper">
<select id="getAllUsers" resultType="Users">
SELECT * FROM users
</select>
</mapper>
4.2 创建mapper对应的代理接口
5.创建Service层和Service的实现层
6.创建控制层(也就是web层)
7.添加配置信息
7.1添加数据库链接信息和设置mybatis中的别名信息
#数据源配置
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.url=jdbc:mysql://localhost:3306/boot?characterEncoding=utf8&serverTimezone=GMT%2B8
#mybatis配置
mybatis.type-aliases-package=com.test.ssm.pojo
7.2在应用程序入口类上配置@MapperScan扫描mapper接口文件所在包!
@MapperScan(basePackages = "com.test.ssm.mapper")
7.3 在pom.xml文件中添加识别java目录下xml文件的配置
这是Maven 带来的问题,就是 java 目录下的 xml 资源在项目打包时会被忽略掉,所以,如果 UsersMapper.xml 放在Java目录下,需要在 pom.xml 文件中再添加如下配置,避免打包时 java 目录下的 XML 文件被自动忽略掉:
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
8.运行
二 方式2 使用注解方式整合Mybatis
方式2和方式1相比,主要是mapper文件的区别,所以除了第4和第7步有点不一样以外,其它步骤相同。
1.先用idea创建一个添加mybatis需要的相关依赖的工程。
创建出来的项目结构如下:
2.准备数据库和表
3.创建表映射类
之前创建表映射类时,我们是手动添加set,get,toString方法和构造方法等,比如像这样
现在,我们可以添加一个Lombok 依赖来简化这些代码
Lombok 是一种 Java 实用工具,可用来帮助开发人员消除 Java 的冗长,尤其是对于简单的 Java 对象(POJO)。它通过注释实现这一目的。通过在开发环境中实现 Lombok,开发人员可以节省构建诸如 hashCode()和equals() 这样的方法以及以往用来分类各种 accessor 和 mutator 的大量时间。
添加需要的注解,通过注解来实现自动帮我们加入get,set,构造方法等。
@Data /* 生成getter,setter ,toString等函数*/
@NoArgsConstructor /*生成无参构造函数*/
@AllArgsConstructor /*生成有参构造函数*/
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Gucvji3j-1669985359061)(pic/f12.png)]
4.创建mapper代理接口
不需要创建UsersMapper.xml文件,只需要创建UsersMapper接口就可以,将之前xml文件中的sql语句通过注解的方式写到接口中。
5.创建Service层和Service的实现层
6.创建控制层(也就是web层)
7.添加配置信息
7.1添加数据库链接信息和设置mybatis中的别名信息
#数据源配置
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.url=jdbc:mysql://localhost:3306/boot?characterEncoding=utf8&serverTimezone=GMT%2B8
#mybatis配置
mybatis.type-aliases-package=com.test.ssm.pojo
7.2在应用程序入口类上配置@MapperScan扫描mapper接口文件所在包!
8.运行
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YiuIdGw6-16