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日

相关文章

  • Spring Data JPA 之 JpaRepository的使用

    下面将为您详细讲解Spring Data JPA之JpaRepository的使用攻略。 什么是JpaRepository? JpaRepository是Spring Data JPA提供的一个接口,它继承自PagingAndSortingRepository接口,同时它还继承了CrudRepository接口,提供了一些与业务相关的方法,如save、del…

    Java 2023年5月20日
    00
  • springboot打包不同环境配置以及shell脚本部署的方法

    SpringBoot打包不同环境配置以及Shell脚本部署的方法 在实际的应用中,我们需要针对不同的环境(如开发、测试、生产)进行配置,同时我们也需要使用Shell脚本一键部署以简化部署操作。 下面就以一个基础的Spring Boot应用为例,介绍一下如何实现不同环境配置以及Shell脚本部署。 1.不同环境配置 1.1 环境配置文件 首先,在resourc…

    Java 2023年5月20日
    00
  • java的jdk基础知识点总结

    Java JDK基础知识点总结 Java JDK是Java开发的核心工具包,包含了许多开发和运行Java程序所需要的基本组件。以下是Java JDK的一些基础知识点总结。 JDK、JRE和JVM之间的关系 JDK(Java Development Kit)是开发Java应用程序所需要的工具包,它包含了完整的JRE和一些开发工具,如编译器和调试器。 JRE(J…

    Java 2023年5月20日
    00
  • Java中反射的学习笔记分享

    关于Java中反射的学习笔记分享,下面就详细讲解一下完整攻略。 什么是Java中的反射 Java中的反射机制是指在运行时动态地获取一个类的各种信息的能力。它能够在程序运行时直接操作对象的内部属性,调用对象的方法,它使得原本在编译时就需要确定的类名、方法名等信息可以在运行时通过反射机制动态获取。 Java中反射的使用场景 1.在设计一些通用使用的代码时,比如动…

    Java 2023年5月26日
    00
  • JavaWeb开发入门第一篇必备知识讲解

    关于“JavaWeb开发入门第一篇必备知识讲解”的完整攻略,下面是详细的说明: JavaWeb开发入门第一篇必备知识讲解 什么是JavaWeb? JavaWeb是Java语言在Web应用程序领域中的应用,主要包括Servlet、JSP、Web服务等技术。JavaWeb技术架构主要是基于MVC思想,即模型(M)-视图(V)-控制器(C)。 Servlet Se…

    Java 2023年5月30日
    00
  • springboot json时间格式化处理的方法

    下面是详细讲解“springboot json时间格式化处理的方法”的完整攻略。 1. 前言 在Spring Boot中,将Java对象序列化为JSON的过程中,经常会遇到日期格式化的问题。JSON默认使用ISO-8601格式表示日期,但可能并不是我们需要的格式,因此需要对日期格式进行定制化。本攻略将介绍两种常用的方式来进行Json时间格式化处理。 2. J…

    Java 2023年5月26日
    00
  • Java正则多字符串匹配替换

    下面是Java正则多字符串匹配替换的完整攻略: 什么是Java正则匹配? Java正则匹配是Java语言内置的一种文本匹配模式,其使用正则表达式对指定的文本进行匹配和查找。正则表达式由普通字符及通配符组成,用于确定文本模式。 可以使用Java的 java.util.regex 包中的类 Pattern 和 Matcher 来进行正则匹配。 如何进行多字符串匹…

    Java 2023年5月27日
    00
  • Spring boot监控Actuator-Admin实现过程详解

    Spring Boot监控Actuator-Admin实现过程详解 Spring Boot Actuator是Spring Boot提供的一个用于监控和管理应用程序的框架。Actuator提供了许多有用的端点,例如/health、/metrics、/info等。Actuator-Admin是一个基于Actuator的UI,它提供了一个可视化的界面,用于监控和…

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