java 코드는domain에 따라 자동으로 DAO 층 작은 tool 생성 (기능 추가 필요)

5255 단어 domain
운영 환경 XP MYECLIPSE85 JDK1.6.30
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, 서비스, 액션 및 프론트 데스크톱 페이지 기능을 생성할 것입니다.
공사가 외부망에 접속하지 못하게 했기 때문에 회사가 외부망에 접속할 수 없기 때문에 회사 안에서 이루어진 것을 모두 공개할 수 없기 때문에 집에서 다시 하나를 쓸 수밖에 없었다.

좋은 웹페이지 즐겨찾기