SSH中的Hibernate

本文深入探讨了SSH框架中Hibernate的作用,包括DAO模式简化数据库操作、JDBC操作的繁琐性、SQL语句非面向对象的问题、对象与关系表之间的关联简化编程、O/R Mapping的便利性和跨数据库平台的能力。详细介绍了配置管理、SessionFactory和Session的使用方法,以及Session方法如Save、Delete、Load、Get等的使用场景和区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SSH中的Hibernate

 

就是DAO连接数据库对数据进行实际操作,做了架构简化,对数据库的操作。

可以有很多优点:

  1. JDBC操作数据库很繁琐
  2. SQL语句不是面向对象的
  3. 可以在对象和关系表之间建立关联来简化编程
  4. O/R Mapping简化编程
  5. O/R Mapping跨越数据库平台

 

一. configuraton

a) AnnotationConfiguration

b) 进行配置信息的管理

c) 用来产生SessionFactory

d) 可以在configure方法中指定hibernate配置文件

e) 只需记住一个方法: buildSessionFactory()

 

二.SessionFactory

a) 用来产生和管理Session

b) 通常情况下,每个应用只需要一个SessionFactory

c) 除非要访问多个数据库的情况

d) 关注两个方法,OpenSession(过时),getCurrentSession()

      1  OpenSession每次都是新的,需要close

      2  getCurrentSession从上下文寻找,如果有,直接用,没有,就新建

 

三.Session

a) 管理一个数据库任务单元

b) 方法

  1. Save()
  2. Delete()
  3. Load()
  4. Get()
  5. Get与load的区别
    1. 不存在对应的记录是,表现不一样
    2. Load返回的是代理对象,等到真正用到对象的内容是才发出SQL语句
    3. Get立马从数据库加载,不会延迟
    4. Update
      1. 用来更新detached(游离)对象,更新完成后转为persistent状态
      2. 更新transient对象会报错
      3. 更新自己设定id的transient对象可以(数据库有对应记录)
      4. P状态的对象只要设定不同字段就会发生更新
      5. 更新部分更改的字段

 

 

 

 

转载于:https://www.cnblogs.com/atongmyuxiaowanzi/p/4891032.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值