Hibernate持久化操作

关于Hibernate的一些基础问题


Hibernate 通过ORM (即对象关系映射)技术来实现数据的持久化操作的,也就是把关系数据库映射为java 中的类和对象。

闲话不多说,下面介绍一下使用Hibernate 进行数据持久化的步骤

如果大家需要一个简单的Hibernate例子的话,可以参照我的一篇文章<<一个简单的Hibernate例子的心得 >>

1.  创建Configuration 对象。对配置文件进行读取和解析。

Configuration cfg=new Configuration().Configure()

2.  创建SessionFactory 对象。这个对象是产生Session 对象的工厂。注意,这一步和上一步在应用程序中只进行一次。

SessionFactory sessionFactory=cfg.buildSessionFactory()

3.  创建Session 对象。这个对象相当于和数据库的一个连接。

Session session=sessionFactory.openSession()

4.  开始一个事务。

Transaction t=session.beginTransaction()

5.  进行持久化操作。

Session.save(Object o)…

6.  提交(结束)事务。

t.commit()

7.  关闭Session 对象。

Session.close()

 

在进行持久化的过程中,一个持久化类有三个状态:瞬态(Transient, 持久态(Persistent, 游离态(Detached

    下面用一个Child 类解释一下:

    Public class Child{

        String id;// 主键

        String name;// 名字

        Getter and Setter…

}

1.  瞬态(Transient )是一个类刚刚建立还没有进行持久化操作的时候的状态,这时候的类没有标示(就是数据库表中的主键)

例如:Child c=new Child();

       c.setName(“David”);

这个类还没有持久化,是瞬态。

2.  持久态(Persistent )此时这个类处于Hibernate 框架的管理中,这时候你对该对象作的任何改动都会持久化到数据库中。

例如:从上面继续

     Configuration cfg=new Configuration().Configure();

     SessionFactory sessionFactory=cfg.buildSessionFactory();

      Session session=sessionFactory.openSession();

Transaction t=session.beginTransaction();

// 现在的c 还是瞬态呢

session.save(c);

// 进行持久化操作后,c 就成了持久态,这是对c 进行任何改动都回持久化到数据库中去

t.commit();

session.close();

3.  游离态(Detached )是由持久态(Persistent )转化而来的。当一个持久态(Persistent )的对象不再和session 相关联的时候,它就变成了游离态。比如上个例子中我们关闭色Session 对象后,c 就成了游离态。这时候对c 的任何改动都不对对数据库中的数据造成影响。

这三种状态的转换图如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值