idea @value提示_idea通过数据库生成java实体类(lombok版)

点击上方蓝色字体,选择“星标公众号”

优质文章,第一时间送达

1.连接数据库, 使用idea自带的插件Database

72e8e115c65b9edc9468e9d5c2c9ab48.png

55905f5fd38262007dfa26f146e38ac4.png

2.点击表名,右键。Scripted Extensions =>  Generate POJOs.groovy

94a49d66d8dab5107a6313ffa6860c0d.png

3.选择生成的实体类的位置

1c05d47ab25eb3bf7cac142c57d3a654.png

4.自定义的实体类已生成,其中@Data为我们生成了基本的get set toString方法,@Id注解在tk.mybatis插件中需要使用到,@ApiModelProperty注解生成swagger文档

Generate POJOs.groovy 脚本解释

import com.intellij.database.model.DasTableimport com.intellij.database.util.Caseimport com.intellij.database.util.DasUtil /* * Available context bindings: *   SELECTION   Iterable *   PROJECT     project *   FILES       files helper */ packageName = "com.topex.admin.entity;"    // 此处指定包路径,也就对应实体类中的package com.topex.admin.entity;typeMapping = [    // 此处指定对应的类型映射,如下:数据库中bigint对应生成java的Long,int|tinyint生成Integer...        (~/(?i)bigint/)                      : "Long",        (~/(?i)int|tinyint/)                 : "Integer",        (~/(?i)float|double|decimal|real/): "java.math.BigDecimal",        (~/(?i)date|datetime|timestamp/)       : "java.util.Date",        (~/(?i)time/)                     : "java.sql.Time",        (~/(?i)/)                         : "String"] FILES.chooseDirectoryAndSave("Choose directory", "Choose where to store generated files") { dir ->  SELECTION.filter { it instanceof DasTable }.each { generate(it, dir) }} def generate(table, dir) {  def className = javaName(table.getName(), true)  def fields = calcFields(table)  new PrintWriter(new OutputStreamWriter(new FileOutputStream( new File(dir, className + ".java")), "utf-8")).withPrintWriter { out -> generate(out, className, fields) }} def generate(out, className, fields) {   // 从这里开始,拼实体类的具体逻辑代码  out.println "package $packageName"  out.println ""  out.println ""  out.println "import lombok.Data;"     // 因为我使用了lombok插件,使用到了Data注解,所以在引包时加了这一行  out.println "import io.swagger.annotations.ApiModelProperty;"   // 同上,使用了swagger文档,所以引入到需要的注解  out.println "import javax.persistence.Id;"  // tk.mybatis插件需用时需要@id注解,所以引入,不需要就去掉  out.println ""  out.println "@Data"  out.println "public class $className {"  out.println ""  int i = 0  fields.each() {   // 遍历字段,按下面的规则生成    // 输出注释,这里唯一的是id特殊判断了一下,如果判断it.name == id, 则多添加一行@Id    if (it.name == "id") {      if (!isNotEmpty(it.commoent)) {        out.println "\t/**"        out.println "\t * 主键id"        out.println "\t */"        out.println "\t@ApiModelProperty(value = \"主键id\", position = ${i})"      }      out.println "\t@Id"    }    if (isNotEmpty(it.commoent)) {      out.println "\t/**"      out.println "\t * ${it.commoent}"      out.println "\t */"      out.println "\t@ApiModelProperty(value = \"${it.commoent}\", position = ${i})"    }    if (it.annos != "") out.println "  ${it.annos}"    out.println "\tprivate ${it.type} ${it.name};"    out.println ""    i++  }  out.println ""  out.println "}"} def calcFields(table) {  DasUtil.getColumns(table).reduce([]) { fields, col ->    def spec = Case.LOWER.apply(col.getDataType().getSpecification())    def typeStr = typeMapping.find { p, t -> p.matcher(spec).find() }.value    fields += [[                       name : javaName(col.getName(), false),                       type : typeStr,                       commoent: col.getComment(),                       annos: ""]]  }} def isNotEmpty(content) {  return content != null && content.toString().trim().length() > 0} def javaName(str, capitalize) {  def s = com.intellij.psi.codeStyle.NameUtil.splitNameIntoWords(str)          .collect { Case.LOWER.apply(it).capitalize() }          .join("")          .replaceAll(/[^\p{javaJavaIdentifierPart}[_]]/, "_")  capitalize || s.length() == 1? s : Case.LOWER.apply(s[0]) + s[1..-1]}
温暖提示

为了方便大家更好的学习,本公众号经常分享项目干货源码案例给大家去练习,如果本公众号没有你要学习的功能案例,你可以联系小编(微信:wcy18898375730)提供你帮助哦!

