使用JPA访问SQLite数据库文件

5
我有一个非常大的SQLite文件,其中包含我的数据库。我需要知道如何将其作为嵌入式数据库与JPA连接,并且是否可能。 我正在开发一个应用程序,将此数据库打包在自己的jar文件中,以便在另一个系统上使用时不必来回导入数据库副本。 我想要使用的技术是Angular和Spring,因为这些是我最熟悉的技术。如果有更适合此目的的技术,我希望得到一些建议。
谢谢 :)

例如,您可以在此处查看:https://dev59.com/H2Af5IYBdhLWcg3w0Vi7 和此处:https://www.baeldung.com/spring-boot-sqlite。网络上和SO上有许多不同的示例。尝试不要一次解决所有问题。必须集中注意力。 :-) - Semo
1
感谢您宝贵的建议。我已经查看了那些帖子和baeldung示例,但是我不知道在项目中放置我的sqlite文件以及如何从配置中引用它。看起来他们使用的是内存数据库。 - Luca Federzoni
1个回答

7

我希望我理解你的问题是正确的,所以我给你做了一个小项目,你可以查看一下:spring-jpa-sqlite-sample。它可能会对你有所指导,但我不保证完全正确或完整。

通过在persistence.properties文件中插入正确的url,轻松更改到sqlite文件的路径:

driverClassName=org.sqlite.JDBC
url=jdbc:sqlite:src/main/resources/chinook.db  --> you may use relative paths.
hibernate.dialect=dev.mutiny.semo.config.SQLiteDataTypesConfig
hibernate.hbm2ddl.auto=none
hibernate.show_sql=true

您还可以使用系统中的环境变量(Environment variables),Spring尝试从中读取,因此您可以引用正确的文件目录。 可以在此处找到: 读取系统环境变量(SO)

最后但并非最不重要的是,要注意不要使用巨大的SQLite文件。 找到另一种方法,并将其首先转换为“真正的”数据库,就像您所知道的任何其他客户端/服务器RDBMS一样(Oracle、MariaDB、MSSQL,这取决于您的场景/口味)。

请更仔细地查看文档:何时使用SQLite(以及何时不要使用!)


非常感谢您的示例。我现在可以连接到我的.sqlite数据库文件了。问题是,这个.sqlite文件已经填满了我需要访问的内容。将实体1-1映射到我的数据库时,我遇到了一个错误。由于这与本主题无关,我认为您的答案是正确的。 :) - Luca Federzoni
谢谢。您能接受答案吗,请(点击复选标记)?关于错误:它取决于stdout输出消息。也许实体类存在问题?Eclipse可以帮助您生成DAO:https://blog.webnersolutions.com/java-how-to-create-entities-from-existing-database-in-eclipse-ubuntu/ - Semo
1
我使用IntelliJ,而且也有一个插件。我成功解决了我的问题,现在JPA运行良好。非常感谢您的帮助。 - Luca Federzoni

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接