第一章 对象持久化与Hibernate

1.1 解耦合
1.1.1 应用层解耦合--应用逻辑(service)和数据逻辑(dao)分离
1.1.2 资源层解耦合--逻辑结构和物理结构分离

1.2 DAO模式
1.2.1 DAO对业务层提供数据抽象层接口
数据存储逻辑分离
数据访问底层实现的分离
资源管理和调度的分离
数据抽象

1.3 ORM Object Relactional Mapper 对象--关系型数据映射组件
       ORM(Object Relational Mapping)---是一种为了解决面向对象与关系型数据库存在的互不匹配的现象的技术。简单说:ORM是通过使用描述对象和数据库之间映射的元数据,将Java程序中的对象自动持久化到关系数据中。本质上就是将数据从一种形式转换到另外一种形式。
 
       分层后,上层不需要知道下层是如何做了。
       分层后,不可以循环依赖,一般是单向依赖。

1.4 持久化实现类型(理解)
混杂模式:业务代码与sql语句写在一起
Data Class: 数据操作写在一个类中,还是需要大量的sql语句
基于持久化框架:如Hibernate,不需要sql语句,但可以使用sql

1.5 持久化框架介绍
Hibernate
        Apache OJB
        JDO(是SUN提出的一套标准—Java数据对象)
        Toplink(Orocle公司的)
        EJB(2.0X中有CMP;3.0X提出了一套“Java持久化API”---JPA)
        IBatis(非常的轻量级,对JDBC做了一个非常非常轻量级的包装,严格说不是O/R映射框架,而是基于SQL的映射(提供了一套配置文件,把SQL语句配置到文件中,再配置一个对象进去,只要访问配置文件时,就可得到对象))
       JAP(是SUN公司的一套标准),意愿统一天下

1.6 Hibernate做什么:
就是将对象模型(实体类)的东西存入关系模型中,
实体中类对应关系型库中的一个表,
实体类中的一个属性会对应关系型数据库表中的一个列
实体类的一个实例会对应关系型数据库表中的一条记录。
%%将对象数据保存到数据库、将数据库数据读入到对象中%%

1.7 Hibernate存在的原因:
解决阻抗不匹配的问题;
目前不存在完整的面向对象的数据库
JDBC操作数据库很繁琐
SQL语句编写并不是面向对象
可以在对象和关系表之间建立关联来简化编程
O/R Mapping简化编程
O/R Mapping跨越数据库平台
hibernate_0200_OR_Mapping_Simulation

1.8 Hibernate的优缺点:
       不需要编写的SQL语句(不需要编辑JDBC),只需要操作相应的对象就可以了,就可以能够存储、更新、删除、加载对象,可以提高生产效率;
       因为使用Hibernate只需要操作对象就可以了,所以我们的开发更对象化了;
       使用Hibernate,移植性好(只要使用Hibernate标准开发,更换数据库时,只需要配置相应的配置文件就可以了,不需要做其它任务的操作);
        Hibernate实现了透明持久化:当保存一个对象时,这个对象不需要继承Hibernate中的任何类、实现任何接口,只是个纯粹的单纯对象—称为POJO对象(最纯粹的对象—这个对象没有继承第三方框架的任何类和实现它的任何接口)
        Hibernate是一个没有侵入性的框架
        Hibernate代码测试方便。

1.9 Hibernate使用范围:
       针对某一个对象,简单的将它加载、编辑、修改,且修改只是对单个对象(而不是批量的进行修改),这种情况比较适用;
       对象之间有着很清晰的关系(例:多个用户属于一个组(多对一)、一个组有多个用户(一对多));
       聚集性操作:批量性添加、修改时,不适合使用Hibernate(O/映射框架都不适合使用);
       要求使用数据库中特定的功能时不适合使用,因为Hibernate不使用SQL语句;

时间: 2024-10-28 00:48:26

第一章 对象持久化与Hibernate的相关文章

第一章 C#简介(rainbow 翻译) (转自重粒子空间)

<展现 C#> 第一章 C#简介(rainbow 翻译)   出处:http://www.informit.com/matter/ser0000001/chapter1/ch01.shtml 正文: 展现   C#  第一章                      C#    简介 欢迎您加入C#的世界! 这一章将把您引进C#的天地,并回答一些相关的问题,如:您为什么要使用C#,C++和C#的主要有什么不同点,以及为什么C#使开发更容易而且还使您感到很有趣.为什么是另外一种编程语言?必须回答

《.net编程先锋C#》第一章 C#简介(转)

