- 描述符减少。以前在xml配置中往往需要描述java属性的类型,关系等等。而元数据本身就是java语言,从而省略了大量的描述符
- 编译期校验。错误的批注在编译期间就会报错。
- 元数据批注在java代码中,避免了额外的文件维护工作
- 元数据被编译成java bytecode,消耗的内存少,读取也很快,利于测试和维护
关于 映射文件是使用 hbm.xml 文件还是使用 Annotations 我们来看看2者的性能吧. 先声明一下,个人认为映射文件一旦配置好就不会在很大程度上改变了.所以使用xml文件并不会带来很大的好处.如果你认为 映射文件在你的项目中也经常变化,比如一列String数据 ,今天你使用 length="16" 明天你认为 该数据的长度应该更长才能满足业务需求 于是改为length="128" 等等类似的问题 . 如果你经常有这方面的变动的话,下面的比较你可以不用看了 , 你应该使用 xml文件 因为Annotations 无法很好的满足你的要求.
现在让我们就来看看2者的性能比较吧.
(说明: 这里只是比较查找 插入 的时间快慢,没有比较除运行时间以外的其他性能,如 内存占用量 等等)
先来看看测试程序和配置.
首先在 Hibernate.cfg.xml 文件中去掉了
<property name="hibernate.hbm2ddl.auto">update</property>