如何使用 JDBC/Hibernate 根据用户输入数据生成'create table'查询?



假设如果我们在CSV文件中提供查询数据,则如下:

Emp_Id, Emp_Name, Address

现在,应该生成和处理下面的查询(mysql(。

Create TABLE Emp_tbl(
   Emp_id INT NOT NULL,
   Emp_Name VARCHAR(100) NOT NULL,
   Address VARCHAR(400) NOT NULL,
   PRIMARY KEY ( Emp_id )
);

预先感谢!

您可以通过JDBC实现它:

String sql_stmt = "Create TABLE Emp_tbl(
   Emp_id INT NOT NULL,
   Emp_Name VARCHAR(100) NOT NULL,
   Address VARCHAR(400) NOT NULL,
   PRIMARY KEY ( Emp_id )
);";
public void createTable(String sql_stmt) throws SQLException {
    // your connection code
    statement = connection.createStatement();
    statement.executeUpdate(sql_stmt);
}

此外,此处也是关于在Hibernate中动态创建的表:

可以动态地完成,但有些混乱:

您需要动态更改Hibernate的配置对象 在构建SessionFactory之前。如果您使用的是春天,这可能是 通过覆盖后处理后configuration((方法 AnnotationsFactoryBean;否则您只需要做 调用之前使用您的配置对象 buildsessionFactory((。

如果您需要在不重新启动应用程序的情况下执行此操作,那么您正在查看 重建您的session factory(这意味着您的用户将 必须等到完成(或使用单独的session factory 实例专门用于您的自定义类(接下来是 如果您的自定义课程需要引用您的内置,则不可能 课程(。

您可以通过 configuration.getMappings((。然后,您需要创建一个新表格 通过表API映射,并通过AddTable((将其添加到配置中。相同的 必须使用代表一个的PersistentClass来完成此事 类映射。如果您使用同一班来表示多个 实体(例如映射多个表(确保使用独特的实体 每个名称。您必须执行此操作(更改配置( 每个应用程序重新启动。

相关内容

最新更新