资源简介
文件是我优化过的代码自动生成工具,相关教程可以查看我的博客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.xm
文件 686 2018-09-13 09:42 代码自动生成工具\Generator\.idea\compiler.xm
目录 0 2018-10-15 16:15 代码自动生成工具\Generator\.idea\copyright\
文件 76 2018-09-13 09:42 代码自动生成工具\Generator\.idea\copyright\profiles_settings.xm
文件 159 2018-09-13 09:42 代码自动生成工具\Generator\.idea\encodings.xm
文件 1241 2018-09-13 09:42 代码自动生成工具\Generator\.idea\misc.xm
文件 258 2018-09-13 09:42 代码自动生成工具\Generator\.idea\modules.xm
文件 61482 2018-09-13 09:42 代码自动生成工具\Generator\.idea\workspace.xm
文件 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.xm
目录 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.xm
............此处省略72个文件信息
- 上一篇:基于51单片机的心形声光电子琴
- 下一篇:json校验工具HiJson_64位
相关资源
- 8位5级流水无cache实验CPU课程设计有
- CT三维重建代码分析,内包含图,可直
- 吃鱼源代码
- R语言绘图代码以及展示
- ios+dome+仿微信+主界面+部分代码
- PCL最小包围盒完整代码
- stm32f030驱动MPU6050
- 学生成绩管理系统代码内含数据库
- 雷达透视源代码 CF雷达透视源码
- cximage 源代码及demo程序
- lingo程序源代码
- ZigbeeCC2530组网代码和函数详细解答
- msc c51单片机各实用源码及proteus仿真集
- GBRL配套的Candle_1.1.7源代码用于DIY cn
- 2D板材排版套料开源代码
- MAG3110电子罗盘代码基于STM32
- zigbee学习的基础实验教程含代码文档
- PCI库函数源代码
- QQ昵称下划线内含代码
- 图书管理系统前端代码
- 数字水印 经典代码
- 考勤管理系统源代码
- SoC Encounter经典教程+代码
- 基于QT4.8的视频播放器
- 基于group lasso的信用评级分类-带数据
- 胡清华邻域粗糙集代码
- 运行Openair代码说明文档.pdf
- stm32基本例程 PWM输出实验
- VGGNet16完整测试代码
- STM32最简单的蜂鸣器程序
评论
共有 条评论