今天我尝试使用Hibernate创建一个名为ORM的应用程序。因此,虽然创造我有一个疑问。使用的最佳实践是什么,Hibernate映射文件(.hbm文件)或注释?它的优点和缺点是什么?请帮助我理解。
答案 0 :(得分:12)
答案 1 :(得分:8)
问题是你的口味是什么 - 两种方式都可以(大多数情况下)相同,不同之处在于如何写作。
使用注释,您可以将Java成员变量/ getter和映射直接放在一起。
Xml映射文件可以更好地概述表及其映射。
在我看来,xml映射文件有助于更好地设计数据库和应用程序。 Annonations倾向于强制Java类的方向 - >映射 - >数据库表,这是错误的方向(数据库总是应该首先设计 - 以后更改数据库表需要付出很多努力 - 大多数性能泄漏都在糟糕的数据库设计中 - Java类很容易随时更改。)
如果xml文件有一个功能优势:如果你有不同的数据库有结构差异,例如一个Oracle数据库和一个MySQL数据库,可能是表名和数据类型的一些差异,然后将你的应用程序从一个数据库移植到另外你只需要编写一些新的映射文件。您无需更改单行Java代码。注释无法做到这一点。
我更喜欢使用xml映射文件。那是我的品味。
答案 2 :(得分:4)
使用XML方法的一个很好的用例是,如果您持久保存由另一个实用程序生成的对象,因此无法进行注释。
除此之外,我会使用注释,因为它倾向于使用更清晰的实现,并且你不太可能通过拼写错误的属性名称来引入错误。
答案 3 :(得分:2)
这就是“TUTORIALS POINT”中的说法
“如果您要使应用程序可移植到其他符合EJB 3的ORM 应用程序,则必须使用注释来表示映射信息,但如果您想要更大的灵活性,仍然 然后你应该使用基于XML的映射“
对我来说,我更喜欢XML配置文件,而不是注释。因为那时我们可以进行更改,只需更改代码。
答案 4 :(得分:0)
注释基于约定优于配置的原则:
http://en.wikipedia.org/wiki/Convention_over_configuration
而xml文件只是配置。
关于使用注释与使用配置的讨论很多。
从我的角度来看,我更喜欢注释,因为它更容易编写和维护。
答案 5 :(得分:-1)
与XML相比,使用java语言和Java开发人员开发了易于学习的注释。实时表名和列名中的另一个点固定为99%,因此无需更改java代码 但是如果你想经常更改表名和列名,你将使用XML 最后cfg.xml文件是manadatary,因为数据库可能会更改。