jhipster自动生成java代码的方法

news/2024/5/17 2:00:43/文章来源:https://blog.csdn.net/BHSZZY/article/details/129043242

一、前言

java springboot后台项目用到了jpa查询数据库,还用到了jhipster,这个东西可以自动生成基础的ControllerServiceDaoJavaBean等相关代码,减少重复开发。

在此总结下使用方法。

二、jhipster自动生成java代码的方法

1.需要先安装node,版本与其它同事的保持一致。

2.为了确保jhipster生成的代码与项目框架的版本匹配,可以从其他人的电脑上拷贝一个压缩包,然后解压到自己的C:\Users\myname\AppData\Roaming\npm目录下(myname是自己电脑的用户名),压缩包里包含以下文件:

//文件夹
node_modules
//文件
jhipster
//文件
jhipster.cmd

其中,node_modules文件夹中,有generator-jhipster文件夹,这个里面就是jhipster依赖包。

3.如果不需要第2步,那就可以使用命令:

npm install -g generator-jhipster
//npm install -g generator-jhipster@6.0.0
//npm uninstall -g generator-jhipster

全局安装jhipster,最终也会下载好generator-jhipster到相应目录。

4.打开java项目,可以在项目文件夹中新建一个.jhipster文件夹,然后在这个文件夹中建一个Mytable.json文件,内容样例如下:

{"changelogDate": "20221125234248","databaseType": "sql","dto": "mapstruct","entityTableName": "mytable","fields": [{"fieldName": "level","fieldValidateRules": ["required"],"fieldType": "Integer","javadoc": "级别"}, {"fieldName": "name","fieldValidateRulesMaxlength": 50,"fieldValidateRules": ["required", "maxlength"],"fieldType": "String","javadoc": "名称"},  {"fieldName": "creator","fieldValidateRulesMaxlength": 20,"fieldValidateRules": ["maxlength"],"fieldType": "String","javadoc": "创建人"}, {"fieldName": "createTime","fieldType": "Instant","javadoc": "创建时间"}, {"fieldName": "updator","fieldValidateRulesMaxlength": 20,"fieldValidateRules": ["maxlength"],"fieldType": "String","javadoc": "修改人"}, {"fieldName": "updateTime","fieldType": "Instant","javadoc": "修改日期"}, {"fieldName": "order","fieldType": "Integer","javadoc": "排序顺序"}, {"fieldName": "isDel","fieldType": "Integer","javadoc": "是否删除。1是逻辑删除。"}],"fluentMethods": true,"jpaMetamodelFiltering": true,"pagination": "pagination","relationships": [],"searchEngine": false,"service": "serviceClass"
}

5.使用cmd窗口,进入.jhipster文件夹,执行命令:

jhipster entity Mytable

然后会出现一些选项,可以选第一个,然后输入y,操作完毕后,就会在项目中自动创建好相关java文件。

6.自动创建好的java文件中,
com.my.web.rest.MytableResource.java是Controller层的文件;
com.my.service.MytableService.java是Service层文件;
com.my.repository.MytableRepository.java是Dao层文件;
com.my.service.dto.MytableDTO.java是JavaBean文件;
以及还有些其它文件。

7.项目中还用到了liquibase,所以生成的jhipster文件中还有:
项目名\src\main\resources\config\liquibase\master.xml,这个会新增一行include,项目启动会用(如果不用就可以注释那行);
项目名\src\main\resources\config\liquibase\changelog\20221125234248_added_entity_Mytable.xml,这个项目启动时也会用。

8.项目启动时,会读取20221125234248_added_entity_Mytable.xml,然后查询数据库的databasechangelog表(liquibase生成的),如果没有数据、就按照xml文件、新建一个数据库表Mytable
如果有改动没有校验通过,就会报错。(不过不影响项目启动,但是会影响其它xml文件的执行)

三、备注

1.这样建的数据库表,没有默认字段default,好像是目前jhipster不支持默认字段。
在这里插入图片描述

