Mybatis-plus一键生成代码

本人现在从事Web前端开发,但是转型之前一直在写SpringMVC项目,所以对后端开发还留有一点兴趣。今晚就有了想法,用Springboot整合Mybatis(后来发现不满意,又换成了mybatis-plus)并且一键生成代码。遇到点坑,特此记录,也方便以后查阅。

进入正题,用IDEA搭建springboot项目的基本操作就不演示了(包括数据源配置),还有maven以及本地仓库的配置、环境变量在此也不叙述了,这些都是最简单的。项目搭建好之后,我先后用了3种方式。

吐槽一下,配环境变量的时候,在path里直接把maven bin目录的地址文本复制到里面就可以了,就能用mvn命令了,不需要先搞啥HOME变量之类的,bin这个文件夹里存放的就是可执行的二进制文件,啥xxxx.cmd之类的。在cmd命令窗口里就是通过找这个cmd文件来调用命令,所以直接把地址复制过去就行了,jdk、jre啥的一样。

回到正题,,,

第1种,想偷懒,就用了easycode插件,代码确实生成了,但是实体类报错,好像缺啥类,后来一看,发现了JPA,看见JPA三个字就没多想了,直接Pass,换一种。

第2种,用mybatis生成器呗,这里要注意在POM文件里添加两个依赖,mybatis以及mybatis-generator,此外还要添加一个所谓的xml配置文件最后在终端里用mvn命令来生成,反正这个配置文件挺倒腾人的,结果生成代码一看,只生成了实体类和dao层,仔细查看配置文件,原来里面只配了实体类和dao层。当时心想,这还不简单,我把控制层和服务层都加上去。好家伙,这一加上,直接报错,说啥context错误XXXX,反正又把我折腾了不少时间。百度说context标签内的子标签顺序不能错,OK,我顺序也没错啊(服务层控制层这些啥的标签并列写都不行?把爷整笑了)?还有那啥数据库里的表名要大写,小写貌似也出错。

总而言之,,这种方式,,太尼玛坑了,pass pass,赶紧用plus。

第3种,用mybatis-plus
这个就稍微舒服了点。

先上依赖:

<!-- mybatis-plus --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.3.1</version></dependency><!-- mybatis-plus代码自动生成器依赖--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.5.3.1</version></dependency><!--Freemarker引擎模板--><dependency><groupId>org.freemarker</groupId><artifactId>freemarker</artifactId><version>2.3.28</version></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>3.0.0</version></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>3.0.0</version></dependency>

我这共有5个。注意版本3.5.3.1啥的,一开始我百度是三个数的,发现不行,换成这个四位数的。依赖加好之后,写一个生成类,如下:

