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");}}
- mysql根据数据库自动生成实体(dto,service,impl,mybatis,xml)
- mysql根据数据库自动生成实体(dto,service,impl,mybatis,xml)
- mybatis 根据 数据库表 自动生成 实体
- mybatis 根据 数据库表 自动生成 实体 并自动生成中文注释
- 自动生成Mybatis 实体类、DaoMapper、XML
- mybatis自动生成实体xml文件
- MyBatis:由数据库自动生成实体类
- mybatis自动生成domain,service,mapper,xml
- 根据Java实体自动生成MyBatis的ResultMap
- Java根据数据库表格自动生成java实体类
- mybatis 自动生成实体类、mapper.xml文件
- mybatis自动生成mapper.xml和接口实体类工具
- mybatis反转自动生成dao、实体类和mapper.xml
- Mybatis自动生成实体类、mapper.xml和dao
- MyBatis Generator自动生成Dto、Dao、Mapping
- MyBatis Generator 自动生成 Dto、Dao、Mapping
- SpringBoot集成JPA根据实体类自动生成表(mysql)
- MyBatis自动生成实体类
- 金数据助力微信营销 或将成小电商新宠
- Hive内置函数的使用(1)
- VC++6.0中,返回值为一个结构体时,对象复制2次的问题
- 什么是IEEE 802.11
- Spring MVC 中的基于注解的 Controller
- mysql根据数据库自动生成实体(dto,service,impl,mybatis,xml)
- linux 连公司网络
- 水题Q2005
- 关于表单设计 每个管理执行人员都应该知道的
- How to Realize the Two's Complement of -128?
- 线性代数导论12——图和网络
- STL容器学习第一天
- maven中涉及到的编码格式
- 根据个人所得算缴税和税后收入