2.如果数据库表改字段导致项目启动校验没有通过,可以:
(1)修改Mytable.json,然后重新自动生成java代码(注意如果覆盖了用到的代码,就自己还原下代码);
(2)备份数据库表,然后给表改个名字;
(3)从databasechangelog中找到校验不通过的那行(项目启动报错会报MD5SUM字段内容,按这个字段搜下),备份后、删除这行。(或者把MD5SUM字段改对也行)
(4)操作完(3)后,启动项目,项目就会再次自动生成表Mytable,就不会报错了。

3.注意jhipster的json里的fieldValidateRulesMaxlengthfieldValidateRules不能乱用:

//        "fieldValidateRulesMaxlength": 11,
//        "fieldValidateRules": ["maxlength"],

如果用错,会导致调用controller层传入参数时,报错:

//这个是本人的level字段用了这2个值后报的错(integer类型)Resolved exception caused by handler execution: javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint 'javax.validation.constraints.Size' validating type 'java.lang.Integer'. Check configuration for 'level'

所以省事点还是不要用这2个字段即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_258365.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ShardingSphere-Proxy5 根据时间分表

0、软件版本 ShardingSphere-Proxy: 5.2.0 MySQL: 8.0.30 系统: win10 1、ShardingSphere-Proxy下载 我们可以在 官网 找到最新版ShardingSphere-Proxy下载,也可以在ShardingSphere仓库中下载 2、ShardingSphere-Proxy配置 …

哈希

一、unordered系列关联式容器 set、map / unordered_set、unorder_map 区别: set、map底层结构是红黑树,unordered_set、unorder_map底层结构是哈希表unordered系列是:无序、单向迭代器、效率高( O(1) )每个容器都自身提供swap成员函数&am…

用主动游泳的三维水母模型量化美杜莎的(medusan)机械空间的性能(二)(2017)

文章目录用主动游泳的三维水母模型量化美杜莎的(medusan)机械空间的性能(二)(2017)原文链接:https://doi.org/10.1017/jfm.2017.3结果3.1 参考案例的游泳动力学3.2 改变钟的主动和被动材料属性3.2.1 改变施加的张力3.2…

virtuoso数据库介绍

在国内,对海量 RDF 数据的管理有着迫切的实际需求; RDF:Resource Description Framework,是一个使用XML语法来表示的资料模型(Data model),用来描述Web资源的特性,及资源与资源之间的关系。 Virtuoso可以对…

LINUX内核链表

LINUX内核链表 一、传统链表的缺陷 传统的双向循环链表概念简单,操作方便,但存在有致命的缺陷,用一句话来概括就是: 每一条链表都是特殊的,不具有通用性。换句话说,对于每一种不同的数据,所构…

VMware安装Linux虚拟机后忘记root密码处理方法

OS版本:Red Hat 7.7 问题说明: 之前用VMWare安装了一台Linux虚机,由于长期没使用,导致忘记了root密码。所以需要修改root密码。 Root密码修改 现将修改root密码的操作步骤记录如下。 1.启动虚拟机,出现启动倒计时…

Git 基本操作之Git GUI界面和git命令行如何选择

1. 为啥推荐使用git命令行 我发现公司有很多的同事都喜欢使用git的GUI界面工具,喜欢鼠标点点点就完成了代码的提交,这种方式的确是比较简单便捷,但是却存在风险。先上一个事故给大家醒醒脑。 VScode Git 界面操作引发的惨案 上面的惨案是VS…

一种基于加密域的数字图像水印算法的设计与实现(附Matlab源码)

一种基于加密域的数字图像水印算法的设计与实现 项目介绍 毕设项目 题目:一种基于加密域的数字图像水印算法的设计与实现 随着数字媒体技术的发展,数字媒体版权的保护得到了越来越多人的重视,数字水印技术作为数字媒体版权保护的有效手段…

JavaScript 教程导读

