当前位置: 首页 > 面试题库 >

Hibernate是否完全支持SQLite

金骞尧
2023-03-14
问题内容

Jboss Hibernate没有对SQLite的支持发表任何意见-

https://community.jboss.org/wiki/SupportedDatabases2

在下面的SO中也提到了相同的内容:

Hibernate + SQLite +Netbeans

您能否对此重点介绍。我想将嵌入式SQLite与Hibernate一起用于秋千桌面应用程序。

我也在评估Derby(JavaDB),因为它也可以嵌入并且是jdk的一部分。


问题答案:

由于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是用本机代码编写的,因此 可能
具有更好的性能。最后,唯一可以决定哪个数据库最好的人就是构建系统的人。



 类似资料:
  • 问题内容: 我刚刚从以前的JDK 1.8.0_33下载了JDK 1.8.0_51,因为我遇到了问题。有一些解决方法可将Jdk 8与Android一起使用,我只是想知道Google是否已在Android Studio中为JDK添加了全面支持?还是应该只使用JDK 1.7?建议将不胜感激。 问题答案: 您应该只使用JDK 1.7。JDK 8中的某些功能尚不支持。

  • 我的项目只支持Java 1.6,我必须使用Hibernate JPA。由于hibernate-jpa-2.1-api为调用存储过程提供了基于注释的支持,我喜欢使用它,但担心它是否支持java 1.6。 我试图在网上搜索,但找不到答案。有人能帮我知道hibernate-jpa-2.1-api是否支持Java 1.6吗?

  • 问题内容: 我正在尝试执行一个简单的INSERT并返回标识(自动递增主键)。我试过了 我收到以下错误 SQLite是否支持SCOPE_IDENTITY? 如果可以,该如何使用? 如果不是,我(最好是“线程安全”)的替代方案是什么? 问题答案: 查看常见问题解答。该sqlite3_last_insert_rowid()函数将做到这一点。不过要小心触发器。

  • 问题内容: 因此,我希望将其转换为这样的Java代码: JAXB是否可能? 曾经看到一些WebService Client存根生成器正在执行此操作,但也许不确定axis2 Webservice。 问题答案: 的 JAXB(JSR-222) 规范没有盖产生快速失败逻辑到域模型。现在,一种常见的做法是以注释(或XML)的形式表示验证规则,并对它们进行验证。 Bean验证(JSR-303) 对此进行了标

  • 我正在使用RDF4J工作台: 尽管我可以在github上的RDF4J存储库中看到对GeoSPARQL的引用,但目前似乎还没有实现。我在已清除的“带RDFS自旋支持的内存存储”存储库上运行了这个SPARQL更新查询,以在RDF4J工作台上设置测试: 这导致一个存储库具有一个事实。 现在,我尝试通过以下查询查找与文字多边形的重叠,该查询应该可以找到上面设置的一个事实: 此查询以HTML的形式给出了一个

  • 问题内容: 我想知道是否有任何方法可以在Java中实现。我认为,如果没有本地对闭包的支持,这是不可能的。 问题答案: Java 8(2014年3月18日发布)不支持curring。可以将Missingfaktor在答案中发布的示例Java代码重写为: …这是非常好的。就个人而言,有了Java 8,我几乎没有理由使用替代的JVM语言(例如Scala或Clojure)。当然,它们提供了其他语言功能,但