通过jdbctemplate在spring中动态添加表

时间:2013-08-18 19:14:23

标签: mysql spring spring-mvc spring-jdbc

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

感谢

1 个答案:

答案 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中,只能根据您的偏好和要求进行选择 享受!