-1

在 springJdbctemplate crud 应用程序中,我想给用户一个选项来创建一个带有自定义字段的新自定义表。问题是如果我创建查询来创建表,我怎样才能给用户自定义它的选项,因为域类是固定的。有人建议在 xml 中转储数据。

谢谢

4

1 回答 1

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 中,这只是基于您的偏好和要求的选择。
享受!

于 2013-08-18T21:42:20.407 回答