【发布时间】:2023-03-25 19:41:01
【问题描述】:
我们在 Web 应用程序中使用 JDBC 已经有很长时间了。我们使用它的主要原因是因为我们可以 100% 控制代码、sql 和手动修复。除此之外,我们在数据库内部使用了触发器,数据库由数据库专家单独开发。
不过现在很多人推荐使用Hibernate,所以我们也考虑过使用它。但是,我们发现了以下问题。
Hibernate 无法连接到“现有”数据库。它总是尝试创建一个自己的。
我们的数据库可能会被不同平台(云、服务器、VPS、个人计算机)中的相同应用程序访问。在这种情况下,由于它的缓存,Hibernate 可能会出现问题。
我们从不喜欢将“创建表的工作”交给 java 代码。我们总是手动创建表格。
我们可能不得不使用非常长且复杂的 SQL 语句。上次我们使用了一个超过 150 行的语句,连接了 20 多个表。我们怀疑在涉及到 Hibernate 时我们是否会在这方面遇到麻烦。
我们的 SQL 代码既美观又标准。 Hibernate 生成的代码对我们来说似乎有点脏。
我们总是使用 MySQL。切勿使用任何其他数据库。
我们创建的应用程序需要与医疗相关的最高安全性。如果至少有一条数据记录被泄露,我们就完蛋了。
数据库中有很多
foreign keys、Primary Keys、Composite Keys、Unique Keys等。在论坛上,有人抱怨 Hibernate 搞砸了这些。我们决定尝试使用 hibernate,因为有人声称,“你们是软件工程师吗?你们在使用已经死掉的
JDBC!!。”
考虑到这些,请让我知道以上几点是否真的正确(正如我所说,我是通过谷歌搜索、讨论等了解它们的)。而且,Hibernate VS Java JDBC 的优缺点是什么?
【问题讨论】:
-
1+3:您不必让 Hibernate 为您创建表。 2:您不必使用缓存。 4+5:我明白了。也许你想看看 jOOQ。用于手写 SQL 的类型安全 Java DSL,无需进入 ORM。 6:Hibernate 支持 MySQL。 7:这似乎是一个完全独立的问题(与您使用的数据库访问库无关)
-
@Alex:感谢您的回复。我又加了2分,请看一下。
-
@Thilo:感谢您的评论。我又加了2分,请看一下。
-
显然这不是 JDBC 或 Hibernate 的问题。它是 JDBC 或 JPA。你知道,一些 JPA 实现与 Hibernate 做的事情不同。也许你可以对其他事情敞开心扉……
标签: java mysql hibernate jpa jdbc