在springJdbctemplate crud应用程序中我想给用户一个选项,用自定义字段创建一个新的自定义表。问题是如果我创建查询来创建表,我怎样才能给用户提供自定义它的选项,作为域类是固定的。有人建议在xml中转储数据。
感谢
答案 0 :(得分:1)
您需要以这种方式定义用户表元数据:
域类(伪代码):
class UserTableMetadata {
String tableName;
// List of personalisable columns
List<UserTableColumnMetadata> columns;
// List of personalisable indexes
List<UserTableIndexMetadata> indexes;
}
class UserTableColumnMetadata {
// Owner table
UserTableMetadata table;
String columnName;
int jdbcType;
int lenght;
int precision;
boolean nullable;
}
class UserTableIndexMetadata {
// Owner table
UserTableMetadata table;
String indexName;
boolean unique;
boolean primary;
// Index columns
List<UserTableColumnMetadata> columns;
}
正如您所看到的,域类已修复,但您可以使用名称,列和索引构建简单的表定义。
之后可以很容易 - 处理元数据 - 以动态方式构建create table
SQL代码(如果用户更改列定义和表已存在,则为alter table
。)
元数据可以存储在数据库和XML中,只能根据您的偏好和要求进行选择
享受!