Java实战之实现一个好用的MybatisPlus代码生成器

首先需要明确的是,MybatisPlus是Mybatis的一个增强版本,能够大大提高开发效率。而MybatisPlus代码生成器能够自动生成基本的CRUD操作,这对于快速搭建项目是非常有帮助的。下面我将详细讲解如何实现一个好用的MybatisPlus代码生成器。

准备工作

  1. 添加MybatisPlus及其依赖到项目中。
  2. 创建数据库及数据表。(以下示例中,我们使用的是MySQL,表名为“user_info”,其中有id、username、password、email、phone五个字段)

配置代码生成器

  1. 创建一个配置类(例如MybatisPlusGeneratorConfig),代码如下所示:
package com.example.mybatisplusdemo.config;

import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;

/**
 * MybatisPlus代码生成器配置类
 */
public class MybatisPlusGeneratorConfig {

    public static void main(String[] args) {
        // 创建代码生成器
        AutoGenerator generator = new AutoGenerator();

        // 数据源配置
        DataSourceConfig dataSourceConfig = new DataSourceConfig();
        dataSourceConfig.setUrl("jdbc:mysql://localhost:3306/mp_demo?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai");
        dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver");
        dataSourceConfig.setUsername("root");
        dataSourceConfig.setPassword("123456");
        generator.setDataSource(dataSourceConfig);

        // 全局配置
        GlobalConfig globalConfig = new GlobalConfig();
        globalConfig.setOutputDir(System.getProperty("user.dir") + "/src/main/java");
        globalConfig.setAuthor("yourname");
        globalConfig.setOpen(false);
        globalConfig.setServiceName("%sService");
        generator.setGlobalConfig(globalConfig);

        // 包名配置
        PackageConfig packageConfig = new PackageConfig();
        packageConfig.setParent("com.example.mybatisplusdemo");
        packageConfig.setEntity("entity");
        packageConfig.setMapper("mapper");
        packageConfig.setXml("mapper.xml");
        generator.setPackageInfo(packageConfig);

        // 策略配置
        StrategyConfig strategyConfig = new StrategyConfig();
        strategyConfig.setNaming(NamingStrategy.underline_to_camel);
        strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel);
        strategyConfig.setEntityLombokModel(true);
        strategyConfig.setInclude("user_info");
        strategyConfig.setControllerMappingHyphenStyle(true);
        strategyConfig.setTablePrefix(packageConfig.getModuleName() + "_");
        generator.setStrategy(strategyConfig);

        // 执行代码生成器
        generator.execute();
    }
}
  1. 修改数据库连接、输出目录、包名等配置信息,运行MybatisPlusGeneratorConfig类,即可自动生成entity、mapper和mapper.xml文件。

使用代码生成器

生成的mapper.xml已经包含了基本的CRUD操作,使用时只需在Service层中调用即可。以user_info表为例,以下是两个示例:

  1. 查询所有用户
@Service
public class UserInfoServiceImpl extends ServiceImpl<UserInfoMapper, UserInfo> implements UserInfoService {

    @Override
    public List<UserInfo> listUserInfos() {
        return baseMapper.selectList(null);
    }
}
  1. 根据用户名查询用户
@Service
public class UserInfoServiceImpl extends ServiceImpl<UserInfoMapper, UserInfo> implements UserInfoService {

    @Override
    public UserInfo getUserInfoByUsername(String username) {
        QueryWrapper<UserInfo> wrapper = new QueryWrapper<>();
        wrapper.eq("username", username);
        return baseMapper.selectOne(wrapper);
    }
}

以上就是实现一个好用的MybatisPlus代码生成器的完整攻略啦。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java实战之实现一个好用的MybatisPlus代码生成器 - Python技术站

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

相关文章

  • Vue集成Iframe页面的方法示例

    关于Vue集成Iframe页面的方法示例,以下是我整理的详细攻略: 步骤一:在Vue项目中安装Vue-iframe插件 在Vue项目中集成Iframe页面首先需要安装Vue-iframe插件。Vue-iframe插件是专门用于在Vue项目中嵌入Iframe页面的插件,可以快速简单地实现Iframe页面的嵌入。在终端中执行以下命令即可完成Vue-iframe插…

    Java 2023年6月15日
    00
  • Java获取文件的类型和扩展名的实现方法

    获取文件类型和扩展名是Java中经常用到的功能之一。下面将详细讲解Java获取文件类型和扩展名的实现方法。 获取文件扩展名 方法一:使用String类的substring()函数 Java中的String类拥有很多有用的函数,例如substring()函数可以截取一个字符串的一部分。通过substring函数,我们可以将文件名中最后一个点号(.)后面的字符(…

    Java 2023年5月20日
    00
  • 深入解析Java中ThreadLocal线程类的作用和用法

    深入解析 Java 中 ThreadLocal 线程类的作用和用法 什么是 ThreadLocal Java 中的 ThreadLocal 是一个线程级别的变量,它是一个简单的线程安全机制,可以用于解决多线程中的并发问题。通俗地说,ThreadLocal 就是一个存放数据的盒子,每个线程有一个专属的盒子,不同线程之间互不干扰。 ThreadLocal 的使用…

    Java 2023年5月20日
    00
  • 解决springboot 多线程使用MultipartFile读取excel文件内容报错问题

    解决springboot多线程使用MultipartFile读取excel文件内容报错问题的完整攻略: 原因分析 在springboot多线程中使用MultipartFile读取excel文件内容时,容易出现以下两种错误: java.io.IOException: Stream closed org.apache.poi.POIXMLException: j…

    Java 2023年6月3日
    00
  • 用定制标签库和配置文件实现对JSP页面元素的访问控制

    实现对JSP页面元素的访问控制,可以通过定义自定义标签来实现。通过在JSP页面引入自定义标签库,并根据标签的属性值控制对应元素的显示与隐藏,从而实现访问控制的目的。 以下是实现步骤: 在项目中创建自定义标签库文件(例如custom.tld),定义自定义标签及其属性。例如: <taglib xmlns="http://java.sun.com/…

    Java 2023年6月15日
    00
  • 几道和「黑洞照片」那种海量数据有关的算法问题

    这个话题涉及到海量数据处理和算法问题,我会尽可能详细地解释来帮助大家了解。 大数据处理的常用算法 排序算法 排序是大数据处理中最常用的算法之一。这是因为,在许多情况下,我们需要对从数据库中获取的大量数据进行排序,以便更好地分析和使用它们。以下是一些常用的排序算法: 冒泡排序:这是一种简单的排序算法,在较小的数据集中表现良好,但对于大规模数据集则效率较低。 快…

    Java 2023年5月19日
    00
  • jquery ajax 局部刷新小案例

    首先,让我们了解一下jQuery的ajax方法,该方法允许我们通过JavaScript代码向服务器发送异步HTTP请求,并在服务器响应事件时更新部分页面内容,使得页面刷新更快,用户体验更加顺畅。 接下来,我们将介绍一个jquery ajax的小案例,以帮助您更好地理解如何使用jQuery和ajax来实现局部刷新。 一、案例需求 我们的网站有一个评论区,用户可…

    Java 2023年6月15日
    00
  • java 输入一个数字,反转输出这个数字的值(实现方法)

    针对这个问题,我会给出一个详细的解答: 题目描述 编写Java程序,输入一个数字,反转输出这个数字的值。 思路分析 将输入的数字转化为字符串类型。 将字符串类型的数字转化为字符数组类型。 通过for循环反转字符数组。 将反转后的字符数组转化成字符串类型,并将其转化为数字类型。 输出转化后的数字。 代码实现 import java.util.Scanner; …

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