• 大小: 2.17MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-09-09
  • 语言: 其他
  • 标签: Generator  

资源简介

文件是我优化过的代码自动生成工具,相关教程可以查看我的博客https://blog.csdn.net/qq_25814003/article/details/83062246

资源截图

代码片段和文件信息

package com.eoma.autocoding;

import com.eoma.autocoding.common.Column;
import com.eoma.autocoding.common.Table;
import com.eoma.autocoding.utils.CamelCaseUtils;
import com.eoma.autocoding.utils.FileHelper;
import freemarker.template.Configuration;
import freemarker.template.Template;
import org.apache.log4j.Logger;

import java.io.*;
import java.sql.Connection;
import java.sql.DatabasemetaData;
import java.sql.ResultSet;
import java.text.SimpleDateFormat;
import java.util.*;

public class Generator {
private Logger logger = Logger.getLogger(this.getClass());
private Properties properties = null;

public Generator() throws Exception {
properties = new Properties();
String fileDir = this.getClass().getClassLoader().getResource(“generator.xml“).getFile();
properties.loadFromxml(new FileInputStream(fileDir));
}

public Table parseTable(String tableName) throws Exception {
String driverName = properties.getProperty(“jdbc.driver“);
String userName = properties.getProperty(“jdbc.username“);
String userPwd = properties.getProperty(“jdbc.password“);
String dbURL = properties.getProperty(“jdbc.url“);

String catalog = properties.getProperty(“jdbc.catalog“);
String schema = properties.getProperty(“jdbc.schema“);
schema = schema == null ? “%“ : schema;
String column = “%“;

logger.debug(“driver>>“+driverName);
logger.debug(“url>>“+dbURL);
logger.debug(“name>>“+userName);
logger.debug(“password>>“+userPwd);
logger.debug(“catalog>>“+catalog);
logger.debug(“schema>>“+schema);

Class.forName(driverName);
Connection conn = java.sql.DriverManager.getConnection(dbURL userName userPwd);
DatabasemetaData dmd = conn.getmetaData();

ResultSet rs = dmd.getColumns(catalog schema tableName column);
List columns = new ArrayList();
while (rs.next()) {
Column c = new Column();

c.setLabel(rs.getString(“REMARKS“));

String name = rs.getString(“COLUMN_NAME“);
c.setName(CamelCaseUtils.toCamelCase(name));
c.setDbName(name);

String dbType = rs.getString(“TYPE_NAME“);

int columnSize = rs.getInt(“COLUMN_SIZE“);
if(dbType.equals(“TINYINT“)&&columnSize>1){
c.setType(“Integer“);
}else if(dbType.equals(“TINYINT“)&&columnSize==1){
c.setType(“Boolean“);
}else{
String type = properties.getProperty(dbType);
c.setType(type == null ? “String“ : type);
}
c.setDbType(dbType);

c.setLength(rs.getInt(“COLUMN_SIZE“));
c.setDecimalDigits(rs.getInt(“DECIMAL_DIGITS“));
c.setNullable(rs.getBoolean(“NULLABLE“));
columns.add(c);
}

List pkColumns = new ArrayList();
ResultSet pkrs = dmd.getPrimaryKeys(catalog schema tableName);
while(pkrs.next()){
Column c = new Column();
String name = pkrs.getString(“COLUMN_NAME“);
c.setName(CamelCaseUtils.toCamelCase(name));
c.setDbName(name);
pkColumns.add(c);
}

conn.close();

Table t = new Tab

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-10-15 16:16  代码自动生成工具\
     目录           0  2018-10-15 16:15  代码自动生成工具\Generator\
     文件         656  2018-09-13 09:41  代码自动生成工具\Generator\.classpath
     目录           0  2018-10-15 16:15  代码自动生成工具\Generator\.idea\
     文件           9  2018-09-13 09:42  代码自动生成工具\Generator\.idea\.name
     目录           0  2018-10-15 16:15  代码自动生成工具\Generator\.idea\artifacts\
     文件         605  2018-09-13 09:42  代码自动生成工具\Generator\.idea\artifacts\Generator_jar.xml
     文件         686  2018-09-13 09:42  代码自动生成工具\Generator\.idea\compiler.xml
     目录           0  2018-10-15 16:15  代码自动生成工具\Generator\.idea\copyright\
     文件          76  2018-09-13 09:42  代码自动生成工具\Generator\.idea\copyright\profiles_settings.xml
     文件         159  2018-09-13 09:42  代码自动生成工具\Generator\.idea\encodings.xml
     文件        1241  2018-09-13 09:42  代码自动生成工具\Generator\.idea\misc.xml
     文件         258  2018-09-13 09:42  代码自动生成工具\Generator\.idea\modules.xml
     文件       61482  2018-09-13 09:42  代码自动生成工具\Generator\.idea\workspace.xml
     文件         591  2018-09-13 09:41  代码自动生成工具\Generator\.project
     目录           0  2018-10-15 16:15  代码自动生成工具\Generator\.settings\
     文件          88  2018-09-13 09:58  代码自动生成工具\Generator\.settings\org.eclipse.core.resources.prefs
     文件         364  2018-09-13 09:42  代码自动生成工具\Generator\.settings\org.eclipse.jdt.core.prefs
     文件         122  2018-09-13 09:42  代码自动生成工具\Generator\.settings\org.eclipse.wst.common.project.facet.core.xml
     目录           0  2018-10-15 16:15  代码自动生成工具\Generator\bin\
     目录           0  2018-10-15 16:15  代码自动生成工具\Generator\bin\com\
     目录           0  2018-10-15 16:15  代码自动生成工具\Generator\bin\com\eoma\
     目录           0  2018-10-15 16:15  代码自动生成工具\Generator\bin\com\eoma\autocoding\
     目录           0  2018-10-15 16:15  代码自动生成工具\Generator\bin\com\eoma\autocoding\common\
     文件        2300  2018-10-13 14:27  代码自动生成工具\Generator\bin\com\eoma\autocoding\common\Column.class
     文件        1950  2018-10-13 14:27  代码自动生成工具\Generator\bin\com\eoma\autocoding\common\Table.class
     文件       10398  2018-10-13 14:27  代码自动生成工具\Generator\bin\com\eoma\autocoding\Generator.class
     目录           0  2018-10-15 16:15  代码自动生成工具\Generator\bin\com\eoma\autocoding\utils\
     文件        2116  2018-10-13 14:27  代码自动生成工具\Generator\bin\com\eoma\autocoding\utils\CamelCaseUtils.class
     文件        2645  2018-10-13 14:27  代码自动生成工具\Generator\bin\com\eoma\autocoding\utils\FileHelper.class
     文件        5080  2018-09-13 10:47  代码自动生成工具\Generator\bin\generator.xml
............此处省略72个文件信息

评论

共有 条评论