feat: 更新代码生成功能-添加数据模型批量添加字段数据

This commit is contained in:
l90215
2025-07-23 10:46:29 +08:00
parent ffe4867d40
commit de323d8c45
13 changed files with 231 additions and 25 deletions

View File

@@ -11,9 +11,12 @@ import org.ruoyi.enums.DataBaseType;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 数据库助手
@@ -102,4 +105,59 @@ public class DataBaseHelper {
}
return tableNames;
}
/**
* 获取指定表的字段信息
*
* @param tableName 表名
* @return 字段信息列表
*/
public static List<Map<String, Object>> getTableColumnInfo(String tableName) {
DataSource dataSource = DS.determineDataSource();
List<Map<String, Object>> columns = new ArrayList<>();
try (Connection conn = dataSource.getConnection()) {
DatabaseMetaData metaData = conn.getMetaData();
String catalog = conn.getCatalog();
String schema = conn.getSchema();
// 获取表字段信息
try (ResultSet resultSet = metaData.getColumns(catalog, schema, tableName, "%")) {
while (resultSet.next()) {
Map<String, Object> column = new HashMap<>();
column.put("columnName", resultSet.getString("COLUMN_NAME"));
column.put("columnComment", resultSet.getString("REMARKS"));
column.put("dataType", resultSet.getString("TYPE_NAME"));
column.put("columnSize", resultSet.getInt("COLUMN_SIZE"));
column.put("isNullable", "YES".equals(resultSet.getString("IS_NULLABLE")));
column.put("ordinalPosition", resultSet.getInt("ORDINAL_POSITION"));
// 设置默认值
String defaultValue = resultSet.getString("COLUMN_DEF");
column.put("columnDefault", defaultValue);
columns.add(column);
}
}
// 获取主键信息
try (ResultSet pkResultSet = metaData.getPrimaryKeys(catalog, schema, tableName)) {
List<String> primaryKeys = new ArrayList<>();
while (pkResultSet.next()) {
primaryKeys.add(pkResultSet.getString("COLUMN_NAME"));
}
// 标记主键字段
for (Map<String, Object> column : columns) {
String columnName = (String) column.get("columnName");
column.put("isPrimaryKey", primaryKeys.contains(columnName));
}
}
} catch (SQLException e) {
throw new ServiceException("获取表字段信息失败: " + e.getMessage());
}
return columns;
}
}