第一步
通过加入hibernate框架,通过hibernate来自动生成model层的东西,用完撤出hibernate框架。
第二步
package com.yrmt.controller;
import java.io.*;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
/**
* Created by 存 on 2016/8/4.
*/
public class YRMTool {
//在idea下model层的路径
public String y_path = "E:\\IDEAWorkSpace\\finance\\src\\main\\java\\com\\yrmt\\model";
//要生成的路径
public String x_path = "E:\\Temp\\com\\yrmt";
//包名
public String pack_name = "com.yrmt";
//生成时间
private String time = "";
private ArrayList<String> mname = new ArrayList<String>();
public static void main(String[] args) throws Exception {
new YRMTool().domain();
}
public void domain() {
setMname();//设置数组
SimpleDateFormat sf = new SimpleDateFormat("yyyy/MM/dd");
time = sf.format(new Date());//设置写入时间
File dao_file = new File(x_path + "\\dao");
dao_file.mkdirs();//生成dao包
File service_file = new File(x_path + "\\service\\impl");
service_file.mkdirs();//生成service包 和impl包
File conf_file = new File(x_path + "\\cm");
conf_file.mkdir();//资源配置包
for (String cname : mname) {//生成代码
writeDao(cname);//写入dao包的所有
writeSer(cname);//写入service包所有
writeImp(cname);//写入impl包所有
writeMapper(cname);//写入对应mapper配置文件
}
writeMyBatis_config();//mybatis配置
}
private void writeMapper(String name) {
File file = new File(x_path + "\\cm\\" + name + "Mapper.xml");
BufferedWriter bw = null;
try {
file.createNewFile();
bw = new BufferedWriter(
new OutputStreamWriter(
new FileOutputStream(file)));
} catch (IOException e) {
System.out.println(name + "Mapper.xml 创建失败");
}
StringBuffer sb = new StringBuffer();
sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>");
sb.append("<!DOCTYPE mapper");
sb.append(" PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\"");
sb.append("\"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">");
sb.append("<mapper namespace=\"" + pack_name + ".dao." + name + "DAO\">");
sb.append("</mapper>");
try {
bw.write(sb.toString());
bw.flush();
bw.close();
} catch (IOException e) {
System.out.println(name + "Mapper.xml 更新失败");
}
}
//mybatis资源配置
private void writeMyBatis_config() {
File file = new File(x_path + "\\cm\\mybatis-config.xml");
BufferedWriter bw = null;
try {
file.createNewFile();
bw = new BufferedWriter(
new OutputStreamWriter(
new FileOutputStream(file)));
} catch (IOException e) {
System.out.println("mybatis_congif.xml 创建失败");
}
StringBuffer sb = new StringBuffer();
sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>");
sb.append("<!DOCTYPE configuration ");
sb.append("PUBLIC \"-//mybatis.org//DTD Config 3.0//EN\"");
sb.append("\"http://mybatis.org/dtd/mybatis-3-config.dtd\">");
sb.append("<configuration><!-- 命名空间 --><typeAliases>");
for (String n : mname) {
sb.append(" <typeAlias alias=\"" + n + "\" type=\"" + pack_name + ".model." + n + "\"/>");
}
sb.append("</configuration>");
try {
bw.write(sb.toString());
bw.flush();
bw.close();
} catch (IOException e) {
System.out.println("文件写入失败");
}
}
private void writeImp(String name) {
File file = new File(x_path + "\\service\\impl\\" + name + "ServiceImpl.java");
BufferedWriter bw = null;
try {
file.createNewFile();
bw = new BufferedWriter(
new OutputStreamWriter(
new FileOutputStream(file)));
} catch (Exception e) {
System.out.println("创建-" + name + "impl-错误");
}
StringBuffer sb_imp = new StringBuffer();//向内添加代码
sb_imp.append("package " + pack_name + ".service.impl;");
sb_imp.append("import org.springframework.beans.factory.annotation.Autowired;");
sb_imp.append("import org.springframework.stereotype.Service;");
sb_imp.append("import " + pack_name + ".dao." + name + "DAO;");
sb_imp.append("import " + pack_name + ".model." + name + ";");
sb_imp.append("import " + pack_name + ".service." + name + "Service;");
sb_imp.append("@Service\r\n public class " + name + "ServiceImpl implements " + name + "Service{");
String lname = name.toLowerCase();
sb_imp.append("@Autowired \r\n private " + name + "DAO " + lname + "DAO;}");
try {
bw.write(sb_imp.toString());
bw.flush();
bw.close();
} catch (IOException e) {
System.out.println("impl包写入失败:" + name);
}
}
private void writeSer(String name) {
File file = new File(x_path + "\\service\\" + name + "Service.java");
BufferedWriter bw = null;
try {
file.createNewFile();
bw = new BufferedWriter(
new OutputStreamWriter(
new FileOutputStream(file)));
} catch (Exception e) {
System.out.println("创建-" + name + "Service-错误");
}
StringBuffer sb_ser = new StringBuffer();//向内添加代码
sb_ser.append("package " + pack_name + ".service;");
sb_ser.append("import " + pack_name + ".model." + name + ";");
sb_ser.append("public interface " + name + "Service{}");
try {
bw.write(sb_ser.toString());
bw.flush();
bw.close();
} catch (IOException e) {
System.out.println("service包写入错误:" + name);
}
}
private void writeDao(String name) {
File file = new File(x_path + "\\dao\\" + name + "DAO.java");
BufferedWriter bw = null;
try {
file.createNewFile();
bw = new BufferedWriter(
new OutputStreamWriter(
new FileOutputStream(file)));
} catch (Exception e) {
System.out.println("创建-" + name + "DAO-错误");
}
StringBuffer sb_dao = new StringBuffer();//向内添加代码
sb_dao.append("package " + pack_name + ".dao;");
sb_dao.append("import " + pack_name + ".model." + name + ";");
sb_dao.append("/**\n * Created by 存 on " + time + ".\n*/");
sb_dao.append("public interface " + name + "DAO {}");
try {
bw.write(sb_dao.toString());
bw.flush();
bw.close();
} catch (IOException e) {
System.out.println("dao 写入失败:" + name);
}
}
//对于有些model层下生成的有其他注解的,此方法可以去掉上面注解,保留 @Override 注解
private void remove_annotation(File file) throws IOException {
BufferedReader br = new BufferedReader(
new InputStreamReader(
new FileInputStream(file)));
StringBuffer sb = new StringBuffer();
String temp;
while ((temp = br.readLine()) != null) {
if (temp.indexOf("@Override") != -1 || temp.indexOf("@") == -1) {
sb.append(temp);
}
}
br.close();
BufferedWriter bw = new BufferedWriter(
new OutputStreamWriter(
new FileOutputStream(file)));
bw.write(sb.toString());
bw.flush();
bw.close();
}
//将model层下所有的实体类的名字放在 mname下
private void setMname() {
File m_path = new File(y_path);
for (File f : m_path.listFiles()) {
mname.add(f.getName().replace(".java", ""));
}
}
}
版权声明:本文为sinat_32836653原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。