package com.taover.db; import java.io.File; import java.io.StringWriter; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import java.util.Vector; import com.taover.base.template.model.po.ColumnModel; import com.taover.base.template.model.po.PoModel; import com.taover.base.template.model.po.TableModel; import com.taover.tools.StringUtil; import freemarker.template.Configuration; import freemarker.template.Template; public class GeneratePO { public static void generatePO(String sOutputPath, String sDBPackagePath, Vector ColumnsInTable) throws Exception { String sJavaBeanName = ColumnsInTable.get(0).getTableBeanUName(); String sTableName = ColumnsInTable.get(0).getTableName(); String sPackagePath = sDBPackagePath + ColumnsInTable.get(0).getTableBeanLName(); TableModel tm = CreatePoModel(ColumnsInTable); StringWriter out = new StringWriter(); PoModel cif = new PoModel(); cif.setPackages(sPackagePath.toLowerCase() + ";"); cif.setUsers("taover.com"); cif.setVersion("1.0"); cif.setName(sJavaBeanName); cif.setToStringMethodBody(getPOToString(ColumnsInTable)); cif.setTablemodel(tm); File f = new File(Tools.getPath() + Constants.TEMPATE_PATH); Configuration cfg = new Configuration(); cfg.setDirectoryForTemplateLoading(f); Template template = cfg.getTemplate(Constants.TEMPATE_PONAME); template.process(cif, out); String filePoPath = sOutputPath + StringUtil.formatBeanNameFirstLow(sTableName); Tools.createFile(filePoPath.toLowerCase(), sJavaBeanName + "PO.java", out.toString()); } public static TableModel CreatePoModel(Vector ColumnsInTable) throws Exception { TableModel tm = new TableModel(); List clist = new ArrayList(); int len = ColumnsInTable.size(); for (int i = 0; i < len; i++) { TableColumn colum = ColumnsInTable.get(i); ColumnModel cm = new ColumnModel(); String sColumnBeanName = colum.getColumBeanLName(); String sSetColumnBeanName = colum.getColumBeanUName(); cm.setColumnName(sColumnBeanName); cm.setColumnMethodName(sSetColumnBeanName); cm.setColumnRemarks(colum.getRemarks()); cm.setColumnJAVAType(colum.getJAVADataType()); clist.add(cm); } tm.setColumnlist(clist); tm.setTableName(ColumnsInTable.get(0).getTableName()); return tm; } public static String getPOToString(Vector ColumnsInTable) throws SQLException { StringBuffer returnbuffer = new StringBuffer(); returnbuffer.append("["); int iLen = ColumnsInTable.size() - 1; for (int i = 0; i <= iLen; i++) { TableColumn colum = ColumnsInTable.get(i); String tempName = colum.getColumBeanLName(); if (i == iLen) { if (i == 0) { returnbuffer.append(tempName).append("=").append("\"").append("+").append(tempName); }else{ returnbuffer.append("\",").append(tempName).append("=").append("\"").append("+").append(tempName); } } else { if (i == 0) { returnbuffer.append(tempName).append("=").append("\"").append("+").append(tempName).append("+"); }else{ returnbuffer.append("\",").append(tempName).append("=").append("\"").append("+").append(tempName).append("+"); } } } returnbuffer.append("+\"]\""); return returnbuffer.toString(); } }