据我了解,您需要开发一个工具,收集与表具有一对一关系的Feature
表名。
我的建议是这样的(用 Oracle 测试):
1)从您的数据库中,获取引用您的功能表的表元数据。下面将打印与您的表有外键关系的标签、点等表。
如果您只想生成一个子集(不相关的表也可能具有这种关系),您可能会放置一个公共外键列名并在此类标记的帮助下过滤掉不相关的表。
Connection connection = jdbcTemplate.getDataSource().getConnection();
DatabaseMetaData metaData = connection.getMetaData();
ResultSet exportedKeys = metaData.getExportedKeys(connection.getCatalog(), "<your_schema_name>", "FEATURE");
while (exportedKeys.next()){
String fkTableName = exportedKeys.getString("FKTABLE_NAME");
String fkColumnName = exportedKeys.getString("FKCOLUMN_NAME");
System.out.println("[fkTableName:" + fkTableName + "], [fkColumnName" + fkColumnName + "]");
}
exportedKeys.close();
2)对于您上面收集的表,对于我们关注的每个表,获取类型和列的表元数据。
ResultSet columns = metaData.getColumns(connection.getCatalog(), "<your_schema_name>", "<your_table_name>", null);
while (columns.next()){
String columnName = columns.getString("COLUMN_NAME");
String typeName = columns.getString("TYPE_NAME");
System.out.println("[columnName:" + columnName + "], [typeName" + typeName + "]");
}
columns.close();
3) 根据 2 的结果生成您的 Java 类。使用字段、getter setter、注释等。然后将它们复制到您的源目录中。你知道其余的:)
希望这会有所帮助。