Spring Boot中使用IntelliJ IDEA插件EasyCode一键生成代码详细方法


Posted in Python onMarch 20, 2020

今天为小伙伴们介绍一款 IntelliJ IDEA 上的免费开源插件,叫做 EasyCode,可以方便的根据数据库生成相应的代码。

EasyCode 是基于 IntelliJ IDEA 开发的代码生成插件,支持自定义任意模板(Java,html,js,xml);只要是与数据库相关的代码都可以通过自定义模板来生成;支持数据库类型与 java 类型映射关系配置;支持同时生成生成多张表的代码,张表有独立的配置信息,完全的个性化定义,规则由你设置。

我自己也稍微体验了一把,还是蛮方便的。

1.安装

首先点击 File->Settings->Plugins,然后搜索 EasyCode,如下:

Spring Boot中使用IntelliJ IDEA插件EasyCode一键生成代码详细方法

安装成功之后,重启 IDEA。

2.创建项目

接下来我给大家演示一个如何在 Spring Boot 中使用 EasyCode。首先我们在 IDEA 中创建一个 SpringBoot 项目,创建过程我就不多说了,如果大家不会,可以在我公众号后台回复 springboot,有详细的教程。

3.添加数据源

由于这个项目是基于 IDEA 上的 Database Tools 开发的,因此我们首先要通过 IDEA 上的 Database 连接数据源。

Spring Boot中使用IntelliJ IDEA插件EasyCode一键生成代码详细方法

接下来配置你的数据库连接信息,如果没有检测到合适的数据库 Driver,点击左下角自动下载:

Spring Boot中使用IntelliJ IDEA插件EasyCode一键生成代码详细方法

连接成功后,点击 OK。默认情况下没有展示连接下的数据库,需要我们手动勾选,例如我这里要连接 vhr 数据库,如下:

Spring Boot中使用IntelliJ IDEA插件EasyCode一键生成代码详细方法

4.生成代码

做完前面三步,准备工作就算 OK 了,接下来就是生成代码了。例如我想给 vhr 中所有的代码生成实体类、dao 层以及 service 层,方式如下:

首先选中所有的表,然后右键单击,选择 Easy Code->Generate Code,如下:

Spring Boot中使用IntelliJ IDEA插件EasyCode一键生成代码详细方法

第一次添加的时候,如果有数据库类型没有对应的 Java 类型,就会有提示,这个根据它的引导去添加映射关系即可,例如我在添加的时候,出了一个这个提示:

Spring Boot中使用IntelliJ IDEA插件EasyCode一键生成代码详细方法

点击 Yes,然后去添加自己的类型映射:

Spring Boot中使用IntelliJ IDEA插件EasyCode一键生成代码详细方法

添加成功之后,再去做代码生成,这下就可以了:

Spring Boot中使用IntelliJ IDEA插件EasyCode一键生成代码详细方法

这里,如果项目是多模块项目,可以先选择代码生成的 Module,然后设置代码生成的 package,最后从下面勾选要生成的代码模版,点击 OK 即可。

在代码生成的过程中,如果没检测到 package 下面有 service、dao 以及 entity 等包,工具会提示自动创建,点击 Yes 即可。

最终生成的代码如下:

Spring Boot中使用IntelliJ IDEA插件EasyCode一键生成代码详细方法

至此,各层的代码基本都生成了。大部分小伙伴用到这一步可能就 OK 了。

当然如果你觉得 EasyCode 自动生成的模版不够用,或者不好用,我们也可以自定义模版。

5.自定义模版

例如,我想在生成的 dao 层代码中,额外添加一个不需要任何条件,获取所有数据的方法(默认的生成模版中没有这个方法)。

点击 File->Settings->Easy Code->Template Setting:

Spring Boot中使用IntelliJ IDEA插件EasyCode一键生成代码详细方法

可以参考工具自己的定义方式,我们现在先在dao.java 中,添加如下方法:

/**
 * 查询所有数据
 *
 * @param $!tool.firstLowerCase($!{tableInfo.name}) 实例对象
 * @return 对象列表
 */
List<$!{tableInfo.name}> getAll();

然后再给它添加一个配套的 mapper.xml 中的方法,打开 mapper.xml ,添加如下方法:

<select id="getAll" resultMap="$!{tableInfo.name}Map">
  select
   #allSqlColumn()
  from $!{tableInfo.obj.parent.name}.$!tableInfo.obj.name
</select>

配置完成后,点击 OK。

接下来再去重新生成代码,就可以看到生成的方法中多了一个方法了,其他代码模版的定义与这个类似,就不再赘述了。

