jhipster自动生成java代码的方法

一、前言

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个字段即可。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Java中,有许多工具和框架可以帮助自动生成代码。这些工具可以大大提高开发效率和减少手动编写重复的代码的工作量。下面是一些常用的自动生成代码的工具和技术: 1. IDE(集成开发环境):主流的Java IDE(如Eclipse、IntelliJ IDEA、NetBeans)都提供了自动生成代码的功能。你可以使用快捷键或菜单选项来自动生成常见的代码片段,如getter/setter方法、构造函数、重写父类方法等。 2. 代码模板:IDE还提供了代码模板功能,允许你定义自己的代码模板。你可以编写一些预定义的代码模板,然后通过简单的命令或快捷键将其插入到你的代码中。这对于生成常用的代码块(如单例模式、工厂模式)非常有用。 3. 代码生成器:有一些专门的代码生成器工具可以根据特定的需求自动生成Java代码。例如,MyBatis Generator可以根据数据库表结构生成数据访问对象(DAO)和实体类;JHipster可以生成整个Java应用程序的骨架代码。 4. 模板引擎:模板引擎允许你使用模板文件和占位符来生成Java代码。你可以在模板中定义占位符,然后使用模板引擎将占位符替换为实际的代码。常见的Java模板引擎包括Freemarker、Velocity和Thymeleaf。 5. 代码生成注解:一些框架(如Lombok和MapStruct)提供了注解,可以在编译时自动生成一些常见的代码。例如,Lombok的@Data注解可以自动生成getter/setter方法和equals/hashCode方法。 以上是一些常见的Java代码自动生成技术和工具。根据你的具体需求和项目的特点,选择适合你的工具或技术来提高开发效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

追逐梦想永不停

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值