5ab3d5c9d39a7e45a313a3dbd39db13a.png

@ConfigurationProperties和@Value的区别 目录1 前言2 @ConfigurationProperties和@value的区别3 用法3.1 @ConfigurationProperties3.2 @Value 4 指定配置文件在平时开发中,我们会将大量的参数配置在application.properties或者application.yml文件中,通过@ConfigurationProperties注解或者@value注解可以很方便的拿到这些值。两种注解斗能够读取配置文件中属性并绑定到javaBean中,但两种存在以下不同1)使用位置不同@Con 阅读详情

相关推荐

IDEA - 【抽取方法参数】快速抽取(方法,变量,字段,常量,参数等),重构,优化代码

文章目录IDEA - 【抽取方法参数】快速抽取(方法,变量,字段,常量,参数等),重构,优化代码1、抽取方法参数2、示例 IDEA - 【抽取方法参数】快速抽取(方法,变量,字段,常量,参数等),重构,优化代码 1、抽取方法参数 代码如下 选中字段,然后右键 或者通过菜单栏 通过抽取参数,可以向方法体重快速添加参数 2、示例 /** * @author Created by 谭健 on 2021/1/22. 星期五. 16:40. * © All Rights Reserved. */ pub

简简单单Onlinezuozuo 2639

idea配置数据库,反向生成实体类demo,支持lombok,swagger2注解

idea配置数据库,反向生成实体类demo,支持lombok,swagger2注解

JAVA:Spring Boot 集成 Lombok 注解工具库

Lombok是一个通过注解简化Java开发的工具库,能自动生成Getter/Setter、构造方法、日志工具等常见代码。本文从基础到高级用法全面介绍Lombok,包括@Data、@Builder等核心注解的使用,以及日志集成、链式调用、不可变对象(@Value)等高级功能。文章还提供了Maven依赖配置和IDE插件安装指南,并强调Lombok在提升开发效率的同时,需注意代码可读性。适合Java开发者快速掌握Lombok的核心功能,有效减少样板代码。

木头 1335

Spring框架注解开发(IDEA)——关于@Value解读(超详细)

Spring框架,注解开发

weixin_59015876的博客 1237

利用IDEA快速生成实体类

前言:idea 功能很强大,以前不知道有这样的提升工作效率的方法,虽然有的工具确实可以直接生成实体类,mapper文件,还有dao接口,但是个人觉得涉及到复杂业务还是只生成实体类比较好,后面部分就自己搞定就可以了。 步骤: 1、点击右侧的datesource图标,要是没有该图标,请去自行百度 2、点击 + 号 3、选择 datasource 4、选择 mysql 1、填写一个连接名,随便填什么都行 2、不用选择,默认就行 3、填写数据库连接的 IP地址,比如本地数据库可以填写:localhost或者127

zth_killer的博客 1049

Java开发神器Lombok使用详解

最近正在写SpringBoot系列文章和录制视频教程,每次都要重复写一些Getter/Setter、构造器方法、字符串输出的ToString方法和Equals/HashCode方法等。甚是浪费时间,也影响代码的可读性。因此,今天就给大家推荐一款Java开发神器——Lombok,让代码更简单易读。 什么是Lombok Lombok是一款Java开发插件,可以通过它定义的注解来精简冗长和繁琐的代码,主...

程序新视界 2万+

LombokJava开发神器Lombok使用详解