本文主地讲解了Spring Boot中使用IntelliJ IDEA插件EasyCode一键生成代码详细方法,更多关于IntelliJ IDEA插件使用技巧请查看下面的相关链接

Python 相关文章推荐
python正则表达式及使用正则表达式的例子
Jan 22 Python
python用BeautifulSoup库简单爬虫实例分析
Jul 30 Python
详解关于Django中ORM数据库迁移的配置
Oct 08 Python
解决python 未发现数据源名称并且未指定默认驱动程序的问题
Dec 07 Python
python Selenium实现付费音乐批量下载的实现方法
Jan 24 Python
Python寻找路径和查找文件路径的示例
Jul 10 Python
Django 创建新App及其常用命令的实现方法
Aug 04 Python
Python中list循环遍历删除数据的正确方法
Sep 02 Python
Python timer定时器两种常用方法解析
Jan 20 Python
python操作toml文件的示例代码
Nov 27 Python
Python数据可视化之用Matplotlib绘制常用图形
Jun 03 Python
浅析Python实现DFA算法
Jun 26 Python
python+opencv实现移动侦测(帧差法)
Mar 20 #Python
Java Spring项目国际化(i18n)详细方法与实例
Mar 20 #Python
Python 自由定制表格的实现示例
Mar 20 #Python
python实现opencv+scoket网络实时图传
Mar 20 #Python
python实现同一局域网下传输图片
Mar 20 #Python
python实现udp传输图片功能
Mar 20 #Python
python实现UDP协议下的文件传输
Mar 20 #Python
You might like
总集篇&特番节目先行播出!《SAO Alicization War of Underworld》第2季度TV动画4月25日放送!
2020/03/06 日漫
PHP入门速成(2)
2006/10/09 PHP
深入PHP购物车模块功能分析(函数讲解,附源码)
2013/06/25 PHP
在PHP中实现使用Guzzle执行POST和GET请求
2019/10/15 PHP
PHP基于ip2long实现IP转换整形
2020/12/11 PHP
有一段有意思的代码-javascript现实多行信息
2007/08/26 Javascript
JavaScript使用技巧精萃[代码非常实用]
2008/11/21 Javascript
jquery常用技巧及常用方法列表集合
2011/04/06 Javascript
利用js 进行输入框自动匹配字符的小例子
2013/06/29 Javascript
js取两个数组的交集|差集|并集|补集|去重示例代码
2013/08/07 Javascript
jquery让返回的内容显示在特定div里(代码少而精悍)
2014/06/23 Javascript
JavaScript的设计模式经典之建造者模式
2016/02/24 Javascript
浅谈在js传递参数中含加号(+)的处理方式
2016/10/11 Javascript
JS中用childNodes获取子元素换行会产生一个子元素
2016/12/08 Javascript
js 输入框 正则表达式(菜鸟必看教程)
2017/02/19 Javascript
Omi v1.0.2发布正式支持传递javascript表达式
2017/03/21 Javascript
完美解决linux下node.js全局模块找不到的情况
2018/05/16 Javascript
详解webpack模块加载器兼打包工具
2018/09/11 Javascript
nodeJS进程管理器pm2的使用
2019/01/09 NodeJs
通过jQuery学习js类型判断的技巧
2019/05/27 jQuery
vue仿淘宝滑动验证码功能(样式模仿)
2019/12/10 Javascript
Node 模块原理与用法详解
2020/05/13 Javascript
uni-app实现获取验证码倒计时功能
2020/11/01 Javascript
[36:14]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第二局
2016/02/28 DOTA
[56:38]DOTA2-DPC中国联赛正赛Aster vs Magma BO3 第一场 3月5日
2021/03/11 DOTA
Python splitlines使用技巧
2008/09/06 Python
Python使用poplib模块和smtplib模块收发电子邮件的教程
2016/07/02 Python
python网络爬虫之如何伪装逃过反爬虫程序的方法
2017/11/23 Python
Python 文件操作之读取文件(read),文件指针与写入文件(write),文件打开方式示例
2019/09/29 Python
vivo智能手机官方商城:vivo
2016/09/22 全球购物
荷兰超市:DEEN
2018/03/14 全球购物
儿科主治医生个人求职信
2013/09/23 职场文书
毕业生物理教师求职信
2013/10/17 职场文书
办公室主任岗位职责
2013/11/08 职场文书
儿媳婚宴答谢词
2014/01/14 职场文书
Go中使用gjson来操作JSON数据的实现
2022/08/14 Golang