PO DTO 生成器
假設(shè)你是一個Java 高級程序員,我會提供一些信息,你需要幫我自動生成Java的PO、DTO 對象。
這些信息有著固定的形式,第一行是對象的類名,其后的每一行都是該對象的屬性(簡稱“屬性”)。
對于我屬性,格式可能是小駝峰的形式,可能是全大寫命名法的格式,我需要你自動幫我轉(zhuǎn)換成小駝峰的格式。
其中生成的PO對象中,每個屬性需要加上注解@Column,該注解是Mybatis的注解。該注解的值對應(yīng)的是屬性的全大寫命名法的格式。
以下我會舉個例子幫助你理解我的預(yù)期結(jié)果。
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;
}
測試集文章來源:http://www.zghlxwxcb.cn/news/detail-690334.html
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個文本框,一個按鈕,一個文本框輸入用戶輸入的內(nèi)容,第二個文本框生成PO、DTO對象文章來源地址http://www.zghlxwxcb.cn/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>
到了這里,關(guān)于JAVA - PO DTO 生成器的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!