3.1.3 定义模式并预加载数据

除了 Ingredient 表之外,还需要一些保存订单和设计信息的表。图 3.1 说明了需要的表以及这些表之间的关系。

图 3.1 Taco Cloud 数据表

图 3.1中的表有以下用途:

  • Ingredient - 保存着原料信息

  • Taco - 保存着关于 taco 设计的重要信息

  • Taco_Ingredient - 包含 Taco 表中每一行的一个或多行数据,将 Taco 映射到该 Taco 的 Ingredient

  • Taco_Order - 保存着重要的订单细节

  • Taco_Order_Tacos - 包含 Taco_Order 表中的每一行的一个或多行数据,将 Order 映射到 Order 中的Tacos

下一个程序清单显示了创建表的 SQL 语句。

最大的问题是把这个模式定义放在哪里。事实证明,Spring Boot 回答了这个问题。

如果有一个名为 schema.sql 的文件。在应用程序的类路径根目录下执行 sql,然后在应用程序启动时对数据库执行该文件中的 SQL。因此,应该将程序清单 3.8 的内容写入一个名为 schema.sql 的文件中,然后放在项目的 src/main/resources 文件夹下。

还需要用一些 Ingredient 数据来预加载数据库。幸运的是,Spring Boot 还将执行一个名为 data.sql 的文件,这个文件位于根路径下。因此,可以使用 src/main/resources/data.sql 中的下面程序清单中的 insert 语句来加载包含 Ingredient 数据的数据库。

即使只开发了 Ingredient 数据的存储库,也可以启动 Taco Cloud 应用程序并访问设计页面,查看JdbcIngredientRepository 的运行情况。继续……试试吧。当回到代码中时,可以继续编写用于持久化 Taco、Order 的存储库和相应的数据。

最后更新于

这有帮助吗?