简化开发: mybatis-plus 代码自动生成 以及 常见问题

2023-05-16

 

目录

 1. MP自动代码生成和解析

1.1  getProperty()方法中的key到底是什么

 1.2 源码中 System 中 左边是key   调用上面方法能获取到后面内

1.3 测试用例: user.dir /java.version

 2. 全部自动生成的代码

3. 注意修改

Parent设置包名 可以尝试一下

 3.1 生成后 可以看到文件信息 

4. 报错信息一: 

java.lang.NoClassDefFoundError: org/apache/velocity/context/Context

5. 报错信息二: 只有文件夹 没有文件


1. MP自动代码生成和解析

依赖两个: 另一个在最下面(必须添加)

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-generator</artifactId>
    <version>3.4.1</version>
</dependency>

 1.1  getProperty()方法中的key到底是什么

  String projectPath = System.getProperty(" *** ");
        System.out.println(projectPath);

 1.2 源码中 System 中 左边是key   调用上面方法能获取到后面内

 /**
     * System properties. The following properties are guaranteed to be defined:
     * <dl>
     * <dt>java.version         <dd>Java version number
     * <dt>java.vendor          <dd>Java vendor specific string
     * <dt>java.vendor.url      <dd>Java vendor URL
     * <dt>java.home            <dd>Java installation directory
     * <dt>java.class.version   <dd>Java class version number
     * <dt>java.class.path      <dd>Java classpath
     * <dt>os.name              <dd>Operating System Name
     * <dt>os.arch              <dd>Operating System Architecture
     * <dt>os.version           <dd>Operating System Version
     * <dt>file.separator       <dd>File separator ("/" on Unix)
     * <dt>path.separator       <dd>Path separator (":" on Unix)
     * <dt>line.separator       <dd>Line separator ("\n" on Unix)
     * <dt>user.name            <dd>User account name
     * <dt>user.home            <dd>User home directory
     * <dt>user.dir             <dd>User's current working directory
     * </dl>
     */

    private static Properties props;

1.3 测试用例: user.dir /java.version

 2. 全部自动生成的代码

package sso;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.IdType;

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.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import org.junit.jupiter.api.Test;

/**
 * @Author pzy
 * @Description: TODO
 * @Version 0.1.0
 */
public class MpAutoGeneration {

    @Test
    public void run() {


        // 1、创建代码生成器
        AutoGenerator mpg = new AutoGenerator();

        // 2、全局配置
        GlobalConfig gc = new GlobalConfig();

        /**
         * 获取到当前工程的文件位置
         */
       // String projectPath = System.getProperty("user.dir");
        String projectPath = System.getProperty("java.version");
        System.out.println(projectPath);


        gc.setOutputDir(projectPath + "/src/main/java");

        gc.setAuthor("pzy");
        gc.setOpen(false); //生成后是否打开资源管理器
        gc.setFileOverride(false); //重新生成时文件是否覆盖

        //UserServie
        gc.setServiceName("%sService");	//去掉Service接口的首字母I

        gc.setIdType(IdType.AUTO); //主键策略
        gc.setDateType(DateType.ONLY_DATE);//定义生成的实体类中日期类型
        gc.setSwagger2(true);//开启Swagger2模式

        mpg.setGlobalConfig(gc);

        // 3、数据源配置
        DataSourceConfig dsc = new DataSourceConfig();
        dsc.setUrl("jdbc:mysql://*:3306/aisce?serverTimezone=GMT%2B8");
        dsc.setDriverName("com.mysql.cj.jdbc.Driver");
        dsc.setUsername("*");
        dsc.setPassword("*");
        dsc.setDbType(DbType.MYSQL);
        mpg.setDataSource(dsc);

        // 4、包配置
        PackageConfig pc = new PackageConfig();
        pc.setModuleName("system"); //模块名
        //包  com.atguigu.eduservice
        pc.setParent("*");
        //包  com.atguigu.eduservice.controller
        pc.setController("controller");
        pc.setEntity("entity");
        pc.setService("service");
        pc.setMapper("mapper");
        mpg.setPackageInfo(pc);

        // 5、策略配置
        StrategyConfig strategy = new StrategyConfig();

//        strategy.setInclude("edu_chapter","edu_course","edu_course_description","edu_video");
        strategy.setInclude("user");

        strategy.setNaming(NamingStrategy.underline_to_camel);//数据库表映射到实体的命名策略
        strategy.setTablePrefix(pc.getModuleName() + "_"); //生成实体时去掉表前缀

        strategy.setColumnNaming(NamingStrategy.underline_to_camel);//数据库表字段映射到实体的命名策略
        strategy.setEntityLombokModel(true); // lombok 模型 @Accessors(chain = true) setter链式操作

        strategy.setRestControllerStyle(true); //restful api风格控制器
        strategy.setControllerMappingHyphenStyle(true); //url中驼峰转连字符

        mpg.setStrategy(strategy);


        // 6、执行
      mpg.execute();

    }


}

