springboot整合mybatisplus的方法详解

下面我将介绍Spring Boot整合Mybatis-Plus的详细方法,包括项目环境搭建、依赖引入、配置文件设置、代码实现等内容。

环境搭建

在进行整合前首先需要搭建好Spring Boot项目的开发环境,可以使用IDE工具,如IntelliJ IDEA、Eclipse等,也可以通过Spring Initializr快速生成一个Spring Boot项目的基础结构。

依赖引入

在pom.xml中添加Mybatis-Plus和MySQL的依赖:

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.4.0</version>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.23</version>
</dependency>

配置文件设置

在application.yml或application.properties中添加数据库的配置信息:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/springboot_mybatisplus_demo?UseUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password: root
  jpa:
    show-sql: true
mybatis-plus:
  mapper-locations: classpath*:mapper/*.xml
  configuration:
    map-underscore-to-camel-case: true

其中,datasource配置了数据库的连接信息,mybatis-plus的mapper-locations配置了mapper文件存放路径,并将数据库中的下划线命名自动转换为Java的驼峰式命名。

代码实现

整合Mybatis-Plus的核心代码就是创建一个mapper接口并继承Mybatis-Plus的BaseMapper接口,自动继承了常用的增、删、改、查等方法:

@Mapper
public interface UserMapper extends BaseMapper<User> {

}

另外,可以在mapper接口中自定义SQL语句或使用注解实现更为复杂的操作。

至此,Spring Boot整合Mybatis-Plus的方法就介绍完毕了。

下面分别给出Spring Boot整合Mybatis-Plus的XML配置和注解配置两个示例。

XML配置

  1. 配置pom.xml文件

添加需要用到的依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <version>2.3.4.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
    <version>2.3.4.RELEASE</version>
</dependency>
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.4.0</version>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.23</version>
</dependency>
  1. 配置application.yml文件

添加数据库相关的配置:

spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/db_test?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
    username: root
    password: root
  jpa:
    show-sql: true
mybatis-plus:
  mapper-locations: classpath*:mapper/*.xml
  1. 创建mapper接口继承BaseMapper
@Mapper
public interface UserMapper extends BaseMapper<User> {
}
  1. 创建User类
@Data
@TableName("t_user")
public class User {
    private Long id;
    private String name;
    private Integer age;
}
  1. 创建SQL文件

在src/main/resources/mapper下创建UserMapper.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.example.demo.mapper.UserMapper">
    <resultMap id="BaseResultMap" type="com.example.demo.entity.User">
        <id column="id" property="id" />
        <result column="name" property="name" />
        <result column="age" property="age" />
    </resultMap>

    <sql id="Base_Column_List">
        id, name, age
    </sql>

    <select id="selectById" resultMap="BaseResultMap">
        SELECT
        <include refid="Base_Column_List"/>
        FROM t_user
        WHERE id = #{id}
    </select>

    <select id="selectAll" resultMap="BaseResultMap">
        SELECT
        <include refid="Base_Column_List"/>
        FROM t_user
    </select>

    <insert id="insert" parameterType="com.example.demo.entity.User" useGeneratedKeys="true" keyProperty="id" >
        INSERT INTO t_user(name,age) VALUES(#{name},#{age})
    </insert>

    <update id="update" parameterType="com.example.demo.entity.User">
        UPDATE t_user SET name=#{name} WHERE id=#{id}
    </update>

    <delete id="deleteById" parameterType="Long">
        DELETE FROM t_user WHERE id=#{id}
    </delete>

</mapper>
  1. 创建Service和Controller层
@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserMapper userMapper;

    @Override
    public User findById(Long id) {
        return userMapper.selectById(id);
    }

    @Override
    public List<User> findAll() {
        return userMapper.selectList(null);
    }

    @Override
    public int save(User user) {
        return userMapper.insert(user);
    }

    @Override
    public int update(User user) {
        return userMapper.updateById(user);
    }

    @Override
    public int deleteById(Long id) {
        return userMapper.deleteById(id);
    }
}

@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping("/{id}")
    public User findById(@PathVariable Long id) {
        return userService.findById(id);
    }

    @GetMapping("/")
    public List<User> findAll() {
        return userService.findAll();
    }

    @PostMapping("/")
    public int save(User user) {
        return userService.save(user);
    }

    @PutMapping("/")
    public int update(User user) {
        return userService.update(user);
    }

    @DeleteMapping("/{id}")
    public int deleteById(@PathVariable Long id) {
        return userService.deleteById(id);
    }
}

至此,整合Mybatis-Plus的示例代码就完成了。在这个示例中,我们使用了XML形式的mapper文件来完成SQL语句的编写和数据的增、删、改、查操作。XML的方式相对于注解的方式可以更为灵活地进行各种复杂的SQL操作。

注解方式配置

  1. 修改pom.xml文件

添加mybatis-plus和mysql的依赖:

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.4.0</version>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.23</version>
</dependency>
  1. 添加配置

在application.yml或application.properties中配置数据源和mybatis-plus的相关信息:

server:
  port: 8080

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mybatisplus?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver

  jpa:
    show-sql: true

# mybatis-plus
mybatis-plus:
  # 扫描mapper.xml文件
  mapper-locations:
    - classpath:/mapper/*.xml
  # mybatis-plus配置
  configuration:
    map-underscore-to-camel-case: true
  1. 创建User和UserMapper

User类:

@Data
public class User {
    private Long id;

    private String name;

    private Integer age;
}

UserMapper类:

@Mapper
public interface UserMapper extends BaseMapper<User> {

    // 基本的CRUD操作,都不用自己写了

    /**
     * 根据名称查找
     *
     * @param name 名称
     * @return User
     */
    @Select("SELECT * FROM user WHERE name=#{name}")
    User findByName(@Param("name") String name);
}

