目前,我公司正在使用IBATIS和纯SQL作为数据库持久性机制。 我非常喜欢SQL查询,尤其是在调优中,但是我不喜欢在Java应用程序中编写所有SQL语句,很容易遇到拼写错误,这是多么愚蠢而又乏味的工作?
终于,我公司有了一个新项目,现在是将Hibernate推荐为我们新的java数据库持久性机制工具的合适时机。 为了说服老板接受Hibernate作为新项目的考虑,我必须强调Hibernate的好处和优势。
为什么要进行O / R映射?
1.生产力
它可以帮助开发人员摆脱编写复杂而乏味的SQL语句的需要,而不再需要用于结果集或数据处理的JDBC API。 它使开发人员更加专注于业务逻辑并提高了项目的生产率。
2.可维护性
它有助于减少代码行,使系统更易于理解,并更多地强调业务逻辑而不是持久性工作(SQL)。 更重要的是,代码较少的系统更易于重构。
3.便携性
它从底层SQL数据库和sql方言中抽象出我们的应用程序。 切换到其他SQL数据库几乎不需要更改Hibernate配置文件(一次写入/在任何地方运行)。
老板:对我来说,听起来很有趣。 (实际上,我不知道您在说什么)还有其他像Hibernate一样的O / R映射工具或数据库持久性机制吗?
我:是的,老板,它确实退出了,但是我要告诉你,为什么我选择Hibernate而不是其他。
为什么选择Hibernate而不是其他?
Java中流行的开源持久性框架
1. 休眠-http : //www.hibernate.org/
2. EJB3 – http://java.sun.com/products/ejb/index.jsp
3. Oracle热门链接 – http://www.oracle.com/technology/products/ias/toplink/index.html
4. 卡宴 – http://cayenne.apache.org/
5. 打开JPA – http://openjpa.apache.org/
6. IBATIS – http://ibatis.apache.org/javadownloads.cgi
7. JPOX – http://www.jpox.org/
我不想单独比较每个O / R或非O / R持久性机制,它可能花费了一年多的时间进行研究和动手实践比较。 基于我个人的拙见,我将选择Hibernate作为优于其他工具的最佳O / R映射持久性机制。
选择休眠的原因
1.生产率,可维护性,可移植性
Hibernate提供了上述所有O / R好处。 (生产力,可维护性,可移植性)。
2.免费-具有成本效益
Hibernate是免费和开源的–具有成本效益
3.学习曲线短
由于我们都有使用Hibernate的工作经验,并且Hibernate完全是面向对象的概念,因此它会缩短我们的学习曲线。
4.代码生成工具
社区提供的Hibernate工具可帮助开发人员非常快速,轻松地生成或开发Hibernate应用程序。 (Eclipse的插件和代码生成工具)
5.受欢迎
Hibernate非常流行,当我们在Hibernate上出错时,我们可以轻松地从Google找到答案。 此外,还有许多关于Hibernate的书籍,社区和论坛。
我:你好,老板,你好,你在听吗?
老板: …是的,是的,我明白你的意思。
我: ……(真的吗?)
老板:既然您列出了很多好处,它是开源的并且免费的,我会支持您的,请记住不要延迟交货日期。
我: ……(免费……交货日期……这是老板)谢谢老板……您真棒!
这是我没有通知老板的使用Hibernate的另一个优势。 可能我将其添加为数字6。
6)市场需求吧
Java Market需要Hibernate开发人员,与其他工具相比Hibernate开发人员的需求正在增长。 休眠的工作经验无疑会为我的下一个跳跃增加优势。 你认为我应该通知我的老板吗? 🙂
参考
休眠工具(Eclipse插件和代码生成)
http://www.hibernate.org/255.html
http://www.hibernate.org/hib_docs/tools/reference/zh/html_single/
1.休眠是最佳选择吗?
http://java.dzone.com/news/hibernate-best-choice
2. Hibernate VS TopLink VS CMP
http://www.theserverside.com/discussions/thread.tss?thread_id=27037
3. Hibernate与EJB 3.0持久性
http://www.theserverside.com/discussions/thread.tss?thread_id=38800
4.基于Hibernate,JDO和EJB3的持久性新J2EE应用的优缺点
http://saloon.javaranch.com/cgi-bin/ubb/ultimatebb.cgi?ubb=get_topic&f=78&t=000927
5. iBATIS与Hibernate的比较-是什么原因导致一个被选中?
http://www.javalobby.org/java/forums/t16496.html
6. Java中的开源持久性框架
http://java-source.net/open-source/persistence
翻译自: https://mkyong.com/hibernate/why-i-choose-hibernate-for-my-project/