hibernate学习笔记1

1.持久化类的属性选择:两种:(1)将OID设置成包装类(2)将OID设置成基本类型

各有优缺点,包装类默认为null,基本类型如果int默认值则为0,有时0是有意义的,如学生成绩,这样会造成误区,所以在用的时候根据实际情况进行选择用哪种形式。

2.hibernate默认使用setXXX()和getXXX()方法来访问持久化类的属性,默认accessproperty。当access属性为field时,hibernate会使用反射机制直接访问类的属性。

3.可以在持久化类的访问方法中加入逻辑,使数据表中NAME字段对应持久化类中两个属性,如firstNamelastName

4.设置派生属性,如 数据表中没有avg字段,但是持久化类中有avg属性,就可以用

<property name="avg" 
   formular="(select avg(t.AGE) from tableName t)"
/>


5.hibernate在初始化阶段,会根据映射文件信息,为所有持久化类预定义SQL语句:insert update, delete by id, select by OID,并将这些语句存在SessionFactory内置缓存中,当session执行saveupdatedeleteload将从缓存中找到相应SQL语句,并将参数值绑定到该SQL语句中。

6.在映射文件<property>属性中,有update 和 insert 属性,有falsetrue两种选值,false则代表不能进行操作,true代表可以操作,相应的,update属性可以在<class>mutable属性设置,如果为false等价于property中所有update=false。在<class>中,有dynamic-insertdynamic-update两种属性,如果为true,则动态生成insert语句,而且insert语句中仅包含所有取值不为null的字段,这种方式占用CPU时间和占用的内存很小,建议在表字段多的时候使用,以便提高系统性能。

7.当通过Configuration的默认构造方法Configuration()来创建Configuration实例时,hibernate会到classpath中查找默认的hibernate.property文件,如果找到,就把它的配置信息加载到内存中,在默认情况下,hibernate不会加载hibernate.cfg.xml文件,必须通过Configurationconfigure()方法来显示加载hibernate.cfg.xml文件,该方法会到classpath中查找hibernate.cfg.xml,如果找到就把它的配置加载到内存,如果没找到,就抛出异常。

你可能感兴趣的:(Hibernate)