关于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的任何改动都不对对数据库中的数据造成影响。

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值