java 코드는domain에 따라 자동으로 DAO 층 작은 tool 생성 (기능 추가 필요)
5255 단어 domain
domain 클래스를 제공하면 대응하는 DAO의 Crud 동작을 자동으로 생성합니다.
package com.wjj.domain;
public class User {
private int id;
private String username;
private String password;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
package com.wjj.generator;
import com.wjj.io.utils.IOUtil;
public class DAOGenerator {
public static void Generate(Class clazz) throws Exception{
StringBuilder sBuilder = new StringBuilder();
sBuilder.append("package com.wjj.generated.dao;");
sBuilder.append("
");
sBuilder.append("import " + clazz.getPackage().getName() + "."
+ clazz.getSimpleName() + ";");
sBuilder.append("
");
sBuilder.append("public class " + clazz.getSimpleName() + "DAO");
sBuilder.append("
");
sBuilder.append("{");
sBuilder.append("
");
GenerateInsert(clazz, sBuilder);
GenerateDelete(clazz, sBuilder);
GenerateUpdate(clazz, sBuilder);
GenerateList(clazz, sBuilder);
sBuilder.append("}");
sBuilder.append("
");
IOUtil.writeStringFileToDesk(sBuilder.toString().getBytes(),clazz.getSimpleName()+"DAO");
System.out.println("=====================");
System.out.println(sBuilder.toString());
}
protected static void GenerateInsert(Class clazz, StringBuilder sBuilder) {
sBuilder.append("public void Insert" + clazz.getSimpleName() + "("+clazz.getSimpleName()+ " " + clazz.getSimpleName().toLowerCase() +"){");
sBuilder.append("
");
System.out
.println(" you can append jdbc or hibernate or ibatis ... to here");
sBuilder.append("}");
sBuilder.append("
");
}
protected static void GenerateDelete(Class clazz, StringBuilder sBuilder) {
sBuilder.append("public void Delete" + clazz.getSimpleName() + "("+clazz.getSimpleName()+ " " + clazz.getSimpleName().toLowerCase() +"){");
sBuilder.append("
");
System.out
.println(" you can append jdbc or hibernate or ibatis ... to here");
sBuilder.append("}");
sBuilder.append("
");
}
protected static void GenerateUpdate(Class clazz, StringBuilder sBuilder) {
sBuilder.append("public void Update" + clazz.getSimpleName() + "("+clazz.getSimpleName()+ " " + clazz.getSimpleName().toLowerCase() +"){");
sBuilder.append("
");
System.out
.println(" you can append jdbc or hibernate or ibatis ... to here");
sBuilder.append("}");
sBuilder.append("
");
}
protected static void GenerateList(Class clazz, StringBuilder sBuilder) {
sBuilder.append("public void Query" + clazz.getSimpleName() + "(){");
sBuilder.append("
");
System.out
.println(" you can append jdbc or hibernate or ibatis ... to here");
sBuilder.append("}");
sBuilder.append("
");
}
}
package com.wjj.io.utils;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
public class IOUtil {
public static void writeStringFileToDesk(byte[] data,String fileName)throws Exception{
File file = new File(System.getProperty("user.dir")+"\\src\\com\\wjj\\generated\\dao",fileName + ".java");
if(!file.getParentFile().exists()){
file.getParentFile().mkdirs();
}
System.out.println("file.getAbsolutePath()---> " + file.getAbsolutePath());
OutputStream os = new FileOutputStream(file);
os.write(data,0,data.length);
os.close();
}
}
package com.wjj.test;
import com.wjj.generator.DAOGenerator;
public class TestMain {
public static void main(String[] args) throws Exception{
Class clazz = Class.forName("com.wjj.domain.User");
System.out.println(clazz.getSimpleName());
DAOGenerator.Generate(clazz);
}
}
이 도구는 최종적으로 하나의domain을 통해 자동으로dao, 서비스, 액션 및 프론트 데스크톱 페이지 기능을 생성할 것입니다.
공사가 외부망에 접속하지 못하게 했기 때문에 회사가 외부망에 접속할 수 없기 때문에 회사 안에서 이루어진 것을 모두 공개할 수 없기 때문에 집에서 다시 하나를 쓸 수밖에 없었다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
DDD에서 큰 집계를 만드는 방법계속 읽기 전에 DDD 및 관련 개념에 대해 잘 알고 있다고 가정합니다(소개를 포함하지 않은 점에 대해 죄송합니다. DDD에 대한 소개 기사가 이미 너무 많아서 다른 글을 쓰고 싶지는 않습니다.) . 그렇다면 DDD...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.