在现如今的软件开发过程中,软件开发人员将很多的精力放在重复的编码中。特别是流行的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期的更多相关文章

  1. Eclipse 使用mybatis generator插件自动生成代码

    Eclipse 使用mybatis generator插件自动生成代码 标签: mybatis 2016-12-07 15:10 5247人阅读 评论(0) 收藏 举报 .embody{ paddin ...

  2. Mybatis-Plus一键生成代码

    Mybatis-Plus一键生成代码 一.闲言碎语 闲来无事看了看了MP的官网看到一键生成的代码更新了! 整个Ui风格都变了,遂决定瞅一眼新的代码生成器 官网地址~~ 二.引入依赖 新的代码生成只有在 ...

  3. 【Idea插件】kotlin的orm框架一键生成代码框架

    @font-face { font-family: octicons-link; src: url("data:font/woff;charset=utf-8;base64,d09GRgAB ...

  4. 使用mybatis插件自动生成代码以及问题处理

    1.pom.xml中加入依赖插件 <!-- mybatis generator 自动生成代码插件 --> <plugin> <groupId>org.mybatis ...

  5. mybatis generator maven插件自动生成代码

    如果你正为无聊Dao代码的编写感到苦恼,如果你正为怕一个单词拼错导致Dao操作失败而感到苦恼,那么就可以考虑一些Mybatis generator这个差价,它会帮我们自动生成代码,类似于Hiberna ...

  6. maven插件mybatis-generator生成代码配置

    鸣谢:http://my.oschina.net/u/1763011/blog/324106?fromerr=nJakGh4P (也可参看此博客进行配置) http://www.cnblogs.com ...

  7. Fiddler抓包一键生成代码

    首先我们的需求场景是 用Fiddler抓到某个接口调用后,用代码来模拟调用,一般我们写代码会有3个步骤: 1设置http请求相关的参数:header,method,url,cookie等 2设置pos ...

  8. 关于使用mybatis插件自动生成代码

    1.安装 mybatis 插件: 在 eclipse 中 点击 help-->Install New Software...--> Add --> local  选择插件中eclip ...

  9. maven插件mybatis-generator生成代码

    第一步,在pom中加入插件 <plugin> <groupId>org.mybatis.generator</groupId> <artifactId> ...

随机推荐

  1. 如何优雅的使用python中的代码注释

    在编写代码时,确保您的代码易于被其他人理解时很重要的,给变量,函数起合适的名字以及合理的组织代码都是很好的方法. 使用代码注释时增加代码可读性的另一种方便简单且重要的方法! 1.为什么代码注释如此重要 ...

  2. MySQL之正则

    八:正则匹配: 语法: select * from 表名 where 字段名 regexp "正则表达式"; PS:MySQL中正则匹配,不能使用\w等字幕作为匹配

  3. 5-2 使用antDesign的Table 及 modal(对话情景框) 功能

    1,进入antDesign官网,粘贴table代码 2,看代码各个部分实现什么功能,根据需求改代码 表格类似如下: 代码如下: const columns = [ { title: 'Name', d ...

  4. Day11 - H - Euclid's Game HDU - 1525

    Two players, Stan and Ollie, play, starting with two natural numbers. Stan, the first player, subtra ...

  5. Spring MVC中的ResponseEntity和ResponseBody的区别

    1.ResponseEntity的优先级高于@ResponseBody. 在不是ResponseEntity的情况下才去检查有没有@ResponseBody注解. 如果响应类型是ResponseEnt ...

  6. 标准模板库中的优先队列(priority_queue)

    //C++数据结构与算法(第4版) Adam Drozdek 著  徐丹  吴伟敏<<清华大学出版社>> #include<queue> priority_queu ...

  7. JDBC--处理事务

    1.事务是指一组逻辑操作单元,使数据从一种状态转换到另一种状态. 2.事务的四个属性: --1)原子性:事务是一个不可分割的工作单位,事务中的操作要么都发生要么都不发生: --2)一致性:事务必须是数 ...

  8. 条款01:视C++为一个语言联邦

    C++由四部分组成: 1)C. 2)Object-Oriented C++.classes,封装,多态,动态绑定(virtual函数) 3)Template C++.泛型编程. 4)STL. 对于内置 ...

  9. 修饰者模式(装饰者模式,Decoration)

    1. 装饰者模式,动态地将责任附加到对象上.若要扩展功能,装饰者提供了比继承更加有弹性的替代方案. 2.组合和继承的区别 继承.继承是给一个类添加行为的比较有效的途径.通过使用继承,可以使得子类在拥有 ...

  10. PHP+MySQL实现在线测试答题实例

    这个实例主要给大家介绍如何使用jQuery+PHP+MySQL来实现在线测试题,包括动态读取题目,答题完毕后台评分,并返回答题结果. 读取答题列表: $sql = "select * fro ...