Atu*_*tul 42 java sqlite hibernate
Jboss Hibernate对SQLite的支持没有任何说明 -
https://community.jboss.org/wiki/SupportedDatabases2
同样在下面提到SO:
能否请你强调一下这个.我想将嵌入式SQLite与hibernate一起用于swing桌面应用程序.
我也在评估Derby(JavaDB),因为它也可以嵌入并且是jdk的一部分.
ph4*_*r05 35
那里有几种SQLite方言.
https://github.com/kemitix/sqlite-dialect
<dependency>
<groupId>net.kemitix</groupId>
<artifactId>sqlite-dialect</artifactId>
<version>0.1.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
Hibernate配置:
hibernate.dialect = org.hibernate.dialect.SQLiteDialect
Run Code Online (Sandbox Code Playgroud)
https://github.com/EnigmaBridge/hibernate4-sqlite-dialect
<dependency>
<groupId>com.enigmabridge</groupId>
<artifactId>hibernate4-sqlite-dialect</artifactId>
<version>0.1.2</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
Hibernate配置:
hibernate.dialect = com.enigmabridge.hibernate.dialect.SQLiteDialect
Run Code Online (Sandbox Code Playgroud)
注意:我是此存储库的作者.基于gwenn
回购.
https://github.com/gwenn/sqlite-dialect/
尚未添加到maven中央存储库.作者与Hibernate团队合作,将其直接集成到Hibernate.它在本期中被跟踪.
同时你可以使用https://jitpack.io/
添加jitpack存储库:
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
Run Code Online (Sandbox Code Playgroud)
添加依赖:
<dependency>
<groupId>com.github.gwenn</groupId>
<artifactId>sqlite-dialect</artifactId>
<version>master</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
Hibernate配置:
hibernate.dialect = org.hibernate.dialect.SQLiteDialect
Run Code Online (Sandbox Code Playgroud)
mth*_*ers 18
由于SQLite是用于类C环境的嵌入式数据库,用C语言编写并编译为本机代码,因此Hibernate(或任何ORM)支持的更改并不高.Java是跨平台的,拥有依赖于平台的依赖关系会有点奇怪.在Android上,使用了SQLite,但平台为它提供了JDBC驱动程序.
通常,Windows二进制文件在不同的Windows版本上兼容 - 只要架构保持不变即可.如果您查看SQLite下载页面,您会注意到有一个32位预构建的Windows二进制文件.这个可用于几乎任何Windows版本(可能除了Windows RT之外),但是你不能在Linux或OS X上使用它.为了从Java使用SQLite,你需要为特定的OS包含正确的二进制文件体系结构,有效地使Java应用程序依赖于平台.那是你通常不想要的东西.
如果您在Swing中构建桌面应用程序并且想要使用嵌入式数据库,我的建议是使用Java嵌入式数据库,如H2,HSQL或Derby.后者也随Oracle Java一起提供JavaDB.所有都支持为hibernate方言(有关方言的完整列表,请参阅方言类:https://github.com/hibernate/hibernate-orm/tree/master/hibernate-core/src/main/java/org/hibernate /方言)
如下所述@akostadinov,您可能还需要考虑其他因素,例如,SQLite是用本机代码编写的,因此可能具有更好的性能.最后,唯一可以决定哪个数据库最好的是构建系统的人.
如果您因任何原因需要使用SQLite和Hibernate,那么您需要一个自定义方言.看起来网络上有一些实现.
我尝试了这个:https://github.com/gwenn/sqlite-dialect,它对Hibernate 3有用(我相信它需要一些Hibernate 4的更新).请注意,您必须自己编译代码,然后将hibernate.dialect
配置属性设置为org.hibernate.dialect.SQLiteDialect
.
我找到的其他实现:http://code.google.com/p/hibernate-sqlite/和https://gist.github.com/virasak/54436.
从Hibernate 6开始,SQLite 成为Hibernate 存储库中社区方言的一部分。
添加以下依赖项:
摇篮:
implementation("org.hibernate.orm:hibernate-community-dialects:6.4.1.Final")
Run Code Online (Sandbox Code Playgroud)
行家:
<dependency>
<groupId>org.hibernate.orm</groupId>
<artifactId>hibernate-community-dialects</artifactId>
<version>6.4.1.Final</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
在配置文件之一中设置方言:
JPA ( src/main/resources/META-INF/persistence.xml
):
<persistence ...>
<persistence-unit ...>
<properties ...>
<property name="jakarta.persistence.jdbc.driver" value="org.sqlite.JDBC"/>
Run Code Online (Sandbox Code Playgroud)
休眠 ( hibernate.properties
):
hibernate.dialect=org.hibernate.community.dialect.SQLiteDialect
Run Code Online (Sandbox Code Playgroud)
春季启动 ( application.properties
):
spring.jpa.properties.hibernate.dialect=org.hibernate.community.dialect.SQLiteDialect
Run Code Online (Sandbox Code Playgroud)
在此 Hibernate GitHub 讨论中了解有关 Hibernate 社区维护的方言的更多信息。
归档时间: |
|
查看次数: |
56432 次 |
最近记录: |