引言 开发中经常要创建一些实体类并要添加get/set方法、构造方法、toString方法等重复性工作,虽然IDEA有快捷键ALT+INSERT快速实现,但我们想通过某种方式可以自动生成。这个时候就需要用到本篇的主角——Lombok。 简介 Lombok是一款Java开发插件,可以通过它定义的注解来精简代码,主要针对简单的Java模型对象(Plain Ordinary Java Object,即P...

少侠露飞的学习笔记 3951

IDEA 安装lombok插件

lombok官网介绍:https://www.projectlombok.org/features/all lombok官网介绍 Project Lombok是一个java库,它可以自动插入你的编辑器并构建工具,为你的java加油。 永远不要再写另一个getter或equals方法,使用一个注释,您的类具有一个功能齐全的构建器,自动化您的日志记录变量等等。 IDEA安装 File >...

程序工厂 3773

IDEA-Lombok注解

Lombok 是一个 Java 第三方库,可以透过简单的注解省略 Java 的代码,像是 setter、getter、logger...等,目的在消除冗长的代码和提高开发效率 假设你在类上加上了一个@Getter和@Setter注解,那你就不用在写烦人的 getter 和 setter,lombok 会自动帮你产生出来啦! 之所以加个 lombok 的 @Getter 注解就可以帮我们自动生成所有变量的 getter,是因为 lombok 参与了 Java 在 compile 阶段生成.c...

兴趣是最好的老师 1735

Lombok 介绍

Lombok使用 介绍 在项目中使用Lombok可以减少很多重复代码的书写。比如说getter/setter/toString等方法的编写。 IDEA中的安装 打开IDEA的Setting –> 选择Plugins选项 –> 选择Browse repositories –> 搜索lombok –> 点击安装 –> 安装完成重启IDEA –> 安装成功 引入依赖 在项目中

MoTui的博客 13万+

Idea lombok简化Entity对象代码

lombok的作用一句就是简化bean,entity等类的get、set、toString、equals和hashCode方法,虽然现在市面上的IDE基本都支持通过快捷键自动生成这些,但自动生成这些代码后,如果bean中的属性一旦有修改、删除或增加时,需要重新生成或删除get/set等方法,给代码维护增加负担,而通过lombok就可以免去代码修改时重新维护的工作量;另外还有日志、校验非空、同步...

sanfye的专栏 1243

Lombok实战:5分钟搞定Java实体类代码简化(附IDEA插件配置指南)

本文详细介绍了如何使用Lombok简化Java实体类开发,通过注解自动生成getter/setter、toString等方法,大幅提升编码效率。文章包含Lombok核心注解详解、IDEA插件配置指南及常见问题解决方案,帮助开发者5分钟内快速上手这一高效工具。

weixin_29202687的博客 262

别再手动写构造器了!IntelliJ IDEA + Lombok的@AllArgsConstructor,5分钟搞定Java实体类与Service层

本文介绍了如何利用IntelliJ IDEALombok的@AllArgsConstructor注解高效生成Java实体类与Service层的构造器,大幅减少样板代码并提升开发效率。详细讲解了环境配置、基础应用、依赖注入最佳实践及高级技巧,帮助开发者快速掌握这一实用工具。

weixin_30399821的博客 505

idea 安装 lombok插件

Lombok使用 介绍 LombokJava语言的实用工具,确切的说,应该说是一个很好用的插件,对,插件!可以用来帮助开发人员消除Java代码的冗长,尤其是对于简单的Java对象(POJO),它通过注解实现这一目的,而不是一大段一大段的Java方法。 IDEA中的安装 打开IDEA的Setting –> 选择Plugins选项 –> 选择Browse repositor...

一个写了10年bug的程序员日常笔记。 3万+

Lombok工具 : 常用注解介绍 ()

Lombok详细介绍, 全

Guizy 1万+

lombokidea中安装以及使用

一、lombok简介 一个标准的java bean需要有getter和setter方法,有时候些代码很冗余,而lombok可以简化我们的代码,在源码中没有getter和setter方法,但是在编译生成的字节码文件中有getter 和setter方法,这只是lombok其中的一个功能。 二、idea中安装lombok 1、给 Idea 安装 lombok插件,Setting-->Plugin

西楚小羽的专栏 1万+

SpringBoot系列-- SpringBoot中使用lombok简化开发

目录1. 项目环境2.添加依赖和安装插件3. 实体类常用注解总结3.1 @Setter、@Getter3.1.1 注解在属性上3.1.2 注解在类上3.1.3 注解对静态属性和final类型属性3.2 @NoArgsConstructor3.3 @AllArgsConstructor3.4 @RequiredArgsConstructor3.5 @ToString3.6 @EqualsAndHashCode3.7 @Data(常用)3.8 @Builder3.9 @Value3.10 @NonNull4.

Gang-bb的博客 3013

lombok (idea中找不到get、set方法)

载:https://blog.csdn.net/sj3913/article/details/87923877 刚从git拉取的工程,发现idea报错,找不到bean中的的get、set方法。是因为类中使用了lombok的注解@Data,idea本身是不理解这个注解的,会报错找不到set方法,所以需要在idea中安装插件lombok plugin。 Lombok 是一款 Java 开发插件,使得 Java 开发者可以通过其定义的一些注解来消除业务工程中冗长和繁琐的代码,尤其对于简单的 Java .

wangooo的博客 8346

LombokJava 开发效率神器

LombokJava 开发者必备的效率工具,通过注解消除样板代码,大幅提升开发效率和代码质量。本文从原理、集成、核心注解、实战案例、避坑指南全方位总结

weixin_52035479的博客 468
上一篇: python combination_python 生成排列、组合以及选择
下一篇: python0o1010_Python第一节【语言类型-数字】
weixin_39870664
博客等级 码龄9年 62粉丝 147原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值