3. 注意修改

数据库连接池 配置

DataSource

url

root

password

 pc.setParent("*");

Parent设置包名 可以尝试一下

控制台中能找到 如图所示: 

 3.1 生成后 可以看到文件信息 

4. 报错信息一: 

java.lang.NoClassDefFoundError: org/apache/velocity/context/Context

解决办法: (缺少生成的模板)

有两种模板引擎 一是velocity,二是freemarker  看看使用哪个比较好(或适合)

模板一: 

    <!-- 模板引擎 -->
        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity-engine-core</artifactId>
            <version>2.0</version>
        </dependency>

模板二: 

<dependency>
    <groupId>org.freemarker</groupId>
     <artifactId>freemarker</artifactId>
     <version>2.3.28</version>
</dependency>

5. 报错信息二: 只有文件夹 没有文件

寻找 setInclude()方法  看看是否存在此表

 


全部结束 看到这个成功, 其他问题欢迎评论区留言

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

简化开发: mybatis-plus 代码自动生成 以及 常见问题 的相关文章

  • pytorch DataLoader处理不定长序列

    本篇博客的目的是 xff1a 将下图这样的输入 xff08 每个tensor表示一个句子 xff0c 01为句子标签 xff09 xff1a 转化为下图所示的输出 xff08 batch size 61 2 xff09 元组的第一个元素为填
  • 《统计学习方法》之最大熵模型代码实现

    原理这里就不赘述了 见参考链接4 说一些自己学习时困惑的地方 xff0c 如果有不对的地方 xff0c 还望各位评论指正 下面从w的求解开始说起 xff0c 下面是模型的对数似然函数 xff1a w
  • NLP实践项目二:基于RNN、CNN的文本多分类(pytorch实现)

    直接看代码 xff1a github传送门 数据集 xff1a Classify the sentiment of sentences from the Rotten Tomatoes dataset 1 数据预处理 本项目实现了两种数据预
  • Vue3 中setup()和<script setup><script>

    setup 方法 在组件创建之前执行 xff0c 是组合式 API 的入口 方法可以接受两个参数 props 和 context setup方法中 xff0c 要将数据暴露给页面模板 xff0c 需要结合ref 和reactive xff0
  • NLP实践项目三:基于BiLSTM-CRF的实体识别(pytorch实现)

    直接看代码 xff1a github传送门 数据集 xff1a Conll2003 1 数据预处理 将txt中的文件读出然后将句子和对应的标签序列存入csv文件中 xff0c 便于使用torchtext完成数据读取 2 模型定义 上图是Bi
  • NLP实践项目五:基于GRU的古诗生成(pytorch实现)

    直接看代码 xff1a github传送门 数据集 xff1a 古诗数据集 1 数据预处理 xff1a 将古诗存为上图的格式 xff0c 每行一首诗 xff0c 便于使用torchtext读取 2 模型定义 模型就是一个简单的GRU模型 x
  • 第17周 算法思想-二分搜索

    算法思想 二分查找 二分查找应用场景 xff1a 寻找一个数 寻找满足条件的某个区间的左侧边界 寻找满足条件的某个区间的右侧边界 建议学习 xff1a 二分查找详解 二分查找的基本框架 span class token keyword in
  • 第18周 算法思想-搜索(BFS)

    文章目录 BFS计算在网格中从原点到特定点的最短路径长度组成整数的最小平方数数量最短单词路径 BFS 计算在网格中从原点到特定点的最短路径长度 1091 Shortest Path in Binary Matrix Medium 组成整数的
  • 第19周 算法思想 搜索(BFS&DFS)

    文章目录 BFS最短单词路径 xff08 输出所有路径 xff09 到离得最近的0的距离 DFS查找最大的连通面积填充封闭区域括号生成 最短单词路径 xff08 输出所有路径 xff09 126 Word Ladder II Hard 到离
  • c++ 正则表达式-基础操作

    正则表达式是一个非常强大的工具 xff0c 主要用于字符串匹配 如何在c 43 43 中使用正则表达式 xff1f 下面就简要介绍一下c 43 43 中正则表达式相关函数的用法 本篇博客中所涉及到的函数及其功能如下表所示 xff1a 函数功
  • 机器学习,计算机视觉和模式识别分别有何联系?

    目录 1 定义1 0 模式识别 xff1a 1 1 机器学习 xff1a 1 2 计算机视觉 xff1a 2 联系2 0 模式识别 vs 机器学习 2 1 模式识别 vs 计算机视觉 3 参考链接 xff1a 1 定义 1 0 模式识别 x
  • idea maven 编译本地jar包的问题

    maven 编译的时候一直报这个错误 搞的我云里雾里的 pom xml中配置如下 span class token tag span class token tag span class token punctuation lt span
  • linux 管理gui工具

    3 Webmin Webmin是一款基于Web的一站式工具 xff0c 可用来管理Linux服务器 有了Webmin xff0c 你就能管理服务器的几乎每一个方面 xff1a 用户帐户 Apache DNS 文件共享 安全和数据库等等 而如
  • Windows10配置Hadoop

    资源下载 hadoop 3 1 3 tar gz 百度网盘链接 xff1a https pan baidu com s 1umVgYdZ8KWMikjyHtZ2rCA xff08 提取码 xff1a 0000 xff09 apache ha
  • 最大似然估计和最小二乘法怎么理解?

    最大似然估计和最小二乘法怎么理解 xff1f 数据 是由模型的真实输出 叠加上高斯噪声 得到的 xff0c 即 xff1a 那么对模型参数 的最大似然估计和最小二乘估计是等价的 简单的推导 我们知道 xff0c 模型的似然函数是 同时 xf
  • CentOS 退出江湖,服务器操作系统该选择 Debian 还是 Ubuntu

    CentOS是一种流行的Linux服务器操作系统 xff0c 但近期宣布停止支持 xff0c 并且停止更新发布 因此 xff0c 许多用户和管理员开始考虑其他替代品 两个最受欢迎的替代选项是Debian和Ubuntu 在选择新的服务器操作系
  • 远程文件包含

    远程文件包含 xff08 Remote File Inclusion xff09 xff0c 简称RFI xff0c 与其对应的是本地文件包含 xff08 Local File Inclusion xff0c LFI xff09 xff0c
  • Android模拟器实现windows虚拟串口通信调试

    1 下载 Virtual Serial Port Driver 安装后好后 创建一对虚拟串口 2 打开计算机管理 查看设备管理 gt 端口 查看是否生成虚拟端口 如果没有生成 重启试下 3 下载 lt lt 友善串口调试助手 gt gt 使
  • 查找

    题目描述 输入一组数据 xff08 整数 xff0c 不多于20个 xff09 xff0c 查找指定的数据项是否存在 输入 正整数N xff08 1 N 20 xff0c 之后是N个整数 xff0c 以及需要查找的数据 输出 如果找到指定的
  • proxmox waiting for quorum ... 与 INFO: unable to open file '/etc/pve/nodes/*/qemu-server/*.conf.错误解决

    故障1 waiting for quorum 故障2 INFO unable to open file etc pve nodes qemu server conf tmp Permission denied 一般出现这玩意就是Corsyn

随机推荐