Hibernate学习总结(一)

1、什么是Hibernate

  • Hibernate是轻量级JavaEE应用的持久层解决方案,是一个关系数据库ORM框架(ORM,对象关系映射 Object Relationship mapper)
    • ORM 就是通过将Java对象映射到数据库表,通过操作Java对象,就可以完成对数据表的操作
    • 轻量级:指的是对于内存,cpu资源消耗比较小,学习也相对容易。
    • 发展由来:
      • jdbc实现DAO数据访问,dbutils框架来实现DAO操作可以简化数据库操作(但还不能脱离sql语句),hibernate也是一个持久层(DAO)框架不需要编写相关的sql语句就可以操作数据库。
    • Orm对象关系映射要完成的工作是什么?
      • 完成的是类与表的映射,类中属性与表字段的映射。它们之间的这种映射关系是非常严格的,有专门的文件来实现这种映射关系的配置(配置文件实质就是一个xml文件,*.hbm.xml)。*的取名一般为实体类的类名。
    • Hibernate要操作数据库同样也需要连接数据库,要连接数据库就必须有连接数据库的四项基本信息(driver, url,username,password),hibernate中为了规范(hibernate配置文件中包含有数据库连接的基本信息,文件名:hibernate.cfg.xml)
    • Hibernate 就是底层使用了jdbc实现,并进行了封装的一个轻量级的持久化解决方案。
  • Hibernate提供了对关系型数据库增删改成操作
    • JPA Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系(只有接口规范)
    • Hibernate 最流行ORM框架,通过对象-关系映射配置,可以完全脱离底层SQL
    • MyBatis 本是apache的一个开源项目 iBatis,支持普通 SQL查询,存储过程和高级映射的优秀持久层框架
    • Apache DBUtils 、Spring JDBCTemplate
  • 持久化技术有哪些?按封装程序由高到低排列
    • Hibernate>mybatis>spring jdbcTemplate ,dbutils > jdbc

2、Hibernate的优点

  • Hibernate对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码

  • Hibernate是一个基于jdbc的主流持久化框架,是一个优秀的orm实现,它很大程度的简化了dao层编码工作

  • Hibernate使用java的反射机制,而不是字节码增强程序类实现透明性

  • Hibernate的性能非常好,因为它是一个轻量级框架。映射的灵活性很出色。它支持很多关系型数据库,从一对一到多对多的各种复杂关系。

    • Hibernate本身性能不是很好,存在很多优化手段(一级缓存、二级缓存、查询缓存、抓取策略)

3、Hibernate准备工作

  1. 准备hibernate3.x的开发包

    • 网址:http://sourceforge.net/projects/hibernate/files/hibernate3/
    • 开发包文件结构
      开发包文件结构
    • lib文件夹内容
      这里写图片描述


    • 补充:log4j(log for java) 用于记录日志

      • Log4j的主要作用是解放程序员,避免程序员去操作IO流。
      • 什么是日志?
        • 用文本的方式将软件操作过程中所发生的一系列操作全部记录下来
      • 如何学习log4j?
        • 导入log4j.jar包
        • 这里写图片描述
        • 学习如何配置log4j(配置文件:src/log4j.properties)
        • 这里写图片描述
  2. 准备完整所需的Hibernate的jar包

    • 这里写图片描述
  3. 准备hibernate配置文件(hibernate.cfg.xml)

    • 这里写图片描述
    • DTD约束文件在MyEclipse中的关联
    • 这里写图片描述

    • 这里写图片描述

  4. 准备hibernate映射文件

    • 这里写图片描述

    • 这里写图片描述

4、Hibernate操作

7个步骤
1.加载hibernate配置文件及映射文件
2.得到SessionFactory对象(好比数据库连接池)
3.得到Session对象(好比数据库连接Connection)
4.开启事务
5.执行CRUD操作
6.提交或回滚事务
7.关闭资源(session关闭 sessionFactory关闭 )

- 补充:如何解决org.hibernate.MappingException: Unknown entity: cn.itcast.domain.User
    - ![这里写图片描述](https://img-blog.csdn.net/20150907142201220)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值