Hibernate框架的CURD操作

Hibernate

1、Hibernate 介绍

  • 是一个开源的轻量级框架,基于MVC的dao层,注重于对数据库的操作,主要实现了java程序员通过面向对象的方法去控制数据库,也就是CURD操作!

2、Hibernate 中对象的三种状态(了解)

  • a>临时状态:刚刚使用new语句创建的对象,不处于session缓存中
  • b>持久化状态:处于session缓存中的对象
  • c>游离状态:已经持久化,但不处于session缓存中
    图示:
    这里写图片描述
    简单图示:
    这里写图片描述

3、Hibernate的配置(重点)

配置如图:
这里写图片描述

第二个:配置hibernate的核心配置文件
特性:名字固定为hibernate.cfg.xml,位置固定在src根目录下(可自拟,但是在加载时,需要指定)
配置条件:需要一个dtd文件,也可以引用网上的
下载地址:http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd
配置如图:
这里写图片描述

4、Hibernate 核心接口(重点)

  • a>SessionFactory :负责创建session对象 固而称之为 Session工厂类
  • b>Session : 负责被持久化的对象的CURD操作
  • c>Configuration:负责配置启动核心配置文件,创建sessionfactory
  • d>Transaction:负责事物相关事件
  • e>Query和Criteria接口:负责执行各种对数据库的查询

5、Hibernate 的步骤

  1. 通过Configuration config = new Configuration().configure();//读取并解析hibernate.cfg.xml配置文件
  2. 由hibernate.cfg.xml中的读取并解析映射信息
  3. 通过SessionFactory sf = config.buildSessionFactory();//创建SessionFactory
  4. Session session = sf.openSession();//打开Sesssion
  5. Transaction tx = session.beginTransaction();//创建并启动事务Transation
  6. persistent operate操作数据,持久化操作
  7. tx.commit();//提交事务
  8. 关闭Session
  9. 关闭SesstionFactory

6、为什么要用Hibernate

Hibernate 对jdbc访问数据进行封装,简化代码,通过ORM思想简化dao层的编码工作,利用反射机制完成一系列的操作,,性能好,支持各种从一对一到多对多的负责关系
提问:什么是ORM思想?即Object Relational Mapping
答:对象关系映射!其实相当于创建一个可以使用“虚拟对象数据库”,通俗来讲就是可以通过操控对象来操控对应的数据库的这样一个渠道

7、Hibernate 是如何延迟加载?Get和load方法的区别

Get和load最明显的区别就是:
如果get方法没找到返回null
Load方法没找到抛一个ObjectNotFoundExeception异常,它会使用代理方法延迟加载

总的来说一句话:load方法认为数据库中一定存在此数据,可以放心的延迟加载,如果没有只会抛异常;而get方法,则一定要获取到真实数据之后再做决定,没有就返回null.

8、hibernate 的CURD操作

上面说了那么多,实际操作一下吧

1、先来使用hibernate建立一张表,我们知道,一个表对应一个实体类,所以我们需要一个实体类,对应的是实体类的配置文件,hibernate的核心配置文件中

<property name="hbm2ddl.auto">update</property>

会给我们创建表
代码如图:
这里写图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值