重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
本文研究的主要是Hibernate的Session_flush与隔离级别,具体介绍和实例如下。
为伽师等地区用户提供了全套网页设计制作服务,及伽师网站建设行业解决方案。主营业务为网站设计、成都做网站、伽师网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!概念介绍我们先来看一些概念:
1.脏读:脏读又称为无效数据的读出,是指在数据库访问中,事物T1将某一值修改,然后事物T2读取该值,此后T1因为某种原因撤销对该值的修改,这就导致了T2所读取的数据是无效的。脏读就是指当一个事物正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事物也访问这个数据,然后使用了这个数据。因为这个数据还是没有提交的数据,那么另外一个事物读到的这个数据就是脏数据,依据脏数据所做的操作是不正确的。
2.不可重复读:比如我在读一个帖子,我查出来的数据是张三、李四,然后我一刷新发现最开始的张三变成了张八,这就是所谓的不可重复读,因为我读出的数据没重复了嘛。
3.幻读:我在查数据的时候,开始查出来的记录为3条,我一刷新,发现记录变为了8条,这就是幻读。
4.提交读:提交了之后才可以读取,Oracle默认就是这个,这种方式是不存在脏读的。
5.可重复度:很显然是和不可重复读相反的,它可以避免不可重复读,但是这个不能避免幻读。
6.序列化:这种方式非常严格,通俗的说就是,当我在做一件事情的时候,其他任何人都不能做,非常安全,但是效率极低。
隔离级别下面我们通过实际的例子来体会Hibernate清除缓存的应用。
Hibernate映射数据库和主键的生成策略有关。
UUID的方式生成主键的例子:
public class User { private String uid; private String uname; private Date birthday; public String getUid() { return uid; } public void setUid(String uid) { this.uid = uid; } public String getUname() { return uname; } public void setUname(String uname) { this.uname = uname; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } }