使用Hibernate进行持久化操作的步骤及示例

文字内容来自《struts2权威指南》

步骤:

1、编写持久化类PO,由POJO加映射文件构成。

2、获取Configuration(web开发中,因为hibernate.cfg.xml在默认的路径下,用不带参数的new Configuration().configure()即可)。

3、获取SessionFactory。

4、获取Session,打开事务。

5、用面向对象的方式操作数据库。

6、关闭事务,关闭Session。

 

对于PO与Session的关联关系,PO可有如下3个状态:

1、瞬态:如果PO实例未与Session关联过,该PO实例处于瞬态状态。

2、持久化:如果PO实例与Session关联起来,且该实例对应到数据库记录,该实例处于持久化状态。

3、脱管:如果PO实例与Session关联过,但因为Session的关闭等原因,PO实例脱离了Session的管理,称为脱管状态。

    对PO的操作必须在Session管理下才能同步到数据库。Session 由SessionFactory工厂产生,SessionFactory是数据库编译后的内存镜像,通常一个应用对应一个SessionFactory对象。SessionFactory对象由Configuration对象生成,Configuration对象用来加载Hibernate配置文件。

 

示例:

public User getUserByUsername(String user_name){
  User user=null;
  Configuration conf=null;
  SessionFactory sessionFactory=null;
  
  try{
  conf=new Configuration().configure();
  sessionFactory=conf.buildSessionFactory();
  }catch (Throwable ex){
   System.err.println("Initialize SessionFactory failed"+ex);
   throw new ExceptionInInitializerError(ex);
  }
  Session sess=sessionFactory.openSession();
  Transaction tx=sess.beginTransaction();
  String hql="from User where user_name='"+user_name+"'";
  Query userList=sess.createQuery(hql);
  List list=userList.list();
  user=(User)list.get(0);
//  user=(User)sess.get(User.class, new Integer("1"));
  tx.commit();
  sess.close();
  return user;
 }

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值