package com.config;import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;import java.util.Collections;public class Generator {public static void main(String[] args) {Generator generator = new Generator();generator.generator();}void generator(){FastAutoGenerator.create("jdbc:mysql://localhost:3306/takeout?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=false", "root", "password").globalConfig(builder -> {builder.author("SSA") // 设置作者.enableSwagger() // 开启 swagger 模式.outputDir("D:\\Ago\\wsfxt-service\\src\\main\\java"); // 指定输出目录}).packageConfig(builder -> {builder.parent("com") // 设置父包名.moduleName("") // 设置父包模块名.pathInfo(Collections.singletonMap(OutputFile.xml, "D:\\Ago\\wsfxt-service\\src\\main\\resources\\mapper")); // 设置mapperXml生成路径}).strategyConfig(builder -> {builder.addInclude("user,good") // 设置需要生成的表名.addTablePrefix("", ""); // 设置过滤表前缀}).templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板.execute();}
}

注意那个包名,我的就是com,我不喜欢写com.XXX啥的,所以是这么写的。还有那个表,多个表的话用逗号分隔就行了,因为addInclude这个方法的源码里使用了逗号来截取(官网示例代码里貌似没写,我是点进源码里看到的)。

最后,,,运行一下main方法,就能生成代码了。关于mybatis-plus的具体增删改查语法可以百度哈。还有个问题,多次生成会不会覆盖之前的,我这种是不会覆盖的,其他的就没试过了。

回想当年,,,就是因为不想再碰这些杂七杂八的配置文件(太繁琐了),也不想再跟数据库打交道了(有一次操作生产库的时候分神了,,,),就系统的自学了前端,也从此进入了前端圈子。我对java算不上抵触,但也没多大感觉。另一个原因,写接口没啥成就感。我是去年4月底开始,就不写后端了。这时隔快一年了,没想到今天又搞起了后端项目。干前端之前,一直写的SpringMVC项目,用JSP充当视图。mvc项目的配置文件还是很烦的,什么XML配bean啥的一堆,所以用boot的时候很清爽。而且当时那个项目也没用mybatis啥的,还是用的JDBC Template操作SQL语句,这玩意写起来挺难受的。写jsp的时候,用的jquery,这玩意操作dom真麻烦,后来学了vue简直不要太爽。

说个好玩的,长时间写JavaScript,今晚写Java这个生成类的时候,差点就像JS那样直接调用了方法。。。。。。

特此记录,折腾了一晚!

Mybatis-plus一键生成代码(踩坑记录,用了3种方式)相关推荐

  1. 在Cent OS云服务器上部署基于TP5后端代码踩坑记录_艾孜尔江撰

    推荐使用镜像安装Cent OS系统,或者在纯净安装完成之后在完成Apache+MySQL+PHP的时候不要每个单独安装,因为这样会出一些三者之间版本不配的问题,网上各种说法都有,查起来也非常困难,版本 ...

  2. Windows 10环境下「MSCOCO Captions」评估代码踩坑记录

    文章目录 引言 解决python2→python3.x问题 验证评估代码是否可以正确运行 解决 jar 包运行出错的原因 排查jar包运行出错的原因 解决Could not reserve enoug ...

  3. 【MathType安装】Office2019+MathType7.4.8.0+踩坑记录+最终使用方案

    使用Office2019安装MathType7.4.8.0屡屡碰壁,最终使用的解决方案不同于网络上的大多数方法.尽管当前记录的解决方案还不完美.未做到一劳永逸,但能用就行. MathType安装包获取 ...

  4. mybatis学习与踩坑记录

    mybatis resultmap高级映射 应用场景:如果sql查询的列名和pojo的属性名不一致,可以使用resultMap将列名和pojo的属性名作一个对应关系,就可以映射成功了.(如果返回值为i ...

  5. 【踩坑记录】mybatis-plus的insert方法,默认会生成一个uuid作为主键,导致类型不一致,存入数据库报错

    [踩坑记录]mybatis-plus的insert方法,默认会生成一个uuid作为主键,导致类型不一致,存入数据库报错 报错记录 解决方案 推荐方案 使用uuid作为主键,修改id的类型为bigint ...

  6. 【软件分析】Tai-e实验代码理解与踩坑记录

    软件分析实验Tai-e代码理解与踩坑记录 A1 A2 A3 A4 实现类层次结构分析(CHA) 实现过程间常量传播 实现过程间 Worklist 求解器 A5 A6 A7 实例字段 load stor ...

  7. VS Code Python 代码智能提示(自动补全)编译环境设置踩坑记录

    VS Code Python 编译环境设置踩坑记录 本菜鸡非常喜欢VS code的简洁风格,而且跟原来再用的VS2017相比简直不要太快,前段时间电脑重装之后又要在windows系统上重新搭建整套环境 ...

  8. SpringBoot踩坑记录 Invalid bound statement (not found)引发的一些列问题

    SpringBoot踩坑记录 Invalid bound statement (not found)引发的一些列问题 当你开开心心搭建了一个SpringBoot项目,用插件生成了entity.dao. ...

  9. 日常踩坑记录-汇总版

    开发踩坑记录,不定时更新 心得 RTFM 严谨的去思考问题,处理问题 严格要求自己的代码编写习惯与风格 注意 单词拼写 20200207 mybatis plus 自带insert插入异常 sql i ...

最新文章

  1. commons-pool2-2.4.2连接池读后笔记
  2. ADO.NET 中的表达式
  3. 用按位异或运算符交换两个数,不引入第三个变量
  4. springboot整合jdbc
  5. 知名论坛猴岛游戏论坛宣布永久关闭!
  6. [python爬虫] 招聘信息定时系统 (二).调用pyinstaller包生成exe文件
  7. 3x3九宫格java_Java实现九宫格的简单实例
  8. 【Envi风暴】Envi5.4经典安装图文教程
  9. opencv模糊图像变清晰_opencv-python 4.2图像模糊
  10. 分段函数(信息学奥赛一本通-T1051)
  11. 强化学习《基于价值 - Double Q-Learning》
  12. 【UML】协作图Collaboration diagram(交互图)(转)
  13. Pandas 矩阵运算
  14. [CMake] 头文件路径 动态库路径
  15. 【数据科学】什么是数据分析
  16. 三峡大学本科毕业论文答辩PPT模板
  17. 天正暖通2013版安装包附带注册机下载
  18. 微信的Linux版本,ubuntu16.04安装微信,linux原生版
  19. 88年的世界杯历史,用Python带你回顾!
  20. 爬虫爬取wallpaperswide上的高清壁纸

热门文章

  1. 利器社群计划 - 张驰Terry
  2. Microsoft Office Access的简单简介和基本特性
  3. VisualBox+Vagrant搭建Linux虚拟机
  4. 山穷水复疑无路?柳暗花明又一村|转行软件测试月薪12K
  5. 三叉戟核武系统扛不住网络攻击 解决之道在于投入成本
  6. 高仿简书个人中心页面
  7. leetcode算法题-390.消除游戏
  8. vue动态路由权限管理
  9. 2022 最新版 JDK 17 下载与安装 步骤演示 (图示版)
  10. PEiD--什么都没发现