编程 第一章 C# 简介 欢迎您加入C#的世界! 这一章将把您引进C#的天地,并回答一些相关的问题,如:您为什么要使用C#,C++和C#的主要有什么不同点,以及为什么C#使开发更容易而且还使您感到很有趣.为什么是另外一种编程语言? 必须回答的一个问题:当您已经使用C++或VB从事企业开发时,为什么还要学习另一种语言? 市场式的回答就是:"在企业计算领域,C#将会变成为用于编写"下一代窗口服务"(Next Generation Windows Services,简写为NGWS

Programming Microsoft Office 2000 Web Components第一章第一节

web 第一章第二节 Office Web Components是什么? Office Web Components是一组的COM控件,设计的目的是为众多的控件容器提供交互的电子表格建模,数据报表和数据可视化功能.OWC库包含四个主要的组件:电子表格组件,图表组件,透视表组件和数据源组件.我们将在这一节中简要论述每个控件,然后在后续各章中讨论更多细节. 注释: COM也被称作ActiveX.当微软发明了术语"ActiveX"来描述COM技术时,我正在Visual Basic小组,这个术

《.net编程先锋C#》第一章 C#简介

编程 第一章 C# 简介 欢迎您加入C#的世界! 这一章将把您引进C#的天地,并回答一些相关的问题,如:您为什么要使用C#,C++和C#的主要有什么不同点,以及为什么C#使开发更容易而且还使您感到很有趣.为什么是另外一种编程语言? 必须回答的一个问题:当您已经使用C++或VB从事企业开发时,为什么还要学习另一种语言? 市场式的回答就是:"在企业计算领域,C#将会变成为用于编写"下一代窗口服务"(Next Generation Windows Services,简写为NGWS

借助BeanKeeper快速实现对象持久化

引言 NetMind BeanKeeper 是一个开源的 java 对象 / 关系数据库映 射框架,它可以帮助用户快速将对象保存到关系数据库中,同时它也支持自定义 地查询和事务,可以满足用户在各种应用场景的需求.它最大的特点就是简单, 无需配置.同时,它是纯 Java 的,也支持 HSQLDB 和 MySQL 等多种关系数据库.本文将介绍 BeanKeeper 的基本原理和架构,并将其同 Hibernate.Spring 等其他框架进行比较,总结其主要优点.最后将演示一个案例介绍如何借助 Bea

Knockout应用开发指南 第一章:入门

原文:Knockout应用开发指南 第一章:入门 1    Knockout简介 (Introduction) Knockout是一个轻量级的UI类库,通过应用MVVM模式使JavaScript前端UI简单化. Knockout有如下4大重要概念: 声明式绑定 (Declarative Bindings):使用简明易读的语法很容易地将模型(model)数据关联到DOM元素上. UI界面自动刷新 (Automatic UI Refresh):当您的模型状态(model state)改变时,您的UI

Android群英传笔记——第一章:Android体系与系统架构

Android群英传笔记--第一章:Android体系与系统架构 图片都是摘抄自网络 今天确实挺忙的,不过把第一章的笔记做一下还是可以的,嘿嘿 1.1 Google的生态圈 还是得从Android的起源说起,Android是一个以Linux为基础的开源移动设备操作系统,主要用于智能手机和平板电脑,由Google成立的Open Handset Alliance(OHA,开放手持设备联盟)持续领导与开发中.Android已发布的最新版本为Android 6.0.1(M). Android系统最初由安

DelphiXE环境认知(第一章 Project Options)

DelphiXE环境认知 作者:帅宏军 时间:2011年4月 说明:根据DelphiXE的自带帮助翻译而来,为作者个人看法,如有翻译不当,仅供参考. shuaihj@163.com http://blog.csdn.net/shuaihj 第一章. Project Options Ø Project > Options 这个页面用来设置当前项目的Delphi编译器选项.Default勾选后可将当前的配置作为新工程的默认配置. 说明: 并不是这里所有的选项适用于所有类型的项目.例如,DCP out

Java 程序性能优化《第一章》Java性能调优概述 1.3基本调优策略和手段

Java 程序性能优化<第一章>1.3基本调优策略和手段 存在性能问题的系统,十之八九是由于某一系统瓶颈导致的.只要找到该性能瓶颈,分析瓶颈的形成原因,对症下药,使用合理的方法解决系统瓶颈,就能从根本上提升性能.所以,系统性能优化的最主要目的就是查找并解决性能瓶颈问题.但同时值得注意的是,性能优化往往会涉及对原有的实现进行较大的修改,因此,很难保证这些修改不引入新的问题.所以,在性能优化前,需要对性能优化的目标.方法进行统筹的安排. 1.3.1 优化的一般步骤 对软件系统进行优化,首先需要有明