JavaScript 是 Web 的编程语言。所有现代的 HTML 页面都使用 JavaScript,可以用于改进设计、验证表单、检测浏览器、创建cookies等。JavaScript 非常容易学。本教程将教你学习从初级到高级JavaScript知识。JavaScript 在线实例本教程包含了大量的 JavaScript 实例&a…

如何用P6软件编制项目进度计划(下)

卷首语 根据项目合同包含的工作范围进行工作分解(WBS),按照业主的要求及项目管理的需要,考虑不同阶段和层次,适时编制出项目管理所要求的的各级进度计划。 4搜集项目计划与进度控制相关信息 搜集与项目计划编制与进…

计算机SCI期刊审稿人,一般关注论文的那些问题? - 易智编译EaseEditing

编辑主要关心: (1)文章内容是否具有足够的创新性? (2)文章主题是否符合期刊的受众读者? (3)文章方法学是否合理,数据处理是否充分? (…

谷歌seo快速排名优化方法?谷歌seo排名技巧

本文主要分享关于谷歌seo排名如何快速提升的一些技巧。 本文由光算创作,有可能会被修改和剽窃,我们佛系对待这种行为吧。 谷歌seo快速排名优化方法?谷歌seo排名有什么技巧? 答案是:持续建设GPB外链可有效提升谷歌排…

TCP的拥塞控制算法之一:慢启动算法、拥塞避免算法

目录 什么是拥塞控制,为什么需要拥塞控制 慢启动 拥塞避免 什么是拥塞控制,为什么需要拥塞控制 拥塞通常是指从随着网络中的主机增加其发送速率并因为网络的原因使网络变得十分拥挤,此时会经常发生丢包现象,导致网络的传输效率…

Spring Boot集成Quartz实现定时任务的动态创建、启动、暂停、恢复、删除

一、整个 Quartz 的代码流程基本基本如下:首先需要创建我们的任务(Job),比如取消订单、定时发送短信邮件之类的,这是我们的任务主体,也是写业务逻辑的地方。创建任务调度器(Scheduler),这是用来调度任务的,主要用于启动…

【数据结构与算法】二分查找 移除元素

今日任务 数组理论基础 704.二分查找 27.移除元素 1.数组理论基础 (1)数组是存放在连续内存空间上的相同类型数据的集合。 注意: 数组下标都是从0开始的数组内存空间的地址是连续的 (2)正因为数组在内存空间的…

(考研湖科大教书匠计算机网络)第四章网络层-第四节:IP数据报的发送和转发过程

获取pdf:密码7281专栏目录首页:【专栏必读】考研湖科大教书匠计算机网络笔记导航 文章目录一:概述二:举例三:路由器可以隔离广播域本节对应视频如下 【计算机网络微课堂(有字幕无背景音乐版)】&…

记一次OOM

1,问题描述: 新上了一版代码之后,上游服务请求我们服务失败,报错:“服务不可用”,发现注册中心上服务掉线,查询日志:发现oom:Java heap space,GC overhead limit exceeded。 容易…

【R语言(二):Nomogram(诺莫图/列线图)绘制 / R语言逻辑回归分析】

R语言(二):Nomogram(诺莫图/列线图)绘制 1、基本概念 Nomogram,中文常称为诺莫图或者列线图。简单的说是将Logistic回归或Cox回归的结果进行可视化呈现。它根据所有自变量回归系数的大小来制定评分标准,给每个自变量的每个取值水平一个评分&…

Mysql使用规范(纯技术和实战建议)

1、事务隔级别: (强制):Repeatable-Read(重复读),且不能在会话操作时临时开启隔离级别。 注: Repeatable-Read(重复读)隔离级别解决不了幻读。 可用 show variables l…

内存泄漏检测组件 -- hook

目录 hook malloc与free出现的问题 builtin_return_address(N) C/CLinux服务器开发/后台架构师【零声教育】-学习视频教程-腾讯课堂 hook malloc与free出现的问题 #define _GNU_SOURCE #include <stdio.h> #include <dlfcn.h> #include <stdlib.h> /****…