Spring JDBC:如何创建表?

时间:2010-01-20 12:57:23

标签: java spring jdbc dao

我使用带有DAO模式的Spring JdbcTemplate来访问数据库。我没有手动创建数据库表,而是在寻找一种在DAO层生成表的方法。 我知道我可以使用JdbcTemplate来执行语句,我只是在寻找合适的位置来执行它。

有最好的做法吗?

3 个答案:

答案 0 :(得分:6)

您可以使用execute(String) method

public void execute(String sql) throws DataAccessException
  

发出单个SQL执行,通常是DDL语句   指定者:在JdbcOperations接口中执行

     

参数:sql - 要执行的静态SQL

     

抛出:DataAccessException - 如果有任何问题

然而,正如beny23提到的那样,我会怀疑在实际应用程序中以编程方式执行此操作的实际需要。

答案 1 :(得分:2)

稍微偏离主题:

您是否需要在代码中执行DDL命令?事实上,我认为将db admin和db usage分开是个好主意。我们实际设置了这里的Oracle数据库安全设置,以便使用不同的数据库用户(DB_OWNER)设置表,而不是运行SELECT,INSERT,DELETE由DB_USER运行的用户。

这可以防止意外删除表或修改架构,并且还允许设置DB_USER,以便仅授予绝对必要的权限,这会增加一层安全性。

我认为这取决于您的服务/应用程序的性质,但考虑在代码中创建表的好处(以及DDL代码中的可能错误是否会意外地破坏生产数据)。

答案 2 :(得分:1)

使用.update()中提供的(Simple)JdbcOperations方法,它们返回的数字是受影响的行数。它们应该专门用于INSERTUPDATE语句。