Hibernate初探之单表映射笔记(2)

来源:互联网 发布:template.js if else 编辑:程序博客网 时间:2024/06/07 10:38
  • 第二章 Hibernate进阶
    • 2-2 Hibernate常用配置
    • 2-3 session简介
    • 2-4 transaction简介
    • 2-6 session详解
    • 2-7 hbm配置文档
  • 第三章 Hibernate单表操作
    • 3-2 单一主键
    • 3-3 hibernate基本数据类型
    • 3-4 对象类型
    • 3-5主键属性
    • 3-6 单表增删改查实例

第二章 Hibernate进阶

2-2 Hibernate常用配置

这里写图片描述
这里写图片描述

2-3 session简介

  1. hibernate的执行流程
    这里写图片描述

  2. 什么是session

    • hibernate不建议直接使用jdbc的connection炒作数据库,而是通过使用session操作数据库。session可以理解为操作数据库的对象。
    • session与connection,是多对一的关系,每个session都有一个与之对应的connection,一个connection不同时刻可以供多个session使用。
    • 把对象保存在关系数据库中需要调用session的各种方法,如:save(),update(),delete(),creatQuery()等。

2-4 transaction简介

  1. 什么是transaction
    • hibernate对数据的操作都是封装在事务当中,并且默认是非自动提交的方式。所以用session保存对象时,如果不开启事务,并且手工提交事务,对象并不会真正保存在数据库中。
      这里写图片描述
    • 如果你想让hibernate像JDBC那样自动提交事务,必须调用session对象的doWork()方法,获得JDBC的connection后,设置其为自动提交事务模式。(注意:通常并不推荐这样做
      这里写图片描述

2-6 session详解

  1. 如何获得session对象

    • SessionFactory的openSession方法
    • SessionFactory的getCurrentSession方法
      这里写图片描述
  2. openSession与getCurrentSession的区别

    • getCurrentSession在事务提交或者回滚之后会自动关闭,而openSession需要手动关闭。如果使用openSession而没有手动关闭,多次之后会导致连接池溢出。
    • openSesion每次创建新的session对象,getCurrentSession使用现有的session对象。

2-7 hbm配置文档

  1. hbm配置文档常用注释
    这里写图片描述
    这里写图片描述
    这里写图片描述

  2. 常见的主键生成策略
    这里写图片描述

第三章 Hibernate单表操作

3-2 单一主键

  • 单一主键是指由表单中的某一列充当主键,还有复合主键。
  • MySQL的常用主键生成策略
    • assigned:有Java应用程序负责生成(手工赋值)。
    • native:由底层数据库自动生成标识符,如果是MySQL就是increment(自动增长),如果是Oracle就是sequence(序列),等等。
      这里写图片描述

3-3 hibernate基本数据类型

  1. 这里写图片描述

  2. 时间类型
    这里写图片描述

3-4 对象类型

  1. 这里写图片描述

    • Mysql不支持标准的SQL的CLOB类型,在MySQL中,用TEXT,MEDIUMTEXT及LONGTEXT类型来表示长度超过255的长文本数据。
  2. 创建BLOB对象
    这里写图片描述

  3. 读取数据库中的BLOB类型数据
    这里写图片描述

3-5主键属性

  1. 这里写图片描述

  2. 这里写图片描述

3-6 单表增删改查实例

  1. 这里写图片描述

  2. get和load方法

    • get与load的区别
      1. 在不考虑缓存的情况下,get方法会在调用之后立即向数据库发出SQL语句,返回持久化对象。
        load方法会在调用后返回一个代理对象。该代理对象只保存了实体对象的id,直到使用对象的非主键属性时才会发出SQL语句。
      2. 查询数据库中不存在的数据时,get方法返回null,load方法抛出异常org.hibernate.ObjectNotFoundException
    • 这里写图片描述
    • 这里写图片描述
  3. Update方法
    这里写图片描述

  4. Delete方法
    这里写图片描述

0 0
原创粉丝点击