IntelliJ IDEA使用技巧—使用EasyCode插件一键生成代码04期
在现如今的软件开发过程中,软件开发人员将很多的精力放在重复的编码中。特别是流行的MVC架构模式下,项目各个层次的功能更加独立,这也间接的造成了代码的相似度更高。因此需要寻找一种可以减少软件开发人员重复编码的方式,让软件开发人员可以将更多的精力放在业务逻辑编码以及其他更具有价值的工作上。
今天小编向大家介绍一种一款IntelliJ IDEA上的免费开源插件EasyCode,可以方便的根据数据库生成相应的代码。实际就是利用逆向工程自动生成实体类和dao成的代码。
EasyCode是基于IntelliJ IDEA开发的代码生成插件,支持自定义任意模板(Java,html,js,xml)。只要是与数据库相关的代码都可以通过自定义模板来生成。
1)支持数据库类型与java类型映射关系配置。
2)支持同时生成生成多张表的代码。
3)每张表有独立的配置信息。
4)完全的个性化定义,规则由使用者设置。
第一步:安装
首先点击左上角File->Settings->Plugins选项,之后搜索“EasyCode”插件,如图所示:
点击红色箭头所示按钮,安装成功之后,需重启IDEA。
第二步:创建项目
在IDEA中创建一个spring boot项目(小编使用以前已有的项目为例),针对项目的创建过程在这里就不多说了,如果大家有什么不懂的话可以在下方公众号(Java精选)留言,小编会及时回复或者在公众号后台回复“spring boot”关键词获取视频资料和项目源码,教程是非常的详细的噢。
spring boot搭建项目,推荐相关资料教程:https://blog.yoodb.com/springboot/tutorial
第三步:添加数据源
由于项目是基于IDEA上的Database Tools开发的,因此先要通过IDEA上的 Database连接数据源,选择MySQL数据库(小编电脑只有MySQL客户端连接,因此以它为例),如图所示:
接下来配置所选数据库连接信息(host、端口号、密码以及数据库驱动),如果没有检测到合适的数据库 Driver,点击左下角自动下载,如图所示
连接成功后,点击 OK。默认情况下没有展示连接下的数据库,需要我们手动勾选。(有时下载驱动比较费时间,经常连接超时,多试几次即可。)
第四步:生成代码
做完前面三步后准备工作基本完成,接下来就是生成代码。比如小编把当前dba库中的所有表生成生成实体类、dao 层以及 service 层,参考步骤如下几方面。
1)选中所有的表,然后右键单击,选择 Easy Code->Generate Code,如下:
注意:在第一次添加时,如果有数据库类型没有对应的Java类型,就会有提示信息,大家根据它的引导去添加映射关系即可。
2)添加成功之后,再去做代码生成,如图所示:
如果项目是多模块项目,可以先选择代码生成的 Module,然后设置代码生成的 package,最后从下面勾选要生成的代码模版,点击 OK 即可。
3)在代码生成的过程中,如果没检测到 package 下面有 service、dao 以及 entity 等包,工具会提示自动创建,点击Yes即可。
最终生成的代码,如图所示:
到这里,各个层面的代码已经生成完毕。如果觉得EasyCode自动生成的模版不够用,或者不好用,我们也可以自定义模版。
自定义模版
在生成的各个层代码中,如何额外添加一个不需要任何条件或者其他的方法,而默认的生成模版中没有这些方法呢?
点击 File->Settings->Easy Code->Template Setting,可以看到所有层次的生成代码规则,如图所示:
小编就不在这里一一举例,只用dao层和mapper.xml文件给大家演示一下吧,例如获取所有信息的方法,点击 File->Settings->Easy Code->Template Setting,如图所示:
可以参考工具自己的定义规则,在dao.java类中,添加如下方法,代码如下:
/**
* 查询所有信息
*
* @param $!tool.firstLowerCase($!{tableInfo.name}) 实例对象
* @return 对象列表
*/
List<$!{tableInfo.name}> selectInfos();
然后再给它添加一个配套的mapper.xml文件中的调用方法,编辑mapper.xml,如图所示:
在上图所示文件中添加方法,代码如下:
<select id="selectInfos" resultMap="$!{tableInfo.name}Map">
select
#allSqlColumn()
from $!{tableInfo.obj.parent.name}.$!tableInfo.obj.name
</select>
配置完成后,点击OK。接下来,大家就可以再去重新生成代码,这时在生成的方法中就会发现多了一个刚刚定义的方法,其他代码模版的定义与这个类似,我就不再多说了。好了,感兴趣的朋友们不妨试试。
IntelliJ IDEA使用技巧—使用EasyCode插件一键生成代码04期的更多相关文章
- Eclipse 使用mybatis generator插件自动生成代码
Eclipse 使用mybatis generator插件自动生成代码 标签: mybatis 2016-12-07 15:10 5247人阅读 评论(0) 收藏 举报 .embody{ paddin ...
- Mybatis-Plus一键生成代码
Mybatis-Plus一键生成代码 一.闲言碎语 闲来无事看了看了MP的官网看到一键生成的代码更新了! 整个Ui风格都变了,遂决定瞅一眼新的代码生成器 官网地址~~ 二.引入依赖 新的代码生成只有在 ...
- 【Idea插件】kotlin的orm框架一键生成代码框架
@font-face { font-family: octicons-link; src: url("data:font/woff;charset=utf-8;base64,d09GRgAB ...
- 使用mybatis插件自动生成代码以及问题处理
1.pom.xml中加入依赖插件 <!-- mybatis generator 自动生成代码插件 --> <plugin> <groupId>org.mybatis ...
- mybatis generator maven插件自动生成代码
如果你正为无聊Dao代码的编写感到苦恼,如果你正为怕一个单词拼错导致Dao操作失败而感到苦恼,那么就可以考虑一些Mybatis generator这个差价,它会帮我们自动生成代码,类似于Hiberna ...
- maven插件mybatis-generator生成代码配置
鸣谢:http://my.oschina.net/u/1763011/blog/324106?fromerr=nJakGh4P (也可参看此博客进行配置) http://www.cnblogs.com ...
- Fiddler抓包一键生成代码
首先我们的需求场景是 用Fiddler抓到某个接口调用后,用代码来模拟调用,一般我们写代码会有3个步骤: 1设置http请求相关的参数:header,method,url,cookie等 2设置pos ...
- 关于使用mybatis插件自动生成代码
1.安装 mybatis 插件: 在 eclipse 中 点击 help-->Install New Software...--> Add --> local 选择插件中eclip ...
- maven插件mybatis-generator生成代码
第一步,在pom中加入插件 <plugin> <groupId>org.mybatis.generator</groupId> <artifactId> ...
随机推荐
- swiper插件遇到的坑
1.网速卡的情况下轮播图会出现塌陷 解决方法: 在swiper外层固定高度,用填充百分比方法: html代码:在swiper-container加一层外层,外层用padding-top:50%(看图片 ...
- ERROR: but there is no YARN_RESOURCEMANAGER_USER defined. Aborting operation.
将start-dfs.sh,stop-dfs.sh两个文件顶部添加以下参数 HDFS_NAMENODE_USER=root HDFS_DATANODE_USER=root HDFS_SECONDARY ...
- [蓝桥杯2016初赛]卡片换位 BFS
题目描述 你玩过华容道的游戏吗?这是个类似的,但更简单的游戏.看下面 3 x 2 的格子 +---+---+---+ | A | * | * | +---+---+---+ | B | | * | + ...
- Java 并发锁
Java 中的锁 阻塞锁.可重入锁.读写锁.互斥锁.悲观锁.乐观锁.公平锁.偏向锁.对象锁.线程锁.锁粗化.锁消除.轻量级锁.重量级锁.信号量.独享锁.共享锁.分段锁 一.常见的锁 synchroni ...
- 三大JavaScript框架对比——AngularJS、BackboneJS和EmberJS
<三大JavaScript框架对比——AngularJS.BackboneJS和EmberJS> 本文转载自 作者:chszs,博客主页:http://blog.csdn.net/chs ...
- SD-WAN基本介绍
SD-WAN是什么? SD-WAN,即软件定义广域网络,是将SDN技术应用到广域网场景中所形成的一种服务.这种服务用于连接广阔地理范围的企业网络.数据中心.互联网应用及云服务,旨在帮助用户降低广域网的 ...
- R-CNN算法中NMS的具体做法
假设有20类,2000个建议框,最后输出向量维数2000*20,则每列对应一类,一行是各个建议框的得分,NMS算法步骤如下: ① 对2000×20维矩阵中每列按从大到小进行排序: ② 从每列最大的得分 ...
- A way to use NAT network by using Oracle virtualBox
That is true. Vmware is easy and confortable tools to make vitrual machines than Oracle virtual box ...
- Servlet简单的登陆窗口
web.xml配置: jsp代码: 注意:action书写的是为这次登陆做处理类的别名,method就是请求的方式 Get请求方式没有请求实体 //如果只是看效果就光写一下service方法就行了 p ...
- dequeueReusableCellWithIdentifier 与 dequeueReusableCellWithIdentifier:forIndexPath 区别
参考:http://stackoverflow.com/questions/25826383/when-to-use-dequeuereusablecellwithidentifier-vs-dequ ...