我已经在我的独立和Web应用程序中使用JDBC
(Java数据库连接)很长一段时间了。现在,我的前辈要求我使用Hibernate
框架代替JDBC
,原因如下。
通过使用JDBC
,资源泄漏和数据不一致发生
工作由开发人员完成。
难以实施MVC概念
无封装
大量编程开销
查询是特定于DBMS的
这些因素是否属实?还有其他因素可以支持吗?
为什么我们应该使用Hibernate
代替JDBC
?请帮我解决你的想法。
感谢。
答案 0 :(得分:4)
通过使用JDBC,资源泄漏和数据不一致就像工作一样 由开发人员完成。
<强>假强>
Connection
/(Prepared
)Statement
/ ResultSet
处理的重复代码而导致资源泄漏,那么有许多JDBC模板框架可供使用为你做这件事。persist
操作被级联到已删除的实体。现在你在db中有一个不一致的状态。难以实施MVC概念
部分正确。实体真的有助于更轻松地编写MVC的模型部分。
无封装
部分正确。实际上,映射信息只能在实体中指定,并且稍后会自动地(或多或少)透明地在涉及实体的所有用例中重复使用。
大量编程开销
绝对正确。基本上,ORM解决方案是一种框架,当应用程序中的持久层变得过于复杂时,您最迟可能会自行编写这些框架。根据我的经验,即使在中等大小的应用程序中,手动编写的持久性框架也是应用程序中最复杂的部分。
查询是特定于DBMS的
True。虽然在HQL不适合作业的情况下使用本机查询没有任何问题。
还有其他因素可以支持吗?
关于SO的其他问题:
关于此主题还有数百个博客和论坛主题,您可以使用首选的网络搜索引擎快速找到它们。