mysql根据数据库自动生成实体(dto,service,impl,mybatis,xml)

来源:互联网 发布:淘宝网上眼镜店哪家好 编辑:程序博客网 时间:2024/05/01 19:57



 

package com.csair.test;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStream;import java.sql.Connection;import java.sql.DatabaseMetaData;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;public class GenerateEntity {private String url = "jdbc:mysql://localhost:3306/database";private String username = "root";private String password = "root";private String driverClass = "com.mysql.jdbc.Driver";private DatabaseMetaData dbMetaData = null;private String packageName = "com.csair.test.dto;";private String path = "C:\\Users\\ppt\\Desktop\\test\\";/** * @Description: 获取表对应的所有列 * @author: ppt * @date: 2015-3-16 上午10:13:17 * @param tableName * @return: void */public void getTableColumns(String tableName) {try {String ACCESS_DOMAIN = "private";ResultSet resultSet = dbMetaData.getColumns(null, null, tableName, "%");while(resultSet.next()) {              ResultSet resultSetColumn = dbMetaData.getColumns(null, null, tableName, null);              String className = getFormatString(tableName,true);            StringBuffer header = new StringBuffer("package " + packageName + "\n\n");            StringBuffer footer = new StringBuffer();            StringBuffer contentBuffer = new StringBuffer();            contentBuffer.append("public class " + className + "{\n");              while(resultSetColumn.next()) {                  contentBuffer.append("\t"+ACCESS_DOMAIN + " ");                  String columnType = resultSetColumn.getString("TYPE_NAME");                  String COLUMN_TYPE = getColumnType(columnType);                if("Date".equals(COLUMN_TYPE)) {                header.append("import java.util.Date;\n");                }                contentBuffer.append(COLUMN_TYPE + " ");                  String columnName = resultSetColumn.getString("COLUMN_NAME");                 String remark = resultSetColumn.getString("REMARKS");                columnName = this.getFormatString(columnName, false);                footer.append(getSetGenerater(columnName, COLUMN_TYPE));                contentBuffer.append(columnName+";\t//"+remark+"\n");              }             contentBuffer.append("\n\n"+footer);            contentBuffer.append("}");              header.append("\n");            header.append(contentBuffer);            this.outputToFile(className+".java", header.toString());          }  } catch (SQLException e) {e.printStackTrace();}}public GenerateEntity() {try {Class.forName(driverClass);Connection conn = DriverManager.getConnection(url, username, password);dbMetaData = conn.getMetaData();} catch(Exception e) {e.printStackTrace();}}  /** * @Description: 获取所以的表 * @author: ppt * @date: 2015-3-16 上午10:12:57 * @return: void */public List<String> getAllTableList() {  List<String> tableList = new ArrayList<String>();        try {              String[] types = { "TABLE" };              ResultSet rs = dbMetaData.getTables(null, null, "%", types);              while (rs.next()) {                  String tableName = rs.getString("TABLE_NAME");  //表名                 tableList.add(tableName);            }          } catch (SQLException e) {              e.printStackTrace();          }        return tableList;    }   /**      * 处理字符串,去掉下划线“_”,并且把下划线的下一个字符变大写,flag为true,表示首字母要大写      * @param name      * @param flag      * @return      */      private String getFormatString(String name, boolean flag) {          name = name.toLowerCase();          String[] nameTemp = name.split("_");          StringBuffer buffer = new StringBuffer();          for(String str : nameTemp) {              String head = str.substring(0, 1).toUpperCase();              String tail = str.substring(1);              buffer.append(head+tail);          }          StringBuffer result = null;          if(!flag) {              result = new StringBuffer();              String head = buffer.substring(0, 1).toLowerCase();              String tail = buffer.substring(1);              result.append(head+tail);              return result.toString();          }          return buffer.toString();      }  /**      * 把String内容写到文件      * @param fileName      * @param content      */      private void outputToFile(String fileName, String content) {          OutputStream os = null;          try {              os = new FileOutputStream(path+fileName);          } catch (FileNotFoundException e1) {              e1.printStackTrace();          }          byte[] b = content.getBytes();          try {              os.write(b);              os.flush();          } catch (IOException e) {              e.printStackTrace();          } finally {              try {                  os.close();              } catch (IOException e) {                  e.printStackTrace();              }          }      }      /**      * 数据库类型转为java类型      * @param column      * @return      */      private String getColumnType(String column) {          String COLUMN_TYPE = null;    if("VARCHAR".equals(column)) {              COLUMN_TYPE = "String";          } else if("BIGINT".equals(column)) {              COLUMN_TYPE = "Long";          } else if("DATETIME".equals(column)) {              COLUMN_TYPE = "Date";          } else if("INT".equals(column) || "INT UNSIGNED".equals(column)) {              COLUMN_TYPE = "Integer";          } else if("BIGINT UNSIGNED".equals(column)) {              COLUMN_TYPE = "Long";          } else if("TINYINT UNSIGNED".equals(column)) {              COLUMN_TYPE = "Short";          } else if("DECIMAL".equals(column) || "FLOAT".equals(column) || "DOUBLE".equals(column)) {              COLUMN_TYPE = "Double";          } else if("TEXT".equals(column) || "MEDIUMTEXT".equals(column) || "LONGTEXT".equals(column)) {              COLUMN_TYPE = "String";          } else if("TIMESTAMP".equals(column) || "DATE".equals(column) || "DATETIME".equals(column)) {              COLUMN_TYPE = "Date";          } else if("TINYINT".equals(column)) {              COLUMN_TYPE = "Short";          } else if("DECIMAL UNSIGNED".equals(column)) {              COLUMN_TYPE = "Double";          } else if("SMALLINT".equals(column)) {              COLUMN_TYPE = "Short";          } else if("BIT".equals(column)) {              COLUMN_TYPE = "Short";          } else if("CHAR".equals(column)) {              COLUMN_TYPE = "String";          } else if("VARBINARY".equals(column)) {              COLUMN_TYPE = "byte";          } else if("BLOB".equals(column)) {              COLUMN_TYPE = "byte";          }        return COLUMN_TYPE;      }        private String getSetGenerater(String columnName, String columnType) {    StringBuffer sb = new StringBuffer();sb.append("\tpublic " + columnType + " get" +columnName.substring(0, 1).toUpperCase()+columnName.substring(1, columnName.length()) + "() {\n");sb.append("\t\treturn " + columnName + ";\n");sb.append("\t}\n\n");sb.append("\tpublic void set" + columnName.substring(0, 1).toUpperCase()+columnName.substring(1, columnName.length()));sb.append("("+columnType +" " + columnName +") {\n");sb.append("\t\tthis." + columnName + " = " + columnName + ";\n");sb.append("\t}\n\n");return sb.toString();    }    public static void main(String[] agrs) {GenerateEntity aa = new GenerateEntity();List<String> tableList = aa.getAllTableList();for(String tableName : tableList) {aa.getTableColumns(tableName);}//aa.getTableColumns("REPORT_REQ");}}
接口
package com.csair.test;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStream;import java.sql.Connection;import java.sql.DatabaseMetaData;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;public class GenerateService {private String url = "jdbc:mysql://localhost:3306/database";private String username = "root";private String password = "root";private String driverClass = "com.mysql.jdbc.Driver";private DatabaseMetaData dbMetaData = null;private String packageName = "com.csair.test.service;";private String packageNameDto = "com.csair.test.dto";private String path = "C:\\Users\\ppt\\Desktop\\test\\";public GenerateService() {try {Class.forName(driverClass);Connection conn = DriverManager.getConnection(url, username, password);dbMetaData = conn.getMetaData();} catch(Exception e) {e.printStackTrace();}}  /** * @Description: 获取所有的表 * @author: ppt * @date: 2015-3-16 上午10:12:57 * @return: void */public List<String> getAllTableList() {  List<String> tableList = new ArrayList<String>();        try {              String[] types = { "TABLE" };              ResultSet rs = dbMetaData.getTables(null, null, "%", types);              while (rs.next()) {                  String tableName = rs.getString("TABLE_NAME");  //表名                 tableList.add(tableName);            }          } catch (SQLException e) {              e.printStackTrace();          }        return tableList;    }   /**      * 处理字符串,去掉下划线“_”,并且把下划线的下一个字符变大写,flag为true,表示首字母要大写      * @param name      * @param flag      * @return      */      private String getFormatString(String name, boolean flag) {          name = name.toLowerCase();          String[] nameTemp = name.split("_");          StringBuffer buffer = new StringBuffer();          for(String str : nameTemp) {              String head = str.substring(0, 1).toUpperCase();              String tail = str.substring(1);              buffer.append(head+tail);          }          StringBuffer result = null;          if(!flag) {              result = new StringBuffer();              String head = buffer.substring(0, 1).toLowerCase();              String tail = buffer.substring(1);              result.append(head+tail);              return result.toString();          }          return buffer.toString();      }  /**      * 把String内容写到文件      * @param fileName      * @param content      */      private void outputToFile(String fileName, String content) {          OutputStream os = null;          try {              os = new FileOutputStream(path+fileName);          } catch (FileNotFoundException e1) {              e1.printStackTrace();          }          byte[] b = content.getBytes();          try {              os.write(b);              os.flush();          } catch (IOException e) {              e.printStackTrace();          } finally {              try {                  os.close();              } catch (IOException e) {                  e.printStackTrace();              }          }      }          private void getService() {    List<String> tableList = getAllTableList();    for(String tableName : tableList) {    String table = getFormatString(tableName, true);    String className = table + "Service";    StringBuffer sb = new StringBuffer();    sb.append("package " + packageName + "\n\n");    sb.append("import " + packageNameDto + "." + table + ";\n");    sb.append("import java.util.List;\n");    sb.append("import javax.ws.rs.POST;\n");    sb.append("import javax.ws.rs.GET;\n");    sb.append("import javax.ws.rs.PathParam;\n");    sb.append("import javax.ws.rs.Path;\n");    sb.append("import javax.ws.rs.Produces;\n");    sb.append("import javax.ws.rs.core.MediaType;\n");    sb.append("\n@Path(\"/" + className.substring(0, 1).toLowerCase() + className.substring(1) + "\")\n");    sb.append("public interface " + className + " {\n\n");        sb.append("\t//增加实体\n");    sb.append("\t@POST\n");    sb.append("\t@Path(\"addEntity\")\n");    sb.append("\t@Produces(MediaType.APPLICATION_XML)\n");    sb.append("\tpublic long addEntity(" + table + " dto) throws Exception;\n\n");        sb.append("\t//删除实体\n");    sb.append("\t@GET\n");    sb.append("\t@Path(\"deleteEntity/{id}\")\n");    sb.append("\t@Produces(MediaType.APPLICATION_XML)\n");    sb.append("\tpublic boolean deleteEntity(@PathParam(\"id\") long id) throws Exception;\n\n");        sb.append("\t//修改实体\n");    sb.append("\t@POST\n");    sb.append("\t@Path(\"updateEntity\")\n");    sb.append("\t@Produces(MediaType.APPLICATION_XML)\n");    sb.append("\tpublic long updateEntity(" + table + " dto) throws Exception;\n\n");        sb.append("\t//查询实体\n");    sb.append("\t@POST\n");    sb.append("\t@Path(\"findEntity\")\n");    sb.append("\t@Produces(MediaType.APPLICATION_XML)\n");    sb.append("\tpublic "+table+" findEntity(" + table + " dto) throws Exception;\n\n");        sb.append("\t//查询实体List\n");    sb.append("\t@POST\n");    sb.append("\t@Path(\"findEntityList\")\n");    sb.append("\t@Produces(MediaType.APPLICATION_XML)\n");    sb.append("\tpublic List<"+table+"> findEntityList(" + table + " dto) throws Exception;\n\n");        sb.append("}\n");    outputToFile(className+".java", sb.toString());    }    }    public static void main(String[] agrs) {GenerateService aa = new GenerateService();aa.getService();}}
mybatis接口

package com.csair.test;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStream;import java.sql.Connection;import java.sql.DatabaseMetaData;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;public class GenerateMybatisRepository {private String url = "jdbc:mysql://localhost:3306/database";private String username = "root";private String password = "root";private String driverClass = "com.mysql.jdbc.Driver";private DatabaseMetaData dbMetaData = null;private String packageName = "com.csair.test.mybatisRepository;";private String packageNameDto = "com.csair.test.dto";private String path = "C:\\Users\\ppt\\Desktop\\test\\";public GenerateMybatisRepository() {try {Class.forName(driverClass);Connection conn = DriverManager.getConnection(url, username, password);dbMetaData = conn.getMetaData();} catch(Exception e) {e.printStackTrace();}}  /** * @Description: 获取所有的表 * @author: ppt * @date: 2015-3-16 上午10:12:57 * @return: void */public List<String> getAllTableList() {  List<String> tableList = new ArrayList<String>();        try {              String[] types = { "TABLE" };              ResultSet rs = dbMetaData.getTables(null, null, "%", types);              while (rs.next()) {                  String tableName = rs.getString("TABLE_NAME");  //表名                 tableList.add(tableName);            }          } catch (SQLException e) {              e.printStackTrace();          }        return tableList;    }   /**      * 处理字符串,去掉下划线“_”,并且把下划线的下一个字符变大写,flag为true,表示首字母要大写      * @param name      * @param flag      * @return      */      private String getFormatString(String name, boolean flag) {          name = name.toLowerCase();          String[] nameTemp = name.split("_");          StringBuffer buffer = new StringBuffer();          for(String str : nameTemp) {              String head = str.substring(0, 1).toUpperCase();              String tail = str.substring(1);              buffer.append(head+tail);          }          StringBuffer result = null;          if(!flag) {              result = new StringBuffer();              String head = buffer.substring(0, 1).toLowerCase();              String tail = buffer.substring(1);              result.append(head+tail);              return result.toString();          }          return buffer.toString();      }  /**      * 把String内容写到文件      * @param fileName      * @param content      */      private void outputToFile(String fileName, String content) {          OutputStream os = null;          try {              os = new FileOutputStream(path+fileName);          } catch (FileNotFoundException e1) {              e1.printStackTrace();          }          byte[] b = content.getBytes();          try {              os.write(b);              os.flush();          } catch (IOException e) {              e.printStackTrace();          } finally {              try {                  os.close();              } catch (IOException e) {                  e.printStackTrace();              }          }      }          private void getService() {    List<String> tableList = getAllTableList();    for(String tableName : tableList) {    String table = getFormatString(tableName, true);    String className = table + "MybatisDao";    String dto = table;    StringBuffer sb = new StringBuffer();    sb.append("package " + packageName + "\n\n");    sb.append("import " + packageNameDto + "." + dto + ";\n");    sb.append("import java.util.List;\n");    sb.append("\npublic interface " + className + " {\n\n");        sb.append("\tpublic long addEntity(" + table + " dto);\n\n");        sb.append("\tpublic boolean deleteEntity(long id);\n\n");        sb.append("\tpublic long updateEntity(" + table + " dto);\n\n");        sb.append("\tpublic "+table+" findEntity(" + table + " dto);\n\n");        sb.append("\tpublic List<"+table+"> findEntityList(" + table + " dto);\n\n");        sb.append("}\n");//    System.out.println(sb.toString());    outputToFile(className+".java", sb.toString());    }    }    public static void main(String[] agrs) {GenerateMybatisRepository aa = new GenerateMybatisRepository();aa.getService();}}

实现impl

package com.csair.test;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStream;import java.sql.Connection;import java.sql.DatabaseMetaData;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;public class GenerateServiceImpl {private String url = "jdbc:mysql://localhost:3306/database";private String username = "root";private String password = "root";private String driverClass = "com.mysql.jdbc.Driver";private DatabaseMetaData dbMetaData = null;private String packageName = "com.csair.test.service.impl;";private String packageNameService = "com.csair.test.service";private String packageNameDto = "com.csair.test.dto";private String packageNameMybatis = "com.csair.test.mybatisRepository";private String path = "C:\\Users\\ppt\\Desktop\\test\\";public GenerateServiceImpl() {try {Class.forName(driverClass);Connection conn = DriverManager.getConnection(url, username, password);dbMetaData = conn.getMetaData();} catch(Exception e) {e.printStackTrace();}}  /** * @Description: 获取所有的表 * @author: ppt * @date: 2015-3-16 上午10:12:57 * @return: void */public List<String> getAllTableList() {  List<String> tableList = new ArrayList<String>();        try {              String[] types = { "TABLE" };              ResultSet rs = dbMetaData.getTables(null, null, "%", types);              while (rs.next()) {                  String tableName = rs.getString("TABLE_NAME");  //表名                 tableList.add(tableName);            }          } catch (SQLException e) {              e.printStackTrace();          }        return tableList;    }   /**      * 处理字符串,去掉下划线“_”,并且把下划线的下一个字符变大写,flag为true,表示首字母要大写      * @param name      * @param flag      * @return      */      private String getFormatString(String name, boolean flag) {          name = name.toLowerCase();          String[] nameTemp = name.split("_");          StringBuffer buffer = new StringBuffer();          for(String str : nameTemp) {              String head = str.substring(0, 1).toUpperCase();              String tail = str.substring(1);              buffer.append(head+tail);          }          StringBuffer result = null;          if(!flag) {              result = new StringBuffer();              String head = buffer.substring(0, 1).toLowerCase();              String tail = buffer.substring(1);              result.append(head+tail);              return result.toString();          }          return buffer.toString();      }  /**      * 把String内容写到文件      * @param fileName      * @param content      */      private void outputToFile(String fileName, String content) {          OutputStream os = null;          try {              os = new FileOutputStream(path+fileName);          } catch (FileNotFoundException e1) {              e1.printStackTrace();          }          byte[] b = content.getBytes();          try {              os.write(b);              os.flush();          } catch (IOException e) {              e.printStackTrace();          } finally {              try {                  os.close();              } catch (IOException e) {                  e.printStackTrace();              }          }      }          private void getServiceImpl() {    List<String> tableList = getAllTableList();    for(String tableName : tableList) {    String table = getFormatString(tableName, true);    String mybatis = table + "MybatisDao";    String dto = table;    String service = table + "Service";    String className = service + "Impl";    StringBuffer sb = new StringBuffer();    sb.append("package " + packageName + "\n\n");    sb.append("import " + packageNameDto + "." + dto + ";\n");    sb.append("import " + packageNameMybatis + "." + mybatis + ";\n");    sb.append("import " + packageNameService + "." + service + ";\n");    sb.append("import org.apache.log4j.Logger;\n");    sb.append("import org.springframework.beans.factory.annotation.Autowired;\n");    sb.append("import org.springframework.stereotype.Service;\n");    sb.append("import java.util.List;\n");    sb.append("@Service(\""+service.substring(0,1).toLowerCase()+service.substring(1)+"\")\n");    sb.append("public class " + className + " implements "+ service +" {\n\n");        sb.append("\tprivate Logger log = Logger.getLogger("+className+".class);\n");    String instance = mybatis.substring(0,1).toLowerCase() + mybatis.substring(1);    sb.append("\t@Autowired\n");    sb.append("\tprivate "+mybatis+" " + instance +";\n");        sb.append("\t@Override\n");    sb.append("\tpublic long addEntity(" + table + " dto) throws Exception {\n");    sb.append("\t\ttry {\n");    sb.append("\t\t\tlog.info(\"addEntity\");\n");    sb.append("\t\t\t"+instance+".addEntity(dto);\n");    sb.append("\t\t\treturn 0;\n");    sb.append("\t\t} catch(Exception e) {\n");    sb.append("\t\t\tlog.info(\"addEntity异常\");\n");    sb.append("\t\t\te.printStackTrace();\n");    sb.append("\t\t\tthrow e;\n");    sb.append("\t\t}\n");    sb.append("\t}\n");        sb.append("\t@Override\n");    sb.append("\tpublic boolean deleteEntity(long id) throws Exception {\n");    sb.append("\t\ttry {\n");    sb.append("\t\t\tlog.info(\"deleteEntity\");\n");    sb.append("\t\t\t"+instance+".deleteEntity(id);\n");    sb.append("\t\t\treturn false;\n");    sb.append("\t\t} catch(Exception e) {\n");    sb.append("\t\t\tlog.info(\"deleteEntity异常\");\n");    sb.append("\t\t\te.printStackTrace();\n");    sb.append("\t\t\tthrow e;\n");    sb.append("\t\t}\n");    sb.append("\t}\n");        sb.append("\t@Override\n");    sb.append("\tpublic long updateEntity(" + table + " dto) throws Exception {\n");    sb.append("\t\ttry {\n");    sb.append("\t\t\tlog.info(\"updateEntity\");\n");    sb.append("\t\t\t"+instance+".updateEntity(dto);\n");    sb.append("\t\t\treturn 0;\n");    sb.append("\t\t} catch(Exception e) {\n");    sb.append("\t\t\tlog.info(\"updateEntity异常\");\n");    sb.append("\t\t\te.printStackTrace();\n");    sb.append("\t\t\tthrow e;\n");    sb.append("\t\t}\n");    sb.append("\t}\n");        sb.append("\t@Override\n");    sb.append("\tpublic "+table+" findEntity(" + table + " dto) throws Exception {\n");    sb.append("\t\ttry {\n");    sb.append("\t\t\tlog.info(\"findEntity\");\n");    sb.append("\t\t\treturn "+instance+".findEntity(dto);\n");    sb.append("\t\t} catch(Exception e) {\n");    sb.append("\t\t\tlog.info(\"findEntity异常\");\n");    sb.append("\t\t\te.printStackTrace();\n");    sb.append("\t\t\tthrow e;\n");    sb.append("\t\t}\n");    sb.append("\t}\n");        sb.append("\t@Override\n");    sb.append("\tpublic List<"+table+"> findEntityList(" + table + " dto) throws Exception {\n");    sb.append("\t\ttry {\n");    sb.append("\t\t\tlog.info(\"findEntityList\");\n");    sb.append("\t\t\treturn "+instance+".findEntityList(dto);\n");    sb.append("\t\t} catch(Exception e) {\n");    sb.append("\t\t\tlog.info(\"findEntityList异常\");\n");    sb.append("\t\t\te.printStackTrace();\n");    sb.append("\t\t\tthrow e;\n");    sb.append("\t\t}\n");    sb.append("\t}\n");        sb.append("}\n");//    System.out.println(sb.toString());    outputToFile(className+".java", sb.toString());    }    }    public static void main(String[] agrs) {GenerateServiceImpl aa = new GenerateServiceImpl();aa.getServiceImpl();}}

生成mybatis的实现xml文件

package com.csair.test;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStream;import java.sql.Connection;import java.sql.DatabaseMetaData;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;public class GenerateMybatisXml {private String url = "jdbc:mysql://localhost:3306/jdz";private String username = "root";private String password = "root";private String driverClass = "com.mysql.jdbc.Driver";private DatabaseMetaData dbMetaData = null;private String packageNameMybatisDao = "com.csair.test.mybatisRepository";//private String path = "C:\\Users\\ppt\\Desktop\\test\\";private String path = "D:\\ppt\\workspace\\shop\\shopserver\\src\\test\\java\\com\\csair\\test\\xml\\";/** * @Description: 获取表对应的所有列 * @author: ppt * @date: 2015-3-16 上午10:13:17 * @param tableName * @return: void */public void getTableColumns(String tableName) {try {ResultSet resultSetColumn = dbMetaData.getColumns(null, null,tableName, null);String className = getFormatString(tableName, true);//表名String fileName = className + "Mapper";//文件名String thisFileName = className + "MybatisDao";//接口地址StringBuffer header = new StringBuffer("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n");header.append("<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n");header.append("<mapper namespace=\"");header.append(packageNameMybatisDao+"."+thisFileName);header.append("\">\n\n");StringBuffer footer = new StringBuffer("\n</mapper>");StringBuffer add = new StringBuffer();//增加数据add.append("\t<insert id=\"addEntity\" parameterType=\""+className+"\">\n");String insert = "\t\tinsert into " + tableName + "(";String column = "";String values = "";//删除数据StringBuffer delete = new StringBuffer();delete.append("\t<update id=\"deleteEntity\" parameterType=\"long\">\n");delete.append("\t\tupdate " + tableName + " set status = -1 where id = #{id}\n");delete.append("\t</update>\n\n");//更新数据StringBuffer update = new StringBuffer();String updateConent = "";update.append("\t<update id=\"updateEntity\" parameterType=\""+className+"\">\n");update.append("\t\tupdate " + tableName + " set ");//查找数据StringBuffer select = new StringBuffer();select.append("\t<select id=\"findEntity\" parameterType=\""+className+"\" resultType=\""+className+"\">\n");String selectContent = "\t\tselect\n";//查找数据listStringBuffer selectList = new StringBuffer();selectList.append("\t<select id=\"findEntityList\" parameterType=\""+className+"\" resultType=\""+className+"\">\n");while (resultSetColumn.next()) {String columnName = resultSetColumn.getString("COLUMN_NAME");String oldColumnName = columnName;columnName = this.getFormatString(columnName, false);//增加数据if("ID".equals(columnName.toUpperCase())) {continue;}column += columnName +",";values += "#{" + columnName + "},";//删除数据//更新数据updateConent += columnName + "=#{" + columnName +"},";//查找数据selectContent += "\t\t"+oldColumnName + " AS " + columnName + ",\n";}selectContent = selectContent.substring(0, selectContent.length()-2);selectContent += "\n\t\tfrom " + tableName + "\n";select.append(selectContent);select.append("\t</select>\n\n");selectList.append(selectContent);selectList.append("\t</select>\n\n");updateConent = updateConent.substring(0,updateConent.length()-1);update.append(updateConent);update.append(" where id = #{id}\n");update.append("\t</update>\n\n");column = column.substring(0, column.length()-1);values = values.substring(0,values.length()-1);String statement = insert + column + ") values(" + values + ")\n";add.append(statement);add.append("\t</insert>\n\n");header.append(add);header.append(delete);header.append(update);header.append(select);header.append(selectList);header.append(footer);//System.out.println(header.toString()); this.outputToFile(fileName+".xml", header.toString()); } catch (SQLException e) {e.printStackTrace();}}public GenerateMybatisXml() {try {Class.forName(driverClass);Connection conn = DriverManager.getConnection(url, username, password);dbMetaData = conn.getMetaData();} catch(Exception e) {e.printStackTrace();}}  /** * @Description: 获取所以的表 * @author: ppt * @date: 2015-3-16 上午10:12:57 * @return: void */public List<String> getAllTableList() {  List<String> tableList = new ArrayList<String>();        try {              String[] types = { "TABLE" };              ResultSet rs = dbMetaData.getTables(null, null, "%", types);              while (rs.next()) {                  String tableName = rs.getString("TABLE_NAME");  //表名                 tableList.add(tableName);            }          } catch (SQLException e) {              e.printStackTrace();          }        return tableList;    }   /**      * 处理字符串,去掉下划线“_”,并且把下划线的下一个字符变大写,flag为true,表示首字母要大写      * @param name      * @param flag      * @return      */      private String getFormatString(String name, boolean flag) {          name = name.toLowerCase();          String[] nameTemp = name.split("_");          StringBuffer buffer = new StringBuffer();          for(String str : nameTemp) {              String head = str.substring(0, 1).toUpperCase();              String tail = str.substring(1);              buffer.append(head+tail);          }          StringBuffer result = null;          if(!flag) {              result = new StringBuffer();              String head = buffer.substring(0, 1).toLowerCase();              String tail = buffer.substring(1);              result.append(head+tail);              return result.toString();          }          return buffer.toString();      }  /**      * 把String内容写到文件      * @param fileName      * @param content      */      private void outputToFile(String fileName, String content) {          OutputStream os = null;          try {              os = new FileOutputStream(path+fileName);          } catch (FileNotFoundException e1) {              e1.printStackTrace();          }          byte[] b = content.getBytes();          try {              os.write(b);              os.flush();          } catch (IOException e) {              e.printStackTrace();          } finally {              try {                  os.close();              } catch (IOException e) {                  e.printStackTrace();              }          }      }          public static void main(String[] agrs) {GenerateMybatisXml aa = new GenerateMybatisXml();List<String> tableList = aa.getAllTableList();for(String tableName : tableList) {aa.getTableColumns(tableName);}//aa.getTableColumns("loan_info");}}