【发布时间】:2011-01-07 06:29:07
【问题描述】:
我正在使用带有 DAO 模式的 Spring JdbcTemplate 来访问数据库。我不是手动创建数据库表,而是寻找一种在 DAO 层中生成表的方法。
我知道我可以使用JdbcTemplate 来执行语句,我只是在寻找合适的地方来执行它。
有没有最佳实践?
【问题讨论】:
-
以编程方式创建表是一种味道。在现实世界中(并且具有良好的数据模型),您通常只需要创建一次表并永远使用它们。您确定需要这样做吗?如果没有,请发布一个新问题如何更改数据模型,这样您就不需要为每个问题都创建新表。
-
+1 表示 BalusC。如果您想要一种可重现的、自动化的创建表的方式,请创建一个 DDL 或其他可以在设置环境时执行的脚本。换句话说,这不应该在代码中处理。
-
@BalusC,执行 DDL 设置的逻辑位置可能是安装操作,它可能作为代码的一部分分发——为什么要添加当前 DAO 以外的其他内容来处理这通常是必要的步骤?
-
我同意这对生产很危险,但我发现在代码中创建表可以节省大量时间用于原型设计和快速设置本地开发环境。我喜欢创建一个 Maven 配置文件,以确保我不会意外地针对生产配置运行 table drop/create 代码。例如,有时将代码交给另一个开发人员并告诉他们简单地运行类似这样的代码非常方便:
mvn -Pprototype jetty:run。