Hibernate阶段总结(1)

本文介绍了Hibernate的基本概念,包括ORM思想的应用、配置文件的创建与使用、Junit单元测试的实施,以及通过实例演示如何实现数据库的增删改查操作。

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

阶段总结

这个周学习了Hibernate的入门知识,了解了ORM(ObjectRelationshipMap)的概念,以及hibernate的配置,数据库的链接,Junit的单元测试,增删改查的单表操作。

ORM

对象关系映射,使用不同类型数据库进行操作时,使用面向对象的思想把对象持久化到数据库中。

Hibernate配置

首先创建hibernate.cfg.xml然后根据持久化对象类创建(持久化对象类).hbm.xml,并在hibernate.cfg.xml中引入该xml
eg:

    <mapping class="包名.类名" />
    <mapping resource="类名.hbm.xml"/>

Junit单元测试


  • @Before–初始化资源
  • @Test–测试
  • @After–释放资源

执行顺序:Before–>Test–>After
工程名–>右键–>SourceFolder–>FolderName为test–>新建StudentTest类

主键生成策略

其中:native 对应MySQL的auto-incremented,字段的类型必须是整型;assign手工赋值。

基本类型

只想要年月日,使用hibernate的date类型代表日期yyyy-MM-dd
只想要时间,使用hibernate的time类型代表时间hh:mm:ss
时间和日期,使用hibernate的timestamp类型yyyyMMddhhmmss

对象类型

1.clob和text对应大文本文件,blob对应大的二进制文件,例如视频音频图片
2.java中的clob对应存储大文本文件,java中的blob对应存储大二进制文件
MySQL不支持标准SQL的CLOB类型,在Mysql中,用TEXT,MEDIUMTEXT及LONGTEXT类型
来表示长度超过255的长文本数据

组件属性

在”类名.hbm.xml”添加

<!-- 组件属性 -->
        <component name="detail" class="Detail">
            <property name="post" column ="POST"/>
            <property name="phone" column ="PHONE"/>
            <property name="favorite" column ="FAVORITE"/>
        </component>

Detail为一个单独的类,它作为一个对象存放在学生中,保存在数据库中。

单表的增删改查CRUD

单表CRUD操作:

  1. save
  2. update
  3. delete
  4. get/load(查询单个记录)

get与load的区别

  1. 在不考虑缓存的情况下,get方法会在调用之后立即向数据库发出sql语句,返回持久化对象;而load方法会在调用后返回一个代理对象,该代理对象只保存了实体对象的id,直到使用对象的其他属性时才会发出sql语句。
  2. 查询数据库中不存在的数据时,get返回null;而load方法则抛出异常:org.hibernat.ObjectNotFoundException

Hibernate流程

  1. 创建Configuration时读取Hibernate.cfg.xml内容
  2. 创建SessionFactory读取User.hbm.xml内容(创建和销毁都相当耗费资源,通常一个系统内一个数据库只创建一个)
  3. 创建Session(类似于JDBC的Connection)
    • 执行 save,delete,update,get操作,transaction。
    • 创建Transaction事务对象。
  4. commit()提交,session.close()关闭资源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值