Hibernate_介绍1
1.什么是持久化
-把数据持久保持在可掉电的存储设备中
-存储方式有
-文件形式(如:xml文件)
-数据库形式
-一般的企业应用中,是将内存中的数据,持久保持在关系数据库中
2.什么是对象持久化
-在关系数据库中数据的表现形式是表,存储形式是记录
-在面向对象(OOP)中数据的表现形式是类,存储形式是对象的状态
-对象持久化是指:将对象的状态持久化的保存为数据库中表的记录
3.什么是持久层
-分层的目的是解耦
-软件的层次结构
-表现层
-控制层
-业务逻辑层
-数据逻辑层,又叫持久层
-持久层和底层数据库交互
-一般通过DAO设计模式来实现
Java的对象持久化方案
JDBC
-一句话概括:使用Java语言操作SQL语句,从而操作数据库。
-JDBC的常用接口
-Connection:获得数据库连接
-获得数据库连接:
-Class.forName("driver");加载驱动
-DriverManager.getConnection(url,username,password);获得连接
-Statement:语句接口,操作SQL语句
-PreparedStatement:预定义语句,动态操作SQL语句
-ResultSet:结果集,封装数据库记录表
-JDBC的优势
-成熟
-使用JDBC的项目不计其数
-性能高
-和ORM框架相比
-JDBC的弊端
-Java语言是面向对象的
-数据保存在关系数据库中
-JDBC提供的是,面向语句的形式来操作SQL语句的,不符合OOP思想
-很难将对象和关系表对象起来
ORM
-O:Object 指对象
-R:Relationship 指关系
-M:Mapping 指映射
为什么需要ORM
-在高级编程语言中,都是面向对象(OOP)的,类和对象
-在关系数据库里,是关系表和记录
-为了以面向对象的方式,来操作数据库就有了ORM思想
小结:利用面向对象思想编写的数据库应用程序最终都是把对象信息保存在关系型数据库中,
于是要编写很多和底层数据库相关的SQL语句。
写SQL语句有什么不好吗?
1.不同的数据库使用的SQL语法不同。比如:PL/SQL与T/SQL
2.同样的功能在不同的数据库中有不同的实现方式。比如分页SQL。
3.程序过分依赖SQL对程序的移植及扩展,维护等带来很大的麻烦。
-ORM映射基础
-数据库中的表结构和类结构的映射
-表中的记录和对象的映射
-表的主键和对象ID的映射(OID)
-表的字段和类的属性的映射
其他主流的ORM框架技术:
1.MyBatis:前身就是著名的iBatis
2.Toplink:后被Oracle收购,并重新包装为Oracle As TopLink
3.EJB:本身是Javaee的规范
Hibernate简介
什么是Hibernate
-是Java领域的一个开源的ORM框架技术
-提供了一种,强大的对象到关系数据库的映射机制
-强大的查询功能
-对JDBC进行了非常轻量级的对象封装。
-Hibernate的优势
-开源
-LGPL
-成熟
-流行
-约13 000 downloads/month
Hibernate的目标
-减少95%的普通数据持久化过程中产生的问题
Hibernate的总体架构
-Applicatioan
-持久化对象
-Hibernate
-配置文件
-映射文件
Hibernate核心接口
-Configuration:配置信息类,读取配置文件
-Session:将其看作是JDBC中的Connection
-SessionFactory:Session工厂类,提供Session实例
-Query:Hibernate查询接口(以HQL方式)
-Criteria:Hibernate查询接口(以面向对象的方式)
-Transaction:事务接口,提交或回滚
配置Hibernate
-既要Hibernate底层也是JDBC,那么也需要加载驱动
-加载Hibernate jar文件
-Hibernate工程需要的最小jar文件集合
-创建Hibernate配置文件
-可以是XML格式的
-也可以是.properties的属性文件
-Hibernate默认加载的是hibernate.cfg.xml或者是hibernate.properties
hibernate-release-4.2.4.Final
1.什么是持久化
-把数据持久保持在可掉电的存储设备中
-存储方式有
-文件形式(如:xml文件)
-数据库形式
-一般的企业应用中,是将内存中的数据,持久保持在关系数据库中
2.什么是对象持久化
-在关系数据库中数据的表现形式是表,存储形式是记录
-在面向对象(OOP)中数据的表现形式是类,存储形式是对象的状态
-对象持久化是指:将对象的状态持久化的保存为数据库中表的记录
3.什么是持久层
-分层的目的是解耦
-软件的层次结构
-表现层
-控制层
-业务逻辑层
-数据逻辑层,又叫持久层
-持久层和底层数据库交互
-一般通过DAO设计模式来实现
Java的对象持久化方案
JDBC
-一句话概括:使用Java语言操作SQL语句,从而操作数据库。
-JDBC的常用接口
-Connection:获得数据库连接
-获得数据库连接:
-Class.forName("driver");加载驱动
-DriverManager.getConnection(url,username,password);获得连接
-Statement:语句接口,操作SQL语句
-PreparedStatement:预定义语句,动态操作SQL语句
-ResultSet:结果集,封装数据库记录表
-JDBC的优势
-成熟
-使用JDBC的项目不计其数
-性能高
-和ORM框架相比
-JDBC的弊端
-Java语言是面向对象的
-数据保存在关系数据库中
-JDBC提供的是,面向语句的形式来操作SQL语句的,不符合OOP思想
-很难将对象和关系表对象起来
ORM
-O:Object 指对象
-R:Relationship 指关系
-M:Mapping 指映射
为什么需要ORM
-在高级编程语言中,都是面向对象(OOP)的,类和对象
-在关系数据库里,是关系表和记录
-为了以面向对象的方式,来操作数据库就有了ORM思想
小结:利用面向对象思想编写的数据库应用程序最终都是把对象信息保存在关系型数据库中,
于是要编写很多和底层数据库相关的SQL语句。
写SQL语句有什么不好吗?
1.不同的数据库使用的SQL语法不同。比如:PL/SQL与T/SQL
2.同样的功能在不同的数据库中有不同的实现方式。比如分页SQL。
3.程序过分依赖SQL对程序的移植及扩展,维护等带来很大的麻烦。
-ORM映射基础
-数据库中的表结构和类结构的映射
-表中的记录和对象的映射
-表的主键和对象ID的映射(OID)
-表的字段和类的属性的映射
其他主流的ORM框架技术:
1.MyBatis:前身就是著名的iBatis
2.Toplink:后被Oracle收购,并重新包装为Oracle As TopLink
3.EJB:本身是Javaee的规范
Hibernate简介
什么是Hibernate
-是Java领域的一个开源的ORM框架技术
-提供了一种,强大的对象到关系数据库的映射机制
-强大的查询功能
-对JDBC进行了非常轻量级的对象封装。
-Hibernate的优势
-开源
-LGPL
-成熟
-流行
-约13 000 downloads/month
Hibernate的目标
-减少95%的普通数据持久化过程中产生的问题
Hibernate的总体架构
-Applicatioan
-持久化对象
-Hibernate
-配置文件
-映射文件
Hibernate核心接口
-Configuration:配置信息类,读取配置文件
-Session:将其看作是JDBC中的Connection
-SessionFactory:Session工厂类,提供Session实例
-Query:Hibernate查询接口(以HQL方式)
-Criteria:Hibernate查询接口(以面向对象的方式)
-Transaction:事务接口,提交或回滚
配置Hibernate
-既要Hibernate底层也是JDBC,那么也需要加载驱动
-加载Hibernate jar文件
-Hibernate工程需要的最小jar文件集合
-创建Hibernate配置文件
-可以是XML格式的
-也可以是.properties的属性文件
-Hibernate默认加载的是hibernate.cfg.xml或者是hibernate.properties
hibernate-release-4.2.4.Final