假设我们在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 )
);
先谢谢!!
答案 0 :(得分:0)
你可以通过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);
}
同样here是关于在hibernate中动态创建表的地图:
它可以动态完成,但有些混乱:
您需要动态更改Hibernate的Configuration对象 在构建SessionFactory之前。如果你使用的是Spring,那就可以了 通过重写postProcessAnnotationConfiguration()方法来完成 AnnotationSessionFactoryBean;否则你只需要这样做 在调用之前使用Configuration对象 它上面有buildSessionFactory()。
如果您需要在没有重启应用程序的情况下执行此操作,那么您正在查看 要么重建你的SessionFactory(这意味着你的用户会 必须等到完成)或使用单独的SessionFactory 专门用于您的自定义类的实例(下一个 如果你的自定义类需要引用你的内置函数是不可能的 类)。
您可以通过访问类/表映射 configuration.getMappings()。然后,您需要创建一个新表 通过Table API进行映射,并通过addTable()将其添加到配置中。相同 必须用代表a的PersistentClass来完成 类映射。如果您使用相同的类来表示多个 实体(例如映射多个表)确保使用唯一实体 每个人的名字。你必须这样做(改变配置) 每个应用重启。