Hibernate 框架

2017-04-20  本文已影响24人  Playbob

JavaEE 三层结构:

web层 :struts2
server层 : Spring
dao层 : Hibernate 对数据库进行crud操作

MVC思想:model view controller

Hibernate

  1. 底层实际上是对 jdbc 进行封装
  2. 开源轻量级框架
  3. 目前使用 Hibernate5 版本

ORM 思想

  1. hibernate 使用orm思想对数据进行crud操作
  2. 使用实体类
  3. orm:object relational mapping 对象关系映射


    映射关系
创建实体类,直接操作实体类完成数据库操作 导入需要使用的jar包 映射关系

创建hibernate 配置文件

  1. 文件名: hibernate.cfg.xml
  2. 引入 dtd 约束
约束

配置Hibernate

(1) 配置数据库信息


数据库信息

(2) 配置hibernate信息


hibernate信息

(3) 配置 映射文件


映射文件

映射文件细节注意:

  1. class标签 name属性值为实体类全路径名
  2. id标签和property标签 name属性值, 实体类属性名称
  3. column 可以不写,不写的话会默认和name值保持一致

核心配置文件细节注意:

  1. 配置文件位置固定,src目录下
  2. 固定文件名 hibernate.cfg.xml

核心api

加载 hibernate.cfg.xml文件

Configuration config = new Configuration().config();

SessionFactory (重点)

使用工具类确保只创建一次

Session

  1. 类似于jdbc中的connection
  2. 调用session里面的不同的方法实现crud操作
  3. session 对象是单线程对象(session只能自己使用,不能公用)

Transaction

  1. 事务对象

          Transaction tx = session.beginTransaction();
    
  2. 事务提交和回滚操作

         tx.commit();
         tx.rollback();
    
  3. 事务概念

    • 原子性
    • 一致性
    • 隔离性
    • 持久性

Query 对象

Criteria 对象

  // 1 创建Criteria 对象
      Criteria criteria = session.createCriteria (User.class);
  // 2  调用Criteria 对象的方法得到对象
      List<User> users = criteria.list();

SQLQuery 对象

    // 创建对象
    SQLQuery sqlQuery = session.createSQLQuery("select * from t_user");
    sqlQuery.addEntity(User.class);
    List<User> list = sqlQuery.list();

配置文件没有提示

  1. 可以上网,就能有提示,因为约束文件可以加载到
  2. 不能上网,可以把约束文件导入到eclipse中
配置约束文件 配置约束文件

实体类编写规则

Hibernate 主键生成策略

方式1

对实体类进行增删改查操作

插入操作 更新操作 删除操作1 删除操作2

实体类对象状态

  1. 瞬时态 : 对象里边没有id,跟session也没有关联
  2. 持久态 : 对象里边有id,跟session有关联
  3. 托管态 : 对象里边有id,跟session无关联

Hibernate 的一级缓存

什么是缓存
一级缓存特点 一级缓存特性(不调用update仍能更改数据) 一级缓存特性原理

Hibernate 事务代码规范写法

事务规范写法

Session 绑定线程

配置session 获取session
上一篇下一篇

猜你喜欢

热点阅读