`
阅读更多
1. hibernate是什么,为什么使用hibernate,java反射机制,如何使用hibernate

持久化
   持久化(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。
持久化的主要应用是将内存中的数据存储在关系型的数据库中,当然也可以存储在磁盘文件中、XML数据文件中等等。   
持久化是将程序数据在持久状态和瞬时状态间转换的机制。   
JDBC就是一种持久化机制。文件IO也是一种持久化机制。   
将鲜肉冷藏,吃的时候再解冻的方法也是。   
将水果做成罐头的方法也是。   
将人的脏器迅速冷冻,运输,然后解冻给人移植的技术也是。
理解
  我们可以这样理解:   
在一定周期内保持不变就是持久化,持久化是针对时间来说的.   
数据库中的数据就是持久化了的数据,只要你不去删除或修改.   
Session会话中Session对象变量也是不变的,是Session容器中持久化   
对象持久化的方式有很多种,根据周期不同有,page,Session,Application,   
对象序列化机制对于需要将对象的状态保存到文件中,
而后能够通过读入对象状态来重新构造对象,恢复程序状态,   
对象序列化的过程是对象持久化的方法之一,把对象保存到文件中.

关键字: po/pojo/bo/dto/vo


---------------------------------------------------------

PO :persistent object持久对象

1 .有时也被称为Data对象,对应数据库中的entity,可以简单认为一个PO对应数据库中的一条记录。

2 .在hibernate持久化框架中与insert/delet操作密切相关。

3 .PO中不应该包含任何对数据库的操作。

POJO :plain ordinary java object 无规则简单java对象

一个中间对象,可以转化为PO、DTO、VO。

1 .POJO持久化之后==〉PO

(在运行期,由Hibernate中的cglib动态把POJO转换为PO,PO相对于POJO会增加一些用来管理数据库entity状态的属性和方法。PO对于programmer来说完全透明,由于是运行期生成PO,所以可以支持增量编译,增量调试。)

2 .POJO传输过程中==〉DTO

3 .POJO用作表示层==〉VO

PO 和VO都应该属于它。

BO :business object 业务对象

封装业务逻辑为一个对象(可以包括多个PO,通常需要将BO转化成PO,才能进行数据的持久化,反之,从DB中得到的PO,需要转化成BO才能在业务层使用)。

关于BO主要有三种概念

1 、只包含业务对象的属性;

2 、只包含业务方法;

3 、两者都包含。

在实际使用中,认为哪一种概念正确并不重要,关键是实际应用中适合自己项目的需要。

VO :value object值对象 / view object表现层对象

1 .主要对应页面显示(web页面/swt、swing界面)的数据对象。

2 .可以和表对应,也可以不,这根据业务的需要。


DTO (TO) :Data Transfer Object数据传输对象

1 .用在需要跨进程或远程传输时,它不应该包含业务逻辑。

2 .比如一张表有100个字段,那么对应的PO就有100个属性(大多数情况下,DTO 内的数据来自多个表)。但view层只需显示10个字段,没有必要把整个PO对象传递到client,这时我们就可以用只有这10个属性的DTO来传输数据到client,这样也不会暴露server端表结构。到达客户端以后,如果用这个对象来对应界面显示,那此时它的身份就转为VO。


DAO :data access object数据访问对象

1 .主要用来封装对DB的访问(CRUD操作)。

2 .通过接收Business层的数据,把POJO持久化为PO。


OO设计思想与当前关系数据库的不匹配

HIBERNATE优点:
1.更加面向对象化(直接操作对象来存储数据)
2.可移植性增强了(相对于不同的数据库)
3.透明持久化(pojo:最纯粹的java对象)--没有侵入性 (轻量级框架)
4.提高生产力(不用写SQL语句)
HIBERNATE使用
适合:
1.针对单个对象的增删改(非批量);
2.对象之间有很清晰的关系。
不适合:
1.具体性操作,批量的对对象修改。
2.对象之间关系错综复杂。
3.使用数据库的特定功能的时候。

ORM(M==Map)包括对象间的映射关系和缓存机制等
好处:无侵入性  易于测试

新建项目:
1.导包 (HIBERNATE包和JDBC驱动包)
2.配置文件(hibernate.cfg.xml),为了便于调试 最好加入log4j配置文件
3.创建实体类
4.定义实体类的映射文件(User.hbm.xml,一般和实体类放在一起)
5.将User.hbm.xml文件加入到hibernate.cfg.xml文件中。
6.hbm2ddl工具类将实体类生成表
Configuration cfg = new Configuration().configure();
--注意:不加.configure();默认读取hibernate.propertis文件
SchemaExport export = new SchemaExport(cfg);
export.create(true,true);
7.生成客户端。



junit单元测试
1.导包.
2.测试类继承TestCase类(注意命名)
3.测试类里的方法以test开头,public权限,void返回值
4.运行 test Junit

1.什么是ORM
ORM的全称是Object Relational Mapped,即对象关系映射。它的实现思想就是将关系数据库中表的数据映射成为对象。

2.什么是Hibernate
对于Hibernate的称呼有很多,比如工具、技术、框架以及解决方案等,这些都可以,重要的是大家要知道它的作用。在这里我习惯性称它为框架,它是一种能实现ORM的框架。能实现ORM这个功能的框架有很多,Hibernate可以说是这些框架中最流行、最受开发者关注的,甚至连JBoss公司也把它吸收进来,利用它在自己的项目中实现ORM功能。

3.ORM的实现原理
现在在Java领域大家对Hibernate的讨论很多,比如它的优缺点、如何应用、错误如何解决以及把它和Struts/Spring等框架相结合作为整个系统的解决方案。在这里我想和大家探讨一些更深层次的话题,那就是Hibernate是如何实现ORM的功能?如果让我们自己开发一款实现ORM功能的框架需要怎么做?其实这些问题就是围绕着一个词,那就是“映射”,如果我们知道如何实现这种映射那么我们也能够开发出自己的一款ORM框架。会使用Hibernate的开发人员都知道,在使用它实现ORM功能的时候,主要的文件有:映射类(*.java)、映射文件(*.hbm.xml)以及数据库配置文件(*.properties或*.cfg.xml),它们各自的作用如下。
⑴映射类:它的作用是描述数据库表的结构,表中的字段在类中被描述成属性,将来就可以实现把表中的记录映射成为该类的对象。
⑵映射文件:它的作用是指定数据库表和映射类之间的关系,包括映射类和数据库表的对应关系、表字段和类属性类型的对应关系以及表字段和类属性名称的对应关系等。
⑶数据库配置文件:它的作用是指定与数据库连接时需要的连接信息,比如连接哪中数据库、登录用户名、登录密码以及连接字符串等。
在这三种主要的文件中,映射类为普通Java源文件、映射文件为XML格式、数据库配置文件为Properties格式或者是XML格式。想理解“映射”首先我们需要知道如何解析这三种文件,即解析XML格式文件、解析Properties格式文件和解析Java类文件。
  • 大小: 94.5 KB
分享到:
评论

相关推荐

    hibernate 资料hibernate 资料hibernate 资料

    ### Hibernate核心知识点详解 #### Hibernate概述 - **定义与作用:** Hibernate是一种对象关系映射(ORM)技术的实现,其主要目的是简化Java应用程序与数据库之间的交互过程。通过使用Hibernate,开发人员能够...

    hibernate资料

    hibernate 深入 连接 关联级映射,源码解析,spring 与hibernate的配置深入原理

    Hibernate 资料

    Hibernate 是「物件/關係對應」(Object/Relational Mapping)的解決方案,簡寫為ORM,簡單的說就是將 Java 中的物件與物件關係,映射至關聯式資料庫中的表格與表格之間的關係, Hibernate 提供了這個過程中自動對應...

    hibernate资料 3.6.6版本

    标题提及的是“hibernate资料 3.6.6版本”,这意味着我们要探讨的是关于Hibernate ORM框架的特定版本,即3.6.6。Hibernate是一个广泛使用的Java对象关系映射(ORM)工具,它允许开发人员用面向对象的方式来处理...

    jsp中Hibernate资料

    标题:“jsp中Hibernate资料” 描述:“适合初学者使用的好东西” 标签:“Hibernate jsp” 从给定的文件信息中,我们可以提炼出以下关于Hibernate在Java Server Pages (JSP)环境中应用的重要知识点: ### ...

    传智博客~hibernate 资料

    【标题】"传智博客~hibernate 资料" 涉及的主要知识点是Hibernate,这是一个开源的对象关系映射(ORM)框架,用于简化Java应用与数据库之间的交互。Hibernate提供了一种在Java对象和关系数据库之间进行数据转换的...

    ejb+hibernate资料 ejb+hibernate资料

    总的来说,这个压缩包资料集提供了一个深入学习EJB3和Hibernate的基础,涵盖了这两个框架的主要概念、配置以及使用方法。对于希望在企业级Java应用开发中掌握这些核心技术的开发者来说,这是一份非常宝贵的资源。...

    hibernate学习资料大全

    【hibernate学习资料大全】 Hibernate 是一个开源的对象关系映射(ORM)框架,它极大地简化了Java应用程序对数据库的操作。这个压缩包包含了丰富的Hibernate学习资源,旨在帮助开发者深入理解和熟练掌握这一强大的...

    培训机构hibernate资料ppt

    在这个“培训机构hibernate资料ppt”中,我们可以通过四次课程的学习,深入理解Hibernate的核心概念和实际应用。 **第一次课:Hibernate基础** 在初次接触Hibernate时,我们将学习其基本概念,包括什么是ORM、为...

    经典Spring-Hibernate资料

    在"经典Spring-Hibernate资料"这个压缩包中,可能包含了关于这三个框架的教程、手册、示例代码以及配置文档等内容。Spring的学习资料可能涵盖了Spring的核心概念,如依赖注入、AOP,以及Spring Boot、Spring Cloud等...

    达内科技hibernate资料课件全集+源码

    总结,达内科技的Hibernate资料课件全面覆盖了Hibernate的各个方面,从基础到高级,理论结合实践,源码辅助理解,是学习和掌握Hibernate的宝贵资源。通过深入学习,开发者不仅可以提升数据库操作技能,还能在项目...

    struts+spring+hibernate资料

    ### Struts + Spring + Hibernate 资料 #### 1. Hibernate 的并发机制与处理并发问题的方法 **并发机制概述**: - **Session 对象的线程安全性**:Hibernate 的 Session 对象并不是线程安全的,这意味着对于每一...

    hibernate 资料 教程。

    hibernate 资料 教程。很好的资料,分享给大家。 英文版

    Hibernate 中文api 等学习资料

    标题"Hibernate 中文api 等学习资料"暗示了这是一组针对Hibernate ORM框架的中文学习资源,包括API文档和其他指南,旨在帮助用户更好地理解和使用Hibernate。 描述中的"hibernate orm框架api中文文档,学习资料,...

Global site tag (gtag.js) - Google Analytics