【问题标题】:Access sqlite db file with jpa使用 jpa 访问 sqlite db 文件
【发布时间】:2020-06-22 19:52:47
【问题描述】:

我有一个包含我的数据库的大型 sqlite 文件。我需要知道是否有可能以及如何使用 jpa 将其作为嵌入式数据库连接到该数据库。 我正在开发一个应用程序,将这个数据库打包在它自己的 jar 中,这样当我在另一个系统上使用它时,我不必来回导入我的数据库的副本。 我想使用的技术是 Angular 和 Spring,因为这些是我最了解的。如果有一些更适合此目的的技术,我想要一些建议。

谢谢:)

【问题讨论】:

  • 例如,您应该看这里:stackoverflow.com/questions/24232892/spring-boot-and-sqlite 和这里:baeldung.com/spring-boot-sqlite。网络上有许多不同的例子,这里也有 SO。尽量不要一次解决所有问题。你必须专注。 :-)
  • 感谢您的宝贵建议。我已经查看了那些帖子和 baeldung 示例,但是我不明白将我的 sqlite 文件放在项目中的哪个位置以及如何从配置中引用它。看起来他们使用的是内存数据库。

标签: spring database sqlite jpa


【解决方案1】:

我希望我没有正确理解你的问题,所以我为你做了一个小项目,因此你可以看看它: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 变量,Spring 尝试从中读取,以便您可以将正确的目录引用到文件。可以在这里找到:Read system environment var (SO)

最后但并非最不重要。小心使用巨大的 SQLite 文件。找到另一种方法并首先将其传输到“真实”数据库中,就像您知道的任何其他客户端/服务器 RDBMS(Oracle、MariaDB、MSSQL,取决于您的场景/品味)一样。

仔细查看文档:When to use SQLite (and when not to!)

【讨论】:

  • 非常感谢您的示例。我现在可以连接到我的 .sqlite 数据库文件。现在的问题是这个 .sqlite 文件已经充满了我需要访问的东西。将实体 1-1 映射到我的数据库时出现错误。由于它与该主题无关,因此我认为您的答案是正确答案。 :)
  • 谢谢。请您接受答案吗(点击复选标记)?关于错误:它取决于标准输出输出消息。也许实体类有问题? Eclipse 可以帮助您生成 DAO:blog.webnersolutions.com/…
  • 我使用 IntelliJ,也有一个插件。我设法解决了我的问题,JPA 现在工作正常。非常感谢您的帮助。
猜你喜欢
  • 2019-11-29
  • 2012-05-01
  • 2021-03-28
  • 2014-03-01
  • 2016-08-15
  • 1970-01-01
  • 2011-06-21
  • 1970-01-01
  • 2010-11-08
相关资源
最近更新 更多