SpringBoot+MybatisPlus+代码生成器整合示例

下面是详细讲解“SpringBoot+MybatisPlus+代码生成器整合示例”的完整攻略。

准备工作

首先需要创建一个SpringBoot项目。在pom.xml文件中添加MybatisPlus和代码生成器的依赖。

<dependency>
   <groupId>com.baomidou</groupId>
   <artifactId>mybatis-plus-boot-starter</artifactId>
   <version>3.4.3.1</version>
</dependency>
<dependency>
   <groupId>com.baomidou</groupId>
   <artifactId>mybatis-plus-generator</artifactId>
   <version>3.4.3.1</version>
</dependency>

接着,在application.yml文件中配置数据库连接信息。

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/your_db_name?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8&useSSL=false
    username: your_username
    password: your_password

创建数据表

首先需要创建一个数据表,以user表为例,创建SQL语句如下:

CREATE TABLE `user` (
   `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
   `username` varchar(50) DEFAULT NULL COMMENT '用户名',
   `password` varchar(50) DEFAULT NULL COMMENT '密码',
   `age` int(11) DEFAULT NULL COMMENT '年龄',
   `email` varchar(50) DEFAULT NULL COMMENT '邮箱',
   PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8

生成代码

使用MybatisPlus的代码生成器生成实体类、Mapper接口和XML文件。

在项目根目录下创建一个generator目录,在其中创建generatorConfig.xml文件,并添加以下内容:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<configuration>
  <context id="DB2Tables" targetRuntime="MyBatis3">
    <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/your_db_name?serverTimezone=GMT%2B8&amp;useUnicode=true&amp;characterEncoding=utf-8&amp;useSSL=false" userId="your_username" password="your_password">
    </jdbcConnection>
    <javaTypeResolver>
      <property name="forceBigDecimals" value="false"/>
    </javaTypeResolver>
    <javaModelGenerator targetPackage="com.example.demo.entity" targetProject="src/main/java">
      <property name="enableSubPackages" value="true"/>
      <property name="trimStrings" value="true"/>
    </javaModelGenerator>
    <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources">
      <property name="enableSubPackages" value="true"/>
    </sqlMapGenerator>
    <javaClientGenerator type="XMLMAPPER" targetPackage="com.example.demo.mapper" targetProject="src/main/java">
      <property name="enableSubPackages" value="true"/>
    </javaClientGenerator>
    <table tableName="user" domainObjectName="User"/>
  </context>
</configuration>

其中,id属性为上下文的唯一标识符。targetRuntime属性指定要生成的Mybatis代码。jdbcConnection标签中指定了数据库连接信息。javaModelGenerator标签中指定了生成的实体类的包和目录。sqlMapGenerator标签中指定了生成的XML文件包和目录。javaClientGenerator标签指定要生成的Mapper接口的包和目录。table标签中指定了要生成Mybatis代码的表名和对应的实体类名。

在Maven的Lifecycle中执行mybatis-plus官方命令行工具,命令如下:

mvn mybatis-plus:generator

执行完这个操作后,即可在java和resources文件夹下生成对应的代码文件。

测试代码

完成代码生成后,可以开始测试代码。

示例一:查询所有用户信息

先在UserService中定义一个方法用于查询所有用户信息。

public interface UserService {
   List<User> listUsers();
}

在UserServiceImpl中实现这个方法。

@Service
public class UserServiceImpl implements UserService {
   @Autowired
   private UserMapper userMapper;

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

这里用到了MybatisPlus的通用Mapper接口,selectList方法中的参数可传入一个Wrapper来增加查询条件。

最后,在Controller中调用这个方法。

@RestController
@RequestMapping("/user")
public class UserController {
   @Autowired
   private UserService userService;

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

示例二:添加用户信息

在UserService中增加一个添加用户信息的方法。

public interface UserService {
   List<User> listUsers();
   boolean addUser(User user);
}

在UserServiceImpl中实现这个方法。

@Service
public class UserServiceImpl implements UserService {
   @Autowired
   private UserMapper userMapper;

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

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

这里用到了MybatisPlus的通用Mapper接口,insert方法中的参数为实体类对象,返回值为受影响的行数。

最后,在Controller中调用这个方法。

@RestController
@RequestMapping("/user")
public class UserController {
   @Autowired
   private UserService userService;

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

   @PostMapping("/add")
   public boolean addUser(@RequestBody User user) {
      return userService.addUser(user);
   }
}

总结

以上就是“SpringBoot+MybatisPlus+代码生成器整合示例”的完整攻略,其中包含了生成代码和测试代码两个步骤,并提供了两个简单的示例用于查询所有用户信息和添加用户信息。使用MybatisPlus的代码生成器可以快速生成Mybatis所需的实体类、Mapper接口和XML文件,大大简化了开发流程,提高了开发效率。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot+MybatisPlus+代码生成器整合示例 - Python技术站

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

相关文章

  • 全面了解java异常

    全面了解 Java 异常 在 Java 编程中,异常是一个不可避免的问题。当程序出现异常时,如果没有妥善的处理,会导致程序的崩溃。因此,全面了解 Java 异常是非常必要的。 什么是 Java 异常 Java 异常是指在程序运行过程中出现的错误或意外情况。Java 异常分为两种:可查异常和非可查异常。 可查异常:Java 编译器会强制程序员在代码中进行处理或…

    Java 2023年5月26日
    00
  • Java String类的理解及字符串常量池介绍

    Java String类是Java中最重要的类之一,它用于表示字符串类型的数据。在Java程序中,字符串常常用于数据传递、文件操作、网络编程等多个场景中。本文将介绍Java String类的基本概念、使用方法,并讲解Java字符串常量池的概念和使用方法。 Java String类 基本概念 Java String类是一个不可变的、线程安全的类,它用于表示字符…

    Java 2023年5月26日
    00
  • Java中FileOutputStream流的write方法

    FileOutputStream 是 Java IO 的一种数据流,用于向文件中写入数据。其write方法是其中的一个核心方法,用于写入数据。下面是关于该方法的详细攻略: 方法介绍 在 FileOutputStream 定义了许多方法,其中write方法是最常用的一个。它的方法签名如下: public void write(int b) throws IOE…

    Java 2023年5月26日
    00
  • 详解5种Java中常见限流算法

    详解5种Java中常见限流算法 在高并发场景下,为了保证系统的稳定性与安全性,通常需要对流量进行限制与控制。而限流算法就是实现这种控制的重要手段之一。在Java开发中,有多种常见的限流算法可供选择,本文将对这些算法进行详细讲解。 令牌桶算法 令牌桶算法是一种基于令牌(Token)实现的限流算法。在该算法中,系统会定期向桶中添加一定数量的令牌,每当有请求到来时…

    Java 2023年5月19日
    00
  • Maven管理SpringBoot Profile详解

    Maven管理SpringBoot Profile详解 简介 Spring Boot是一款基于Spring框架,更快地启动、开发和部署单独的Java应用程序的工具。在使用Spring Boot的过程中,我们经常需要使用到不同的配置和环境,而这些配置和环境可以通过Profile的方式进行管理。 本文将讲解如何利用Maven对Spring Boot的Profil…

    Java 2023年5月19日
    00
  • 浅谈Spring Boot日志框架实践

    浅谈SpringBoot日志框架实践 在Spring Boot应用程序中,日志是一项非常重要的功能。通过日志,我们可以记录应用程序的运行状态,帮助我们快速定位和解决问题。本文将手把手教你如何在Spring Boot应用程序中使用日志框架,包括选择日志框架、配置日志框架、使用日志框架等。 1. 选择日志框架 在Spring Boot中,我们可以选择多种日志框架…

    Java 2023年5月14日
    00
  • Java 7大常见排序方法实例详解

    Java 7大常见排序方法实例详解 排序算法是计算机科学中的重要技能之一,Java为开发者提供了多种常见的排序方法,本文将介绍Java 7大常见排序方法并提供详细的示例说明。 1. 冒泡排序(Bubble Sort) 冒泡排序是最简单的排序算法之一,它的思想是依次比较相邻的两个元素,如果前面的元素比后面的元素大,则交换这两个元素的位置,通过多次比较和交换,将…

    Java 2023年5月26日
    00
  • java io文件操作从文件读取数据的六种方法

    Java IO是Java编程语言的核心库之一,它通过提供一组类和接口,使我们能够进行文件和数据流的操作。在Java IO中,文件读取是常见的操作之一。下面我们将介绍Java IO文件操作从文件读取数据的六种方法。 方法一、使用FileInputStream和Scanner类 首先使用FileInputStream类创建一个字节流对象。 创建一个Scanner…

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