在Mybatis-Plus中继承了BaseMapper之后,就已经具备了基本的CRUD操作,无需自己再写SQL语句了。这里演示了一个自定义的查询操作。

  1. 编写controller与service
@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserMapper userMapper;

    @Override
    public User getById(Long id){
        return userMapper.selectById(id);
    }

    @Override
    public boolean save(User user) {
        return userMapper.insert(user) > 0;
    }

    @Override
    public boolean updateById(User user) {
        return userMapper.updateById(user) > 0;
    }

    @Override
    public boolean removeById(Long id) {
        return userMapper.deleteById(id) > 0;
    }

}

@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping("/{id}")
    public User getOne(@PathVariable Long id){
        return userService.getById(id);
    }

    @PostMapping("/")
    public String create(User user){
        return userService.save(user) ? "success" : "failed";
    }

    @PutMapping("/")
    public String update(User user){
        return userService.updateById(user) ? "success" : "failed";
    }

    @DeleteMapping("/{id}")
    public String delete(@PathVariable Long id){
        return userService.removeById(id) ? "success" : "failed";
    }

    @GetMapping("/find")
    public User findByName(String name){
        return userService.findByName(name);
    }

}

至此,整合Mybatis-Plus的注解方式配置就完成了。在这个示例中,我们使用了基本的CRUD操作和自定义的查询操作。注解方式相对于XML的方式也很灵活,不需创建XML文件,所有SQL语句都使用注解的形式在代码中体现。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:springboot整合mybatisplus的方法详解 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • idea2020.3测试评价及感受

    IDEA 2020.3测试评价及感受 概述 IntelliJ IDEA 2020.3是一款集成开发环境,旨在提供给Java、Kotlin等开发者使用。本文将深入探讨该版本的测试评价及感受。 安装及配置 在官方网站(https://www.jetbrains.com/idea/)下载.idea2020.3版本软件,然后按照提示进行安装。如若使用社区版则无需激活…

    Java 2023年5月26日
    00
  • maven-compiler-plugin版本指定方式

    当我们在使用Maven构建Java项目时,通常需要编译Java源代码。而编译Java源代码需要用到maven-compiler-plugin插件。本篇攻略将详细讲解如何指定maven-compiler-plugin的版本。 步骤一:在pom.xml文件中添加maven-compiler-plugin的配置信息 在pom.xml文件中,我们可以通过<bu…

    Java 2023年5月19日
    00
  • 浅谈一下maven优缺点及使用和特点

    浅谈一下maven优缺点及使用和特点 Maven 是一款构建工具,它提供了标准化的构建过程,能够帮助开发者高效地构建、打包和部署项目。以下是 Maven 的优缺点及使用和特点: Maven 优点 依赖管理:Maven 可以自动下载项目中所需的依赖项,并对它们进行统一的管理。使用 Maven 可以方便地添加、删除、升级依赖库。 构建工具:Maven 支持多种构…

    Java 2023年5月20日
    00
  • Java实体映射工具MapStruct使用方法详解

    首先介绍一下Java实体映射工具MapStruct。MapStruct是一个自动化映射框架,特别适用于基于POJO(Plain Old Java Object)构建的简单Java对象之间的映射。它不仅提供协助在映射过程中自定义转换器的方式,而且通过使用编译时产生的代码来提高性能。 下面是使用MapStruct的详细攻略: 1. 添加依赖 首先,需要在项目的p…

    Java 2023年5月26日
    00
  • SpringBoot基于自定义注解实现切面编程

    下面是“SpringBoot基于自定义注解实现切面编程”的攻略: 什么是切面编程 切面编程(Aspect Oriented Programming,AOP)是一种编程方式,它通过在程序执行期间动态将代码切入到类的指定方法、指定位置上的编程方法。利用AOP,可以将一些重复的代码进行集中管理,例如日志记录,事务管理等。 SpringBoot中AOP实现方式 Sp…

    Java 2023年5月19日
    00
  • Java 前台加后台精品图书管理系统的实现

    Java 前台加后台精品图书管理系统的实现 概述 该图书管理系统采用前后端分离架构,前端使用Vue.js框架开发,后端使用Spring Boot框架开发,数据库采用MySQL。 该系统包括图书的增删查改功能、管理员的登录和权限管理、用户的注册和登录功能等。 实现步骤 前端页面设计 使用Vue.js框架作为前端开发工具,使用ElementUI和Bootstra…

    Java 2023年5月24日
    00
  • js版本A*寻路算法

    JS版本A*寻路算法 A(A-Star)算法是一种常用的路径搜索算法,它在寻找从起点到终点的最短路径过程中,会通过改进Dijkstra算法来提高效率。JS版本A寻路算法用于在网页游戏等应用场景下,帮助角色格子图中找到最短路径。 算法流程 创建一个空的开放列表列表(OPEN)和一个空的封闭列表(CLOSED) 把起始点作为当前点加入到OPEN列表中 循环执行以…

    Java 2023年5月19日
    00
  • 举例解析Java的图像缓冲技术的使用

    下面我将为大家讲解“举例解析Java的图像缓冲技术的使用”的完整攻略。 什么是Java图像缓冲技术? Java图像缓冲技术是一种处理图像的技术,它可以将一张图片存储在内存缓冲区中,使用缓冲区中的数据进行图像操作,并最终将结果输出为一张图像。通过缓冲区技术,我们可以提高图像处理的效率和效果。 Java图像缓冲技术的使用 下面我们来讲解Java图像缓冲技术的使用…

    Java 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部