5.Hibernate基本操作具体使用

目录


Hibernate专栏目录(点击进入…)



Hibernate操作

1.导入jar包(并Build Path)

2.设置本地.dtd文件验证xml文档(提供代码提示功能)

在这里插入图片描述

在这里插入图片描述

Location:为自带Hibernate.hbm.xml、 Hibernate.cfg.xml映射文件所在的路径
一般为:project\hibernate-core\src\main\resources\org\hibernate

Key Type描述
Public ID文件头注释可取到
URI文件头注释<!DOCTYPE>可取到

Key下面的Alternate也可选择配置,那么Key type则要选择Public ID。


3.编写核心配置文件(hibernate.cfg.xml) 、编写映射文件(实体类名.hbm.xml)

4.编写代码实现

使用Hibernate完成持久化操作

在这里插入图片描述

通过Hibernate API访问数据库

Configuration conf = new Configuration().configure();
SessionFactory sf = conf.buildSessionFactory();
Session session = sf.getCurrentSession();
Transaction tx = session.beginTransaction();
session.save(user);  
tx.commit();
session.close();

使用Hibernate操作数据库包括七个步骤

(1)读取并解析配置文件及映射文件

//加载默认核心配置文件
Configuration conf = new Configuration().configure();

根据每人位置的Hibernate配置文件中的信息,构建Configuration对象。Configuration负责管理Hibernate的配置信息

(2)依据配置文件和映射文件中的信息,创建SessionFactory对象

SessionFactory sf = conf.buildSessionFactory();

Configuration对象会根据当前的数据库配置信息,构造SessionFactory对象。SessionFactory对象一旦构造完毕,Configuration对象的任何变更将不会影响已经创建的SessionFactory对象。如果Hibernate配置信息有改动,那么需要基于改动后的Configuration对象重新构建一个SessionFactory

(3)打开Session

Session session = sf.openSession();
Session session = sf.getCurrentSession();

SessionFactory负责创建Session对象;Session是Hibernate持久化操作的基础,Session作为贯穿Hibernate的持久化管理器的核心,提供了众多的持久化方法,如save(),delete(),update(),get(),load()等。

通过这些方法,即可透明地完成对象的增、删、改、查(CRUD)

(4)开始一个事务

Transaction tx = session.beginTransaction();

(5)数据库操作

// 保存操作
session.save(user);

(6)结束事务

// 提交事务  
tx.commit();
// 回滚事务
tx.rollback();

(7)关闭session

session.close();

如果是通过SessionFactory的openSession()方法获取的Session对象,则需要关闭session

如果在Hibernate配置文件中将参数current_session_context_class设置为thread,并采用SessionFactory的getCurrentSession()方法获得Session对象,则不需要执行session.close()方法,通过这种方法获得的Session对象,会在关联的事务结束(提交或回滚)时自动关闭。

在项目开发的时,一般使用工具类来管理SessionFactory和Session,采用SessionFactory的getCurrentSession()方法来获取Session对象
结合Hibernate配置文件中如下设置:

<property name=”current_session_context_class”/>thread</property>

使用Hibernate实现主键查询

在进行修改或删除操作时,应先加载对象,然后在执行修改或删除操作,Hibernate提供了两种方法按照主键加载对象:get()和load()方法

// 没有主键为id数据返回null
Object get(Class clazz , Serializable id);

// 没有主键为id数据,运行到获取实体类值的时候会抛出异常ObjectNotFoundException(对象没有找到)
Object load(Class clazz , Serailizable id);

虽然都能够加载对象,但是它们有区别

使用Hibernate实现数据库的增、删、改操作
增加:调用save()方法 主键第一个值可以使用new Byte()设定
删除、修改:首先要获得数据,然后在进行修改和删除数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

未禾

您的支持是我最宝贵的财富!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值