HIbernate第二次课

1、Hibernate接口

访问数据库操作的接口:SessionTransactionQuery

配置Hibernate的接口:Configuration

【五大核心接口】【考】

Configuration接口:配置Hibernate,启动Hibernate,创建sessionFactory对象

Session接口:持久化操作的基础,相当于JDBC的connection(自动提交事务),提供了一系列的持久化操作方法save(),update(),delete(),load(),find()【考选择题,没有谁?】

还持有一级缓存。(获得了session相当于获得了数据库连接,执行session方法时候必须要放在事务中,非自动提交事务

即:不开启事务就不能将对象保存在数据库中!!

如何获得session对象?

1)openSession:手动关闭,每次创建心得session对象

2)getCurrentSession:自动关闭,使用现有的session对象

SessionFactory接口:保存了当前数据库配置的所有映射关系,保存在内存中。还是生成Session的工厂,一个SessionFactory对应一个数据库连接(可创建多个session,每创建一个session记得要关闭session啊,如果不关闭,那么hashcode就不一样)

Transaction接口:实现数据库中的事务的控制,是由Session对象产生的,所以他的生命周期比Session短,Ssession的生命周琪中可以有多个Transaction对象

Query接口和Criteria接口:执行数据库的查询


else:

大类型向小类型转换即强转类型转换-简称强转或显式类型转换


2、单表的CRUD操作实例:
save()

update()

Student s = (Student)session.get(String.class,100)//,反射机制,主键100

s.setGender("女");

session.update(s);

delete()

Student s = (Student)session.get(String.class,100)//,反射机制,主键100

session.update(s);

或者

tx=sesion.beginTransaction();

session.delete("from Customer as c");

tx.commit()

;get/load()

Student s =(Student) session.get(String.class,100)//,反射机制,主键100,立刻发送sql语句

Student s = (Student)session.load(String.class,100)//,反射机制,主键100,等要使用这个对象的时候才发送sql语句,返回代理对象

system.out.println(s);

3、Hibernate对象的生命周期【考】

(1)瞬态:表示该实体对象与数据库中的数据无任何关联,也从未与任何持久化上下文联系过,也没有持久化标识(主键)

(2)持久态:一个实体对象与一个Session对象的实例相关的。也与数据库数据相关联。Hibernate会根据持久态对象的属性的变化而改变数据库中的相应记录

(3)游离态:由持久态对象转换而来,不再与Session关联,与数据库的中数据没有直接联系

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容