Spring JDBC:如何创建表?

Jur*_*ass 5 java spring dao jdbc

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

有最好的做法吗?

mat*_*t b 6

您可以使用execute(String)方法:

public void execute(String sql) throws DataAccessException
Run Code Online (Sandbox Code Playgroud)

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

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

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

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


ben*_*y23 1

稍微跑题了:

您是否绝对需要从代码中执行 DDL 命令?事实上,我确实认为将数据库管理和数据库使用分开是一个好主意。我们这里的 Oracle 数据库安全设置实际上是使用不同的数据库用户 (DB_OWNER) 设置表,而不是由 DB_USER 运行运行 SELECT、INSERT、DELETE 的表。

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

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