在Java后端开发过程中,往往会遇到需要实现对数据表进行增删查改的接口,这种任务难度比较低,但是操作比较繁琐,而且代码实现起来也是千篇一律的样式,下面是一种自己总结出来的快速生成增删查改代码的方法,采用IntelliJ IDEA环境中的Easycode+Lombok插件实现。


【EasyCode】

1、下载Easycode插件。

在主界面的导航栏中依次打开File->Settings->Plugins->Browse repositories…

在弹出来的页面中搜索"EasyCode",点击右侧的"install"按钮进行下载。

2、在主界面的导航栏中依次打开View->Tool Windows->Database,调出侧边栏

3、配置数据库的连接,点击【+】->Data Source,可以选择自己的数据库类型,这里使用MySQL举例。


说明文字配在图片上。
如图所示,已经添加好啦~
这个数据库的名字叫classroom,里面存在一张名为student的表。

4、右击数据表,选择EasyCode->Generate Code


在弹出的信息框中的【Package】栏填写所生成的文件存放的地址,并勾选自己需要生成什么文件,最后点击OK。
文件的生成效果如下:


【Lombok】

这个插件主要是通过注解减少实体类中的冗余代码,使代码看起来更清爽、简洁。当然也存在着一些在代码侵入性、可维护性等方面的问题争议,但根据笔者目前的开发经验来看,它的优点是远多于缺点的,大伙不妨度量一下这个插件的优劣性,可以一起来探讨喔~下面开始介绍Lombok插件的使用方法。

1、先下载Lombok插件,下载方法在上文已经提到。

2、Maven用户在pom.xml添加Lombok的依赖
        <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency>
3、使用@Data注解实现Lombok的功能

先看看使用前的效果,利用上文的Student实体类进行举例说明。当Student实体类生成的时候,总会带着许多get、set方法。
使用@Data注解之后的代码:
看起来就整洁许多了呢~


最后来介绍一下@Data注解的作用。通过编译后的.class文件可以看到此注解的说明:(1)为所有字段提供一个get方法。(2)为所有不被transient修饰的字段(即所有被序列化的字段)提供toString、hashCode、equals方法。(3)为所有不被final修饰的字段提供set方法。(4)为final修饰的变量提供一个构造函数。
相当于@Getter、@Setter、@RequiredArgsConstructor、@ToString、@EqualsAndHashCode五个注解的合体。
进入代码中所提供的文档地址:https://projectlombok.org/features/Data,我们可以看到关于get、toString、hashCode、equals、set、constructor方法的源码实例。下面直接贴上文档中的代码,笔者在里面加了一些注释,用于标识上述方法是在哪里进行实现的。

import java.util.Arrays;

public class DataExample {private final String name;private int age;private double score;private String[] tags;

//constructor方法public DataExample(String name) {this.name = name;}

//get方法public String getName() {return this.name;}

//set方法void setAge(int age) {this.age = age;}

//get方法public int getAge() {return this.age;}//set方法public void setScore(double score) {this.score = score;}

//get方法public double getScore() {return this.score;}

//get方法public String[] getTags() {return this.tags;}

//set方法public void setTags(String[] tags) {this.tags = tags;}

//toString@Override public String toString() {return "DataExample(" + this.getName() + ", " + this.getAge() + ", " + this.getScore() + ", " + Arrays.deepToString(this.getTags()) + ")";}

//内部方法,被下面的equals方法调用,用于判断入参与自身两者是否为同一个类的实例或者入参是否属于自身的子类protected boolean canEqual(Object other) {return other instanceof DataExample;}

//equals方法@Override public boolean equals(Object o) {if (o == this) return true;if (!(o instanceof DataExample)) return false;    DataExample other = (DataExample) o;if (!other.canEqual((Object)this)) return false;if (this.getName() == null ? other.getName() != null : !this.getName().equals(other.getName())) return false;if (this.getAge() != other.getAge()) return false;if (Double.compare(this.getScore(), other.getScore()) != 0) return false;if (!Arrays.deepEquals(this.getTags(), other.getTags())) return false;return true;}

//hashCode方法@Override public int hashCode() {final int PRIME = 59;int result = 1;final long temp1 = Double.doubleToLongBits(this.getScore());    result = (result*PRIME) + (this.getName() == null ? 43 : this.getName().hashCode());    result = (result*PRIME) + this.getAge();    result = (result*PRIME) + (int)(temp1 ^ (temp1 >>> 32));    result = (result*PRIME) + Arrays.deepHashCode(this.getTags());return result;}}

vs 生成get set_使用EasyCode+Lombok快速生成增删查改的代码相关推荐

