一、什么是Hibernate
Hibernate是轻量级JavaEE应用的持久层解决方案,是一个关系数据库ORM框架
*(struts2 是轻量级JavaEE应用的表现层解决方案 )
什么关系型数据库 ? MySQL 、Oracle 、SQLServer 、 DB2 数据采用表方式存储的,表与表之间外键关联
什么是 ORM ? Object Relational Mapping, 对象关系映射
ORM 就是通过将Java对象映射到数据库表,通过操作Java对象,就可以完成对数据表的操作
Hibernat 完全ORM的,只需要对 对象进行操作,生成底层SQL语句 !!!!!
*** echo2 框架(生成HTML) 、 DWR (开发AJAX,生成JS代码)、 Hibernate (操作数据库生成SQL )
流行数据库框架
1、 JPA Java Persistence API 通过注解描述对象与数据表映射关系 (只有接口规范)
2、 Hibernate 最流行ORM框架,通过对象-关系映射配置,可以完全脱离底层SQL , Hibernate实现JPA规范
3、 MyBatis 本是apache的一个开源项目 iBatis,支持普通 SQL查询,存储过程和高级映射的优秀持久层框架 (企业主流)
* MyBaits 并不是完全ORM , 需要在xml中配置SQL语句
4、 Apache DBUtils 、Spring JDBCTemplate
SQL语句封装程度 Hibernate > MyBatis > Apache DBUtils 、Spring JDBCTemplate
二、 为什么要使用Hibernate
Hibernate对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码
Hibernate是一个基于jdbc的主流持久化框架,是一个优秀的orm实现,它很大程度的简化了dao层编码工作
Hibernate使用java的反射机制,而不是字节码增强程序类实现透明性
Hibernate的性能非常好,因为它是一个轻量级框架。映射的灵活性很出色。它支持很多关系型数据库,从一对一到多对多的各种复杂关系
* Hibernate本身性能并不是很好,存在很多优化手段 (一级缓存、二级缓存、查询缓存、抓取策略)
三、 使用Hibernate框架 快速入门
1、 去 http://sourceforge.net/projects/hibernate/files/hibernate3/ 下载 hibernate3 开发包
hibernate 是 JBOSS 框架, JBOSS 是 EJB服务器, JBOSS 推出JBPM 工作流
企业主流 Hibernate 版本 : hibernate3.x
课程以 hibernate3.6.10 讲解
最新hibernate版本 4.3测试版, hibernate4 和 hibernate3 开发有很多不同
***** hibernate 还有很多扩展技术 search 、 validator ....
下载 hibernate-distribution-3.6.10.Final-dist.zip
2、 目录结构
documentation :文档
lib : 开发jar包
project : hibernate源码
hibernate3.jar : hibernate框架开发核心jar包
3、 导入jar包
hibernate3.jar 核心jar包
lib/required/*.jar
lib/jpa/hibernate-jpa-2.0-api-1.0.1.Final.jar (用于jpa注解开发,web开发)
数据库驱动 mysql驱动
=====================================================================================================
hibernate 3.x版本 默认采用日志技术 slf4j (即简单日志门面(SimpleLoggingFacadeforJava)) ,不是具体的日志解决方案,它只服务于各种各样的日志系统。
* 使用slf4j 好处,很容易整合其他日志技术
企业java开发 最主流日志技术 log4j