Spring Boot:在运行时更改数据库表
Posted
技术标签:
【中文标题】Spring Boot:在运行时更改数据库表【英文标题】:Spring Boot: Altering database tables at runtime 【发布时间】:2020-07-27 11:26:48 【问题描述】:目前正在使用 Spring Boot 开发一个 Web 应用程序,用户需要上传带有联系人的 .CSV 文件来填充数据库。
每个 .CSV 文件(联系人列表)可能有一组不同的列(例如:姓名、电子邮件、地址等)。 每个列表可能包含数千条记录。 该应用程序涉及单独读取和写入每个列表。 该应用还必须提供列的插入/删除功能。问题 1:将此类数据插入数据库的最佳方法是什么?
到目前为止,我能想到两个选择:
拥有一个包含所有列表中的所有数据的表。
或
为每个新列表创建一个新表。
问题 2:虽然第一个选项使用 Spring Boot 的 JPA + Hibernate 很容易实现,但我不确定如何处理第二个选项。由于字段因列表而异,因此我们无法提供资源表示类。有什么建议吗?
问题 3:拥有资源表示类并使用 Hibernate 是否甚至可以动态更改数据库表(插入/删除列)?
【问题讨论】:
为了给出好的反馈,写创建表。图片不够有用 【参考方案1】:我认为您应该使用 MongoDB 作为数据库,因为它以 JSON 格式保存数据,记录字段可以不同 彼此之间,所以也许在你的情况下这是一个不错的选择。
【讨论】:
以上是关于Spring Boot:在运行时更改数据库表的主要内容,如果未能解决你的问题,请参考以下文章
spring boot java在运行时连接多个数据库并选择表
如果运行 spring boot 并让 liquibase 自动执行迁移,则 Liquibase databasechangelog 表存储相对路径