JAVA - PO DTO 生成器

这篇具有很好参考价值的文章主要介绍了JAVA - PO DTO 生成器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

PO DTO 生成器

假设你是一个Java 高级程序员,我会提供一些信息,你需要帮我自动生成Java的PO、DTO 对象。
这些信息有着固定的形式,第一行是对象的类名,其后的每一行都是该对象的属性(简称“属性”)。
对于我属性,格式可能是小驼峰的形式,可能是全大写命名法的格式,我需要你自动帮我转换成小驼峰的格式。
其中生成的PO对象中,每个属性需要加上注解@Column,该注解是Mybatis的注解。该注解的值对应的是属性的全大写命名法的格式。
以下我会举个例子帮助你理解我的预期结果。

User
id
name
batchName

生成的PO对象如下:

public class UserPO{
	@Column("ID")
	private String id;
	
	@Column("NAME")
	private String name;

	@Column("BATCH_NAME")
	private String batchName;
}

生成的DTO对象如下:

public class UserDto{
	private String id;
	
	private String name;

	private String batchName;
}

测试集

Student
id
name
sex
grade
teacherName


Teacher
id
name
subject
studentCount

PO,DTO生成器-Java代码版本

import java.util.ArrayList;  
import java.util.List;  
import java.util.Scanner;  
  
public class JavaCodeGenerator {  
    public static void main(String[] args) {  
        Scanner scanner = new Scanner(System.in);  
        // Read the class name  
        String className = scanner.nextLine().trim();  
  
        // Read the properties  
        List<String> properties = new ArrayList<>();  
        while (scanner.hasNextLine()) {  
            String property = scanner.nextLine().trim();  
            if (property.isEmpty()) {  
                break;  
            }  
            properties.add(property);  
        }  
  
        // Generate PO class  
        System.out.println("public class " + className + "PO {");  
        for (String property : properties) {  
            String columnName = toUpperCaseSnakeCase(property);  
            System.out.println("\t@Column(\"" + columnName + "\")");  
            System.out.println("\tprivate String " + property + ";");  
            System.out.println();  
        }  
        System.out.println("}");  
        System.out.println();  
  
        // Generate DTO class  
        System.out.println("public class " + className + "Dto {");  
        for (String property : properties) {  
            System.out.println("\tprivate String " + property + ";");  
        }  
        System.out.println("}");  
    }  
  
    private static String toUpperCaseSnakeCase(String property) {  
        StringBuilder sb = new StringBuilder();  
        for (int i = 0; i < property.length(); i++) {  
            char c = property.charAt(i);  
            if (Character.isUpperCase(c)) {  
                sb.append("_").append(c);  
            } else {  
                sb.append(Character.toUpperCase(c));  
            }  
        }        return sb.toString();  
    }  
}

PO DTO 生成器-html、js版本

把上面的java版本,改成js版本,需要一个html页面,该页面需要2个文本框,一个按钮,一个文本框输入用户输入的内容,第二个文本框生成PO、DTO对象文章来源地址https://www.toymoban.com/news/detail-690334.html

<!DOCTYPE html>
<html>

<head>
    <title>Java PO/DTO Generator</title>
</head>

<body>
    <h1>Java Code Generator</h1> <label for="className">Class Name:</label> <input type="text" id="className"><br><br>
    <label for="properties">Properties:</label> <textarea id="properties" rows="5" cols="30"></textarea><br><br> <button
        onclick="generateCode()">Generate Code</button><br><br> <label for="poCode">PO Code:</label> <textarea
        id="poCode" rows="10" cols="50" readonly></textarea><br><br> <label for="dtoCode">DTO Code:</label> <textarea
        id="dtoCode" rows="10" cols="50" readonly></textarea>
</body>


<script> 

    function generateCode() { 
            // Read input values 
            var className = document.getElementById("className").value.trim(); 
            var propertiesInput = document.getElementById("properties").value.trim();
            // Split properties by newline
            var properties = propertiesInput.split("\n");

            // Generate PO class
            var poCode = "public class " + className + "PO {\n";
            for (var i = 0; i < properties.length; i++) {
                var property = properties[i].trim();
                var columnName = toUpperCaseSnakeCase(property);
                poCode += "\t@Column(\"" + columnName + "\")\n";
                poCode += "\tprivate String " + property + ";\n\n";
            }
            poCode += "}";

            // Generate DTO class
            var dtoCode = "public class " + className + "DTO {\n";
            for (var i = 0; i < properties.length; i++) {
                var property = properties[i].trim();
                dtoCode += "\tprivate String " + property + ";\n";
            }
            dtoCode += "}";

            // Update output text areas
            document.getElementById("poCode").value = poCode;
            document.getElementById("dtoCode").value = dtoCode;
        }

        function toUpperCaseSnakeCase(property) {
            var snakeCase = "";
            for (var i = 0; i < property.length; i++) {
                var char = property.charAt(i);
                if (char === char.toUpperCase()) {
                    snakeCase += "_" + char;
                } else {
                    snakeCase += char.toUpperCase();
                }
            }
            return snakeCase;
        }
    </script>
