首页 > 代码库 > SSH整合_代码生成器

SSH整合_代码生成器

package cn.itcast.invoice.util.generator;import java.io.BufferedWriter;import java.io.File;import java.io.FileWriter;import java.lang.reflect.Field;import java.lang.reflect.Modifier;import cn.itcast.invoice.invoice.storeoper.vo.StoreOperModel;//生成器public class GeneratorUtil {	private Class clazz;	private String all;					// EmpModel	private String small;				// emp	private String big;					// Emp	private String little;				// e	private String pkg;					// cn.itcast.invoice.auth	private String dir;					// cn\itcast\invoice\auth		public static void main(String[] args) throws Exception {		// 只要你提供Model我就可以给你生成你要的所有文件		//EmpModel,RoleModel,ResModel,MenuModel		//SupplierModel,GoodsTypeModel,GoodsModel		//OrderModel,OrderDetailModel		//StoreModel,StoreDetailModel,StoreOperModel		new GeneratorUtil(StoreOperModel.class);		System.out.println("请添加Action在struts.xml中的定义");		System.out.println("请添加关联关系,位置hbm.xml");		System.out.println("请添加自定义查询条件数据层实现,位置Impl");		System.out.println("请添加自定义查询条件,位置QueryModel");		System.out.println("运行完毕!");	}		public GeneratorUtil(Class clazz) throws Exception {		this.clazz = clazz;		// -1.数据初始化		dataInit();		// 0.生成目录(包)		generatorDirectory();		// 1.QueryModel		generatorQueryModel();		// 2.hbm.xml		generatorHbmXml();		// 3.Dao		generatorDao();		// 4.Impl		generatorImpl();		// 5.Ebi		generatorEbi();		// 6.Ebo		generatorEbo();		// 7.Action		generatorAction();		// 8.applicationContext-**.xml		generatorApplicationContextXml();	}	// 8.applicationContext-**.xml	private void generatorApplicationContextXml() throws Exception {		File f = new File("resources/applicationContext-"+small+".xml");		if(f.exists()){			return;		}		f.createNewFile();				BufferedWriter bw = new BufferedWriter(new FileWriter(f));		bw.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");		bw.newLine();				bw.write("<beans xmlns=\"http://www.springframework.org/schema/beans\"");		bw.newLine();				bw.write("	xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"");		bw.newLine();				bw.write("	xsi:schemaLocation=\"");		bw.newLine();				bw.write("		http://www.springframework.org/schema/beans ");		bw.newLine();				bw.write("		http://www.springframework.org/schema/beans/spring-beans.xsd");		bw.newLine();				bw.write("		\">  ");		bw.newLine();				bw.write("	<!-- Action -->");		bw.newLine();				bw.write("	<bean id=\""+small+"Action\" class=\""+pkg+".web."+big+"Action\" scope=\"prototype\">");		bw.newLine();				bw.write("		<property name=\""+small+"Ebi\" ref=\""+small+"Ebi\"/>");		bw.newLine();				bw.write("	</bean>");		bw.newLine();				bw.newLine();				bw.write("	<!-- Ebi -->");		bw.newLine();				bw.write("	<bean id=\""+small+"Ebi\" class=\""+pkg+".business.ebo."+big+"Ebo\">");		bw.newLine();				bw.write("		<property name=\""+small+"Dao\" ref=\""+small+"Dao\"/>");		bw.newLine();				bw.write("	</bean>");		bw.newLine();				bw.newLine();				bw.write("	<!-- Dao -->");		bw.newLine();				bw.write("	<bean id=\""+small+"Dao\" class=\""+pkg+".dao.impl."+big+"Impl\">");		bw.newLine();				bw.write("		<property name=\"sessionFactory\" ref=\"sessionFactory\"/>");		bw.newLine();				bw.write("	</bean>");		bw.newLine();				bw.write("</beans>");		bw.newLine();				bw.flush();		bw.close();	}	// 7.Action	private void generatorAction() throws Exception {		File f = new File("src/"+dir+"/web/"+big+"Action.java");		if(f.exists()){			return;		}		f.createNewFile();				BufferedWriter bw = new BufferedWriter(new FileWriter(f));		bw.write("package "+pkg+".web;");		bw.newLine();				bw.newLine();				bw.write("import java.util.List;");		bw.newLine();				bw.newLine();				bw.write("import "+pkg+".business.ebi."+big+"Ebi;");		bw.newLine();				bw.write("import "+pkg+".vo."+big+"Model;");		bw.newLine();				bw.write("import "+pkg+".vo."+big+"QueryModel;");		bw.newLine();				bw.write("import cn.itcast.invoice.util.base.BaseAction;");		bw.newLine();				bw.newLine();				bw.write("public class "+big+"Action extends BaseAction{");		bw.newLine();				bw.write("	public "+big+"Model "+little+"m = new "+big+"Model();");		bw.newLine();				bw.write("	public "+big+"QueryModel "+little+"qm = new "+big+"QueryModel();");		bw.newLine();				bw.newLine();				bw.write("	private "+big+"Ebi "+small+"Ebi;");		bw.newLine();				bw.write("	public void set"+big+"Ebi("+big+"Ebi "+small+"Ebi) {");		bw.newLine();				bw.write("		this."+small+"Ebi = "+small+"Ebi;");		bw.newLine();				bw.write("	}");		bw.newLine();				bw.newLine();				bw.write("	public String list(){");		bw.newLine();				bw.write("		setDataTotal("+small+"Ebi.getCount("+little+"qm));");		bw.newLine();				bw.write("		List<"+big+"Model> "+small+"List = "+small+"Ebi.getAll("+little+"qm,pageNum,pageCount);");		bw.newLine();				bw.write("		put(\""+small+"List\", "+small+"List);");		bw.newLine();				bw.write("		return LIST;");		bw.newLine();				bw.write("	}");		bw.newLine();				bw.newLine();				bw.write("	public String input(){");		bw.newLine();				bw.write("		if("+little+"m.getUuid() != null){");		bw.newLine();				bw.write("			"+little+"m = "+small+"Ebi.get("+little+"m.getUuid());");		bw.newLine();				bw.write("		}");		bw.newLine();				bw.write("		return INPUT;");		bw.newLine();				bw.write("	}");		bw.newLine();				bw.newLine();				bw.write("	public String save(){");		bw.newLine();				bw.write("		if("+little+"m.getUuid() == null){");		bw.newLine();				bw.write("			"+small+"Ebi.save("+little+"m);");		bw.newLine();				bw.write("		}else{");		bw.newLine();				bw.write("			"+small+"Ebi.update("+little+"m);");		bw.newLine();				bw.write("		}");		bw.newLine();				bw.write("		return TO_LIST;");		bw.newLine();				bw.write("	}");		bw.newLine();				bw.newLine();				bw.write("	public String delete(){");		bw.newLine();				bw.write("		"+small+"Ebi.delete("+little+"m);");		bw.newLine();				bw.write("		return TO_LIST;");		bw.newLine();				bw.write("	}");		bw.newLine();				bw.write("}");		bw.newLine();				bw.flush();		bw.close();	}	// 6.Ebo	private void generatorEbo() throws Exception {		File f = new File("src/"+dir+"/business/ebo/"+big+"Ebo.java");		if(f.exists()){			return;		}		f.createNewFile();				BufferedWriter bw = new BufferedWriter(new FileWriter(f));		bw.write("package "+pkg+".business.ebo;");		bw.newLine();				bw.newLine();				bw.write("import java.io.Serializable;");		bw.newLine();				bw.write("import java.util.List;");		bw.newLine();				bw.newLine();				bw.write("import "+pkg+".business.ebi."+big+"Ebi;");		bw.newLine();				bw.write("import "+pkg+".dao.dao."+big+"Dao;");		bw.newLine();				bw.write("import "+pkg+".vo."+big+"Model;");		bw.newLine();				bw.write("import cn.itcast.invoice.util.base.BaseQueryModel;");		bw.newLine();				bw.newLine();				bw.write("public class "+big+"Ebo implements "+big+"Ebi{");		bw.newLine();				bw.write("	private "+big+"Dao "+small+"Dao;");		bw.newLine();				bw.write("	public void set"+big+"Dao("+big+"Dao "+small+"Dao) {");		bw.newLine();				bw.write("		this."+small+"Dao = "+small+"Dao;");		bw.newLine();				bw.write("	}");		bw.newLine();				bw.newLine();				bw.write("	public void save("+big+"Model "+little+"m) {");		bw.newLine();				bw.write("		"+small+"Dao.save("+little+"m);");		bw.newLine();				bw.write("	}");		bw.newLine();				bw.newLine();				bw.write("	public void update("+big+"Model "+little+"m) {");		bw.newLine();				bw.write("		"+small+"Dao.update("+little+"m);");		bw.newLine();				bw.write("	}");		bw.newLine();				bw.newLine();				bw.write("	public void delete("+big+"Model "+little+"m) {");		bw.newLine();				bw.write("		"+small+"Dao.delete("+little+"m);");		bw.newLine();				bw.write("	}");		bw.newLine();				bw.newLine();				bw.write("	public "+big+"Model get(Serializable uuid) {");		bw.newLine();				bw.write("		return "+small+"Dao.get(uuid);");		bw.newLine();				bw.write("	}");		bw.newLine();				bw.newLine();				bw.write("	public List<"+big+"Model> getAll() {");		bw.newLine();				bw.write("		return "+small+"Dao.getAll();");		bw.newLine();				bw.write("	}");		bw.newLine();				bw.newLine();				bw.write("	public Integer getCount(BaseQueryModel qm) {");		bw.newLine();				bw.write("		return "+small+"Dao.getCount(qm);");		bw.newLine();				bw.write("	}");		bw.newLine();				bw.newLine();				bw.write("	public List<"+big+"Model> getAll(BaseQueryModel qm, Integer pageNum,Integer pageCount) {");		bw.newLine();				bw.write("		return "+small+"Dao.getAll(qm,pageNum,pageCount);");		bw.newLine();				bw.write("	}");		bw.newLine();				bw.newLine();				bw.write("}");		bw.newLine();				bw.flush();		bw.close();	}	// 5.Ebi	private void generatorEbi() throws Exception {		File f = new File("src/"+dir+"/business/ebi/"+big+"Ebi.java");		if(f.exists()){			return;		}		f.createNewFile();				BufferedWriter bw = new BufferedWriter(new FileWriter(f));		bw.write("package "+pkg+".business.ebi;");		bw.newLine();				bw.newLine();				bw.write("import org.springframework.transaction.annotation.Transactional;");		bw.newLine();				bw.newLine();				bw.write("import "+pkg+".vo."+big+"Model;");		bw.newLine();				bw.write("import cn.itcast.invoice.util.base.BaseEbi;");		bw.newLine();				bw.write("@Transactional");		bw.newLine();				bw.write("public interface "+big+"Ebi extends BaseEbi<"+big+"Model>{");		bw.newLine();				bw.newLine();				bw.write("}");		bw.newLine();				bw.flush();		bw.close();	}	// 4.Impl	private void generatorImpl() throws Exception {		File f = new File("src/"+dir+"/dao/impl/"+big+"Impl.java");		if(f.exists()){			return;		}		f.createNewFile();				BufferedWriter bw = new BufferedWriter(new FileWriter(f));				bw.write("package "+pkg+".dao.impl;");		bw.newLine();			bw.newLine();				bw.write("import org.hibernate.criterion.DetachedCriteria;");		bw.newLine();				bw.write("import org.hibernate.criterion.Restrictions;");		bw.newLine();				bw.newLine();				bw.write("import "+pkg+".dao.dao."+big+"Dao;");		bw.newLine();				bw.write("import "+pkg+".vo."+big+"Model;");		bw.newLine();				bw.write("import "+pkg+".vo."+big+"QueryModel;");		bw.newLine();				bw.write("import cn.itcast.invoice.util.base.BaseDaoImpl;");		bw.newLine();				bw.write("import cn.itcast.invoice.util.base.BaseQueryModel;	");		bw.newLine();				bw.newLine();				bw.write("public class "+big+"Impl extends BaseDaoImpl<"+big+"Model> implements "+big+"Dao{");		bw.newLine();				bw.newLine();				bw.write("	public void doQbc(BaseQueryModel qm,DetachedCriteria dc){");		bw.newLine();				bw.write("		"+big+"QueryModel "+little+"qm = ("+big+"QueryModel)qm;");		bw.newLine();				bw.write("		//TODO 添加自定义查询条件");		bw.newLine();				bw.write("	}");		bw.newLine();				bw.newLine();				bw.write("}");		bw.newLine();				bw.flush();		bw.close();	}	// 3.Dao	private void generatorDao() throws Exception {		File f = new File("src/"+dir+"/dao/dao/"+big+"Dao.java");		if(f.exists()){			return;		}		f.createNewFile();				BufferedWriter bw = new BufferedWriter(new FileWriter(f));				bw.write("package "+pkg+".dao.dao;");		bw.newLine();			bw.newLine();				bw.write("import "+pkg+".vo."+big+"Model;");		bw.newLine();				bw.write("import cn.itcast.invoice.util.base.BaseDao;");		bw.newLine();				bw.newLine();				bw.write("public interface "+big+"Dao extends BaseDao<"+big+"Model>{");		bw.newLine();				bw.newLine();				bw.write("}");		bw.newLine();				bw.flush();		bw.close();	}	// 2.hbm.xml	private void generatorHbmXml()  throws Exception {		File f = new File("src/"+dir+"/vo/"+big+"Model.hbm.xml");		if(f.exists()){			return;		}		f.createNewFile();				BufferedWriter bw = new BufferedWriter(new FileWriter(f));				bw.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");		bw.newLine();				bw.write("<!DOCTYPE hibernate-mapping PUBLIC");		bw.newLine();				bw.write("        ‘-//Hibernate/Hibernate Mapping DTD 3.0//EN‘");		bw.newLine();				bw.write("        ‘http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd‘>");		bw.newLine();				bw.write("<hibernate-mapping>");		bw.newLine();				bw.write("    <class name=\""+pkg+".vo."+big+"Model\" table=\"tbl_"+small+"\">");		bw.newLine();				bw.write("        <id name=\"uuid\">");		bw.newLine();				bw.write("            <generator class=\"native\" />");		bw.newLine();				bw.write("        </id>");		bw.newLine();		//迭代生成所有的属性		//使用反射获取所有的字段		Field[] fds = clazz.getDeclaredFields();		for (Field fd :fds) {			//如果是私有的生成			if(Modifier.PRIVATE == fd.getModifiers() && !"uuid".equals(fd.getName())){				//String,Long,Double,Integer				if( fd.getType().equals(String.class) ||					fd.getType().equals(Long.class) ||						fd.getType().equals(Integer.class) || 						fd.getType().equals(Double.class) 						){					if(!fd.getName().endsWith("View")){						bw.write("        <property name=\""+fd.getName()+"\"/>");						bw.newLine();					}				}			}		}				bw.newLine();				bw.write("        <!-- 关系 -->");		bw.newLine();				bw.newLine();				bw.write("    </class>");		bw.newLine();				bw.write("</hibernate-mapping>");		bw.newLine();				bw.flush();		bw.close();	}	// 1.QueryModel	private void generatorQueryModel() throws Exception {		//1.创建文件		//2.IO写数据		//3.关闭流		File f = new File("src/"+dir+"/vo/"+big+"QueryModel.java");		//如果该文件存在,则不做任何操作		if(f.exists()){			return;		}		f.createNewFile();				BufferedWriter bw = new BufferedWriter(new FileWriter(f));				bw.write("package "+pkg+".vo;");		bw.newLine();				bw.newLine();				bw.write("import cn.itcast.invoice.util.base.BaseQueryModel;");		bw.newLine();				bw.newLine();				bw.write("public class "+big+"QueryModel extends "+big+"Model implements BaseQueryModel{");		bw.newLine();				bw.write("	//TODO 添加查询范围字段 ");		bw.newLine();				bw.write("}");		bw.newLine();				bw.flush();		bw.close();	}	// 0.生成目录(包)	private void generatorDirectory() {		File f = new File("src/"+dir+"/web");		f.mkdirs();				f = new File("src/"+dir+"/business/ebi");		f.mkdirs();				f = new File("src/"+dir+"/business/ebo");		f.mkdirs();				f = new File("src/"+dir+"/dao/dao");		f.mkdirs();				f = new File("src/"+dir+"/dao/impl");		f.mkdirs();	}	// -1.数据初始化	private void dataInit() {		// EmpModel		all = clazz.getSimpleName();		// Emp		big = all.substring(0,all.length()-5);		// e		little = all.substring(0,1).toLowerCase();		// emp		small = little + big.substring(1);		// cn.itcast.invoice.auth.emp		String pkgTemp = clazz.getPackage().getName();		pkg = pkgTemp.substring(0,pkgTemp.length()-3);		// cn\itcast\invoice\auth\emp		dir = pkg.replace(".", "/");	}	}

  

SSH整合_代码生成器