部分代码:
package cn.code.utils;
import cn.code.module.Column;
import cn.code.module.Table;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
public class TableUtils {
private static String DBDRIVER = PropertiesUtils.get("database.properties", "driver");
private static String DBURL = PropertiesUtils.get("database.properties", "url");
private static String DBUSER = PropertiesUtils.get("database.properties", "user");
private static String DBPASS = PropertiesUtils.get("database.properties", "password");
private static Connection conn;
private static DatabaseMetaData dbmd;
static{
try
{
Class.forName(DBDRIVER);
conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS);
dbmd=conn.getMetaData();
}
catch (Exception e)
{
e.printStackTrace();
}
}
public static List<Table> getTables() {
List<Table> tableList = new ArrayList<Table>();
try {
ResultSet rs = dbmd.getTables(null, null, null, new String[]{"TABLE"});
while (rs.next()) {
//将得到的表名封装
Table table = new Table();
String tableName = rs.getString("TABLE_NAME");
table.setTableName(tableName);
//把数据库名转化为类名 itrip_area_dic
table.setClassName(StringUtils.putOffUnderline(tableName));
//设置实体列
table.setColumns(getColumns(tableName));
//设置命名空间的xml
table.setLowerClassNameNoPrifex(tableName.toLowerCase().replace("itrip","").replace("_",""));
tableList.add(table);
// System.out.println(tableName);
}
} catch (Exception e) {
e.printStackTrace();
}
return tableList;
}
public static List<Column> getColumns(String tableName){
List<Column> columnList = new ArrayList<>();
try
{
ResultSet rs = dbmd.getColumns(null,"%",tableName,"%");
while (rs.next()) {
Column column = new Column();
//获得列的信息
String columnName = rs.getString("COLUMN_NAME");
String columnType = rs.getString("TYPE_NAME");
String remarks = rs.getString("REMARKS");
column.setColumnName(columnName);
column.setColumnType(columnType);
column.setRemarks(remarks);
column.setFiledName(columnName);
column.setJavaType(StringUtils.switchType(columnType));
//首字母大写
column.setUpperFiledName(StringUtils.captureName(columnName));
columnList.add(column);
// System.out.println(columnName+":"+columnType+":"+remarks);
}
}catch (Exception e) {
e.printStackTrace();
}
return columnList;
}
public static void main(String args[]){
getTables();
getColumns("itrip_area_dic");
}
}
简单易懂的例子可以分享,加油!https://download.csdn.net/download/qq_44014971/12092595