Hibernate

hibernate 中 session 的方法:

get:使用get方法会立即执行数据库查询操作

load:使用loada方法,如果不对该对象的其他属性进行操作,此时是不会执行
数据库查询的,当在调用该实体类的getter方法的时候才会对数据库进行查找,
这是一种延迟加载的机制,好处是优化程序的性能


同步:同步是指把缓存中的对象的字段值同步到数据库中

可以使用session.flush该方法会执行update语句,在这个方法使用过后要commit之后才会对数据库的信息
进行同步

可以使使用该对象的set方法,之后用session.flush tr.commit才会实现同步


clear:使用该方法,会清除session中的缓存对象,使用了clear方法过后,
对数据的操作都不会被同步到数据库

delete:使用该方法,会执行删除操作,但是会先执行查询的语句,delete过后的对象
不再受session管理,该对象成为暂时\瞬时对象

delete使用hql语句过后可以直接删除对象而不需要再对数据库进行一次查找的操作,这也是一个性能优化的一方面

merge:该方法把处于游离态的对象让它再次受session管理

当事务回滚过后,我们在事务之间执行的SQL语句不会真正执行。
tr.rollback();


hibernate的注解配置:

@Entity注解把一个类注解为实体类

@Table用于注解该实体类映射的数据库表

@Id注解用于注解主键字段

@Column(name="数据库表中对应的字段属性",如果业务需求不想添加字段那么设置 insertable=false,在同步到数据库的时候不会设置该值,如果想以后更新也不更新该字段的值,那么设置updatable=false)
注解配置完成过后需要在hibernate.cfg.xml中设置该类的位置 列:
<mapping class="com.lyc.cod.hibernateday2.entiy.Goods"/>

原文地址:https://www.cnblogs.com/LiaoYunChuan/p/6919342.html