  1. IDEA try catch快捷键、 快速生成get set 方法快捷键、快速生成有参和无参构造方法快捷键

    IDEA try catch快捷键. 快速生成get set 方法快捷键.快速生成有参和无参构造方法 1. try catch快捷键 小伙伴们在写代码的过程中,有时需要抛出异常,手写太浪费时间,我们想 ...

  2. 【TcaplusDB知识库】GO快速上手PB表的增删查改操作

    PROTOBUF说明 PROTO表是基于PROTOBUF协议设计的TcaplusDB表,PROTOBUF协议是Google开源的通用RPC通信协议,用于TcaplusDB存储数据的序列化.反序列化等操 ...

  3. html5代码自动生成,vs code中设置html5 快速生成模板

    按英文的!和h:5都可以快速生成html模板,但是找了半天都找不到如何修改模板设置.只好自己从snippets里重新编写了一个html5的模板,以免自己以后忘了. 首先打开 snippets 然后输入 ...

  4. Word怎么生成目录?4个方法快速生成目录!

    案例:Word怎么生成目录 [想问下大家在使用Word时是怎么生成目录的呀?正在写毕业论文的我真的很急!感谢!] Word作为我们常用的办公软件,为我们的提供了很多便利.生成目录是在Word文档中创建 ...

  5. 生成的url无法显示_快速生成PDF文档~~

    官方文档:https://pypi.org/project/pdfkit/ 1.安装并配置环境 1)安装python-pdfkit:$ pip install pdfkit2)安装wkhtmltopd ...

  6. vue生成html页面,前端VUE页面快速生成

    VSCode左下角设置图标  ==>  用户代码片段  ==>  搜索 vue.json ==>  回车 复制粘贴以下代码 {//Place your snippets for vu ...

  7. 自动生成html的jar,用Maven快速生成带有依赖的可执行jar包

    一.背景 最近项目在做微服务的拆分,那么我们想让我们的容器启动更加的轻量级,所以我们选择放弃tomcat等容器,而是通过maven生成带有指定依赖的可执行jar包的方式进行处理,本文我将分享如何通过m ...

  8. php微信生成签名_php 微信支付签名快速生成

    数组转xml可以封装到common中,重要代码以下2行 //排序 ksort($post); //生成sign $str = urldecode(http_build_query($post)).'& ...

  9. vscode生成vue模板快捷键_vs code 快速生成vue 模板

    1.使用快捷Ctrl + Shift + P唤出控制台,然后输入snippets并选择.(或 文件>首选项>用户代码片断里面,输入 vue.json ,然后回车 )(或 file > ...

  10. Mybatis(一)——【快速入门、增删查改操作、核心配置文件描述及API】

    目录 原始JDBC操作 Mybatis简介 Mybatis开发步骤: Mybatis的映射文件概述 Mybatis的增删改查操作 MyBatis的核心配置文件概述 MyBatis核心配置文件层级关系 ...

最新文章

  1. js鼠标略过自动选择当前行
  2. 周鸿祎:quot;安全大脑quot;将成智能经济时代的网络安全中枢
  3. 解决Mysql错误Too many connections的方法
  4. extremeComponents(ec)源码分析
  5. “人工智能大脑”跳槽记:吴恩达所理解的智能
  6. OSPF综合(上)---配置
  7. .NET 云原生架构师训练营(模块二 基础巩固 依赖注入)--学习笔记
  8. 在.NET Core中用最原生的方式读取Nacos的配置
  9. 【Servlet】获取并输出服务器获得的数据
  10. php连接mysql数据,php连接mysql数据库
  11. 前端学习(3311):redux的state hook对象
  12. zuul 自定义策略_如何为您的社区定义指标策略
  13. 我的世界java版使用剑_我的世界:JAVA版藏“私货”内置绝世好剑与神功,你玩的版本有吗...
  14. appium 处理滑动的方法
  15. php 调试常用函数,PHP几个常用的去空、分组、调试数组函数
  16. 获取数据库链接Junit
  17. 在.NET外散步之我爱贪吃蛇Python -常见数据结构(新浪和百度云平台即将推出Python免费空间)...
  18. Django根据现有数据库建立model
  19. CTC算法详解之训练篇
  20. 热电传感器(1)——原理和定律

热门文章

  1. KVC 与 KVO 理解
  2. PhotoShop如何给字体添加下划线
  3. PHPExcel按单元格读取数据
  4. Android的ADT的安装
  5. 2006年最值得期待的十种技术
  6. elasticsearch删除索引
  7. 企业在信息化建设上乘之选:软件快速开发框架
  8. k8s集群部署二(自签TLS证书)
  9. The way to Go(5): 文件名、关键字与标识符
  10. js计算html的font-size