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日

相关文章

  • JavaWeb后台购物车类实现代码详解

    下面为大家详细讲解“JavaWeb后台购物车类实现代码详解”的完整攻略。 一、前置知识 在学习本文之前,您需要了解以下知识点: JavaWeb基础知识,例如Servlet、JSP等; Java基础知识,例如面向对象编程、集合等; HTML、CSS、JavaScript等前端知识。 二、购物车的实现 购物车的实现可以借助实现了Session接口的HttpSes…

    Java 2023年5月23日
    00
  • SpringBoot异常处理之异常显示的页面问题

    下面是SpringBoot异常处理之异常显示的页面问题的完整攻略。 异常显示的页面问题 当我们在SpringBoot应用中发生了异常时,默认情况下,会直接将异常信息输出到控制台上。如果是Web应用,我们通常需要更加友好的方式来展示异常信息,方便排查问题。 本篇攻略将介绍两种常见的方式来实现在Web应用中展示异常信息的需求。 方法一:使用@Controller…

    Java 2023年5月27日
    00
  • 基于java swing实现答题系统

    基于Java Swing实现答题系统的攻略 策划和设计 在开发答题系统之前,需要做好策划和设计。首先需要定义项目的基本要求和功能,并进行详细的规划和设计。这包括创建用于存储题目和答案的数据库,定义系统的用户角色和权限等。 系统架构设计 设计完答题系统的功能后,需要进行系统架构设计。这包括确定使用的技术栈和架构模式,例如使用MVC(Model-View-Con…

    Java 2023年5月19日
    00
  • SpringBoot全局异常处理方案分享

    针对“SpringBoot全局异常处理方案分享”的完整攻略,可以从以下几个方面进行讲解: 1. 异常处理的基本概念 异常处理是指对不可预知的异常情况进行预判、捕获、记录、分析和处理的一种程序行为。在SpringBoot应用中,异常处理是非常重要的,它可以更好地保障应用的稳定性和可靠性。基本上,通过自定义异常处理器,我们可以捕获程序中未处理的异常,并统一处理异…

    Java 2023年5月27日
    00
  • spring容器启动实现初始化某个方法(init)

    在Spring容器启动时,我们可以通过在Bean上添加@PostConstruct注解或实现InitializingBean接口来实现初始化某个方法。在本文中,我们将详细讲解如何在Spring容器启动时实现初始化某个方法。 使用@PostConstruct注解 @PostConstruct注解是javax.annotation包中的注解,它可以用来标记一个方…

    Java 2023年5月18日
    00
  • Java编程用指定字符打印菱形实例

    对于Java编程打印指定字符的菱形实例,具体操作步骤如下: 1. 确定框架和输出样式 菱形实例通常分为两部分,上半部分和下半部分。我们可以先确定输出框架,可以用一个二维字符数组来表示,其中每个元素存储一个字符,通常用空格或特定字符填充。 上半部分可以采用两个嵌套的循环控制每行的输出符号,下半部分则可以采用逆向输出的方法,即先确定下边界,再循环输出。 2. 确…

    Java 2023年5月23日
    00
  • java如何读取某个文件夹中的全部文件(包括子文件夹)

    Java读取某个文件夹中的全部文件包括子文件夹,可以通过以下步骤实现: 获取要读取的文件夹路径 创建文件对象 遍历文件夹及其子文件夹中的所有文件,并将文件路径存储在List中 以下是完整的Java读取某个文件夹中的全部文件包括子文件夹的示例代码: 示例1:使用递归方法实现 import java.io.File; import java.util.Array…

    Java 2023年5月19日
    00
  • SpringBoot Web依赖教程

    下面我将为您详细讲解“SpringBoot Web依赖教程”的完整攻略。 什么是SpringBoot Web依赖? SpringBoot是一个快速创建和开发Spring基础项目的框架,它自带了大量的依赖包,其中就包括了SpringBoot Web依赖。SpringBoot Web依赖可以让我们方便地创建Web应用程序,支持使用SpringMVC框架,并集成了…

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