Hibernate学习总结(一)
2015-09-07 15:36
381 查看
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准备工作
准备hibernate3.x的开发包网址:http://sourceforge.net/projects/hibernate/files/hibernate3/
开发包文件结构
lib文件夹内容
补充:log4j(log for java) 用于记录日志
Log4j的主要作用是解放程序员,避免程序员去操作IO流。
什么是日志?
用文本的方式将软件操作过程中所发生的一系列操作全部记录下来
如何学习log4j?
导入log4j.jar包
学习如何配置log4j(配置文件:src/log4j.properties)
准备完整所需的Hibernate的jar包
准备hibernate配置文件(hibernate.cfg.xml)
DTD约束文件在MyEclipse中的关联
准备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)
相关文章推荐
- Hibernate Oracle sequence的使用技巧
- jsp Hibernate批量更新和批量删除处理代码
- jsp hibernate的分页代码第1/3页
- JAVA+Hibernate 无限级分类
- SSH整合中 hibernate托管给Spring得到SessionFactory
- jsp hibernate 数据保存操作的原理
- hibernate中的增删改查实现代码
- 解决hibernate+mysql写入数据库乱码
- java优化hibernate性能的几点建议
- java Hibernate延迟加载
- hibernate 常用方法介绍
- 深入理解Hibernate中的flush机制
- 解析使用jdbc,hibernate处理clob/blob字段的详解
- 浅析java程序中hibernate的应用总结
- java面试常见问题之Hibernate总结
- 关于Hibernate的一些学习心得总结
- Hibernate管理Session和批量操作分析
- 基于spring+hibernate+JQuery开发之电子相册(附源码下载)
- java Hibernate 一对多自身关联问题
- SpringMVC+MyBatis项目总结(二)