Hibernate
一. 开发遇到的问题
什么是框架,框架从何而来,为什么使用框架?
框架
:
1. 是一系列jar包,其本质是对JDK功能的拓展.
2. 框架是一组程序的集合,包含了一系列的最佳实践,作用是解决某一个领域的问题.
- 最佳实践(Best Practice)
- 实际上是无数程序员经历过无数次尝试之后,总结出来的处理特定问题的特定方法.
如果把程序员的自由发挥看作是一条通往成功的途径,最佳实践就是其中的最短路径,能极大的解放生产力.
Web开发中的最佳实践
:
1. 分层开发模式(技术层面的"分而治之")
2. JavaEE开发根据职责的纵向划分:表现层,业务层,持久层:
- 表现层(Predentation Layer):web/mvc: 负责处理与界面交互的相关操作 (Struts2/Spring MVC)
- 业务层(Business Layer) :service: 负责复杂的业务逻辑计算和判断 (Spring)
- 持久层(Persistent Layer) :dao: 负责将业务逻辑数据进行持久化存储 (Hibernate/iBatis/MyBatis)
持久层封装了数据访问的细节,为业务逻辑层提供了面向对象的API,完善的持久层应该达到:
- 代码重用性高,可以完成所有的数据访问操作.
- 可以支持多种关系型数据库.
- 具有相对独立性,当持久层变化时,不会影响上一层实现.
二. ORM
- 对象关系映射(Object Relational Mapping,简称ORM)
- 是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。
简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将java程序中的对象自动持久化到关系数据库中。
避免直接使用SQL语句对关系型数据库中的数据进行操作.
减少代码编写量,提高产品质量.
ORM 主要解决对象-关系的映射:
面向对象概念 面向关系概念
类 表
对象 表的行(记录)
属性 表的列(字段)
ORM的实现思想:
将关系数据库中表中的记录映射成为对象,以对象的形式展现,程序员可以把对数据库的操作转化为对对象的操作。
因此ORM的目的是为了方便开发人员以面向对象的思想来实现对数据库的操作。
ORM 采用元数据来描述对象-关系映射细节:
元数据通常采用 XML 格式,并且存放在专门的对象-关系映射文件中。
目前流行的ORM框架:
1.JPA:本身是一种ORM规范,不是ORM框架.由各大ORM框架提供实现.
2.Hibernate:目前最流行的ORM框架.设计灵巧,性能优秀,文档丰富.
3.MyBatis:本是apache的一个开源项目iBatis,提供的持久层框架包括SQL Maps和DAO,允许开发人员直接编写SQL.
等