</html>

到了这里,关于JAVA - PO DTO 生成器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 拿来就用的Java海报生成器ImageCombiner(一)

    如果您是UI美工大师或者PS大牛,那本文一定不适合你;如果当您需要自己做一张海报时,可以立马有小伙伴帮您实现,那本文大概率也不适合你。但是,如果你跟我一样,遇上到以下场景,最近公司上了不少传播方面的需求,需要合成各种营销图片。人事部和办公室的小伙伴

    2024年01月17日
    浏览(31)
  • 实现高性能ID生成器:详解Java雪花算法

    Java中的雪花算法(Snowflake Algorithm)是一种用于生成唯一ID的算法,可以在分布式系统环境中防止ID重复。这种算法最初由Twitter开发,用于生成Twitter的唯一ID,由于其简单易懂和高效,已成为目前最常用的生成唯一ID的算法之一。 雪花算法生成的ID是一个64位的长整型数字,可

    2023年04月27日
    浏览(28)
  • Selenium+Java+Maven(12):引入Allure作为报告生成器

    本篇作为Selenium+Java系列的补充,讲了如何使用Allure作为测试报告生成器,来替代TestNG自带的测试报告或ReportNG测试报告,生成更加美观的(领导更喜欢的)测试报表。话不多说,一起来学习吧~ 【1】安装及环境变量配置 需要先在本机安装一个Allure,并配置好环境变量。 下载

    2024年02月07日
    浏览(28)
  • 开箱即用轻量级雪花算法id生成器Java工具类

    在 Java后端研发过程中,对于分布式微服务来说,一般需要分布式 id生成. 这里分享一个非常好用且大多数情况下都可用的开箱即用轻量级雪花算法id生成器Java工具类。 这种方式生成的雪花算法生成器生成的唯一主键id,好处是不依赖第三方组件,轻量级,缺点是服务器的时钟

    2024年02月07日
    浏览(30)
  • java之VO,BO,PO,DO,DTO

    2024年02月19日
    浏览(25)
  • Java:mybatis-plus-generator-ui 基于Mybatis-Plus的代码自助生成器

    引用官方文档上的简介: 提供交互式的Web UI用于生成兼容mybatis-plus框架的相关功能代码,包括Entity,Mapper,Mapper.xml,Service,Controller等 ,可以自定义模板以及各类输出参数,也可通过SQL查询语句直接生成代码。 文档 github: https://github.com/davidfantasy/mybatis-plus-generator-ui gitee: https://g

    2024年02月10日
    浏览(40)
  • Java:PO、VO、BO、DO、DAO、DTO、POJO

    💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! PO是持久化对象,用于表示数据库中的实体或表的映射 通常与数据库表的结构和字段对应 PO的属性对应数据库表的字段,可以进行持久化操作(存储、读取、更新、删除) VO是值对象,用于封装数据 通常是不可变的,

    2024年02月12日
    浏览(32)
  • 基于Velocity开发代码生成器

    一、引言 在项目开发中,我们有碰到大量的简单、重复的增删改查需求,通过阅读 若依 框架https://github.com/yangzongzhuan/RuoYi 的代码生成器实现,结合我项目所用的技术栈,开发出本项目的代码生成器。 二、Velocity 简单介绍 1、Velocity是一个基于Java的模板引擎,我们可以往C

    2024年02月15日
    浏览(39)
  • OpenAI的语言生成器GPT-3受到了广泛关注。

    OpenAI,一家由Peter Thiel、Elon Musk、Reid Hoffman、Marc Benioff和Sam Altman等知名人士支持的非营利人工智能研究公司,最近发布了其第三代语言预测模型GPT-3。GPT-3的发布受到了早期用户的高度关注。 GPT-3是有史以来最大的语言模型,能够生成在许多情况下与人类文本难以区分的文本。

    2024年03月20日
    浏览(31)
  • 使用这些.NET代码生成器,开发效率飙升

    在.NET开发过程中,可以使用一些辅助的代码生成器来提高开发效率,之前在.NET FW时代有国产的“动软代码生成器”,现在早已不维护了。下面介绍几种.NET码生成器,供大家参考使用。最后一个代码生产器绝对优秀,推荐使用。 T4 Text Template Generator: 简介:T4是.NET框架提供的

    2024年02月05日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包