java进阶面试题四

一、Hibernate的三种状态及其之间是如何转化的

瞬时状态(临时状态):在一个对象刚被创建的时候,没有持久化,并没有处于session的缓存中。

持久化状态:执行了session的dave()方法,已经持久化,计入到session中,在数据库中有记录。

持久化状态特点:和session实例关联。在数据库中有关联记录。当一个session执行close()或clear()、evice()之后,持久对象变成脱管对象,session缓存中删除。

有理状态(脱管状态):持久化对象脱离了session的对象。特点:已经持久化,但不在session中。

二、sql优化:(索引、范式)

范式:

   第一范式(确保每列保持原子性)最基本范式。数据库表中所有字段值都是不可分解的原子值,就满足了第一范式。

第二范式(确保表中的每列都和主键相关)在第一范式上更近一层。确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关,也就是说一个表中只能保存一种数据,不可以吧多种数据保存在一张表中。

第三范式:确保每列都和主键列直接相关,不是间接相关。

索引:

    避免对索引字段进行计算、避免索引在字段上使用not、<>、!=、避免在索引上使用IS NULL和NOT NULL、避免在索引列上出现数据类型转换、避免索引字段使用函数、避免建立索引的列出现空值


你可能感兴趣的:(编程)