代码之家  ›  专栏  ›  技术社区  ›  Juri Glass

SpringJDBC:如何创建表?

  •  5
  • Juri Glass  · 技术社区  · 15 年前

    我在用弹簧 JdbcTemplate 使用DAO模式访问数据库。我在寻找一种在DAO层中生成表的方法,而不是手动创建数据库表。 我知道我可以使用 使用 为了执行语句,我只是在寻找合适的位置。

    有没有最佳实践?

    3 回复  |  直到 6 年前
        1
  •  2
  •   beny23    15 年前

    稍微偏离主题:

    是否确实需要从代码中执行DDL命令?事实上,我确实认为在db admin和db用法之间进行分离是一个好主意。我们在这里的Oracle数据库安全设置实际上是使用不同的数据库用户(db_owner)来设置表,而运行select、insert和deletes的用户是db_user。

    这样可以防止意外地删除表或修改架构,并允许db_用户进行设置,以便仅授予绝对必要的特权,从而增加一层安全性。

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

        2
  •  6
  •   matt b    15 年前

    你可以使用 execute(String) method :

    public void execute(String sql) throws DataAccessException
    

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

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

    throws:DataAccessException-如果有任何问题

    然而,正如Beny23所提到的,我怀疑实际需要在实时应用程序中进行编程。

        3
  •  1
  •   Esko    15 年前

    使用 .update() 中可用的方法 (Simple)JdbcOperations ,返回的行数是受影响的行数。它们应该被专门用于 INSERT UPDATE 声明。