【发布时间】:2018-08-14 01:02:48
【问题描述】:
我正在构建一个 Spring Boot thymeleaf Web 应用程序。该应用程序旨在为我们的用户提供一种查看和维护我们数据库中的参考表的方法。这些参考表存储在它们自己的“参考”数据库中。这些表用于查找、保存作为主数据库计算输入的值等。
由于有数百个参考表,我选择不将它们映射到类,而是从参考数据库中获取 ResultSet 元数据,使用它来生成表列表并使用 thymeleaf 将其显示给用户。
我是 Spring Boot 和 thymeleaf 的新手,但似乎无法找到一种方法来遍历 ResultSet 以显示元数据的内容。有没有办法做到这一点?似乎 ResultSet 通常使用 while 循环进行迭代,每个循环都会移动光标,但 thymeleaf 似乎使用 for 循环?
一种解决方案是以通常的方式迭代 ResultSet 并将每一行添加到对象列表的列表中,这可能类似于 db 表,例如List<List<Object>>,但我不想仅仅为了使用百里香而这样做。另外,ResultSet 有一堆有用的信息,关于每个表列的预期数据类型和属性,我以后可以使用这些信息来验证用户可能通过应用程序添加/修改的任何新记录。还是有更好的方法来表示数据库表及其相关属性?
【问题讨论】:
-
您提到您可以选择不将它们映射到类,因为有数百个或参考表。您是否打算一次向用户显示所有这些?表示数据库表的常用方法是将列映射到对象字段并将它们添加到由 thymeleaf 模板选取的模型中。 Thymeleaf 然后可以通过类中的 getter 和 setter 引用这些字段。
-
将 ResultSet 传递给 View 不是一个好主意。相反,您应该尝试将结果放入通用 List
-
你的元数据结构不能映射到一个类(然后使用类映射)吗? “数百个参考表”,您指的是元数据数据库吗?
-
@Sam - 因为我们有数百个这样的表,所以我想生成一个包含表列表的页面,然后为每个 db 表动态生成一个页面,该页面将动态显示列和记录,然后最终用户可以根据需要添加或修改记录。我们的想法是,我们不会通过将每个表映射到一个类来与每个单独的 db 表的设计相关联,而是我们使用 db 元数据来动态地构造每个表的表示。
-
我明白了。阿米特点可能会奏效。您可以使用 List
标签: java spring-boot jdbc thymeleaf