加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

Hibernate初步理解

发布时间:2021-12-10 16:53:29 所属栏目:PHP教程 来源:互联网
导读:1.简介 在Java开发领域,基于数据库应用的设计与实现一直都是面向关系的,Hibernate对象/关系映射ORM框架的出现为Java面向对象开发提供了易于使用的数据持久化解决方案。 ORM介绍: (a).ORM(Object Relation Mapping)中文翻译成对象关系映射 (b).ORM是一种

1.简介
 
在Java开发领域,基于数据库应用的设计与实现一直都是面向关系的,Hibernate对象/关系映射ORM框架的出现为Java面向对象开发提供了易于使用的数据持久化解决方案。
 
  ORM介绍:
 
 
 
  (a).ORM(Object Relation Mapping)中文翻译成对象关系映射
 
  (b).ORM是一种为解决“面向对象”与“关系数据库”存在不匹配的现象而出现的一种技术
 
  (c).ORM通过使用描述对象和数据库之间映射的元数据,将java程序中的对象自动持久化到关系数据库中
 
  (d).ORM中的映射关系为:面向对象中的(类/对象/属性)——>面向关系中的(表/表的行(记录)/表的列(字段))
 
  (e).ORM实现的思想:将关系数据库中表的记录(表的行)映射成对象,以对象的形式展现,程序员可以将对数据库的操作转化为对对象的操作
 
  (f).流行的ORM框架:Hibernate , Ibatis , TopLink , apache OJB
 
Hibernate将java中的对象与对象的关系映射至关系型数据库中成表格与表格的关系,起到了java应用和关系数据库之间的桥梁作用,它封装了JDBC访问数据库的操作,并向上层提供面向对象的数据库访问API。
 
  这里借用网上一张图片来说下Hibernate与JDBC之间的区别:
 
  
 
 
 
2.Hibernate运行过程
 
(a). 应用程序调用configuration类
 
(b). configuration类读取Hibernate配置文件以及映射文件,并用这些信息生成一个SessionFactory类。
 
(c).从SessionFactory类生成一个Session对象
 
(d).用Session对象生成一个Transaction对象
 
(e).可通过Session对象的get(),load(),save(),update(),delete() 和saveorupdate()等方法对POJO类(plain old java object)进行加载,保存,更新,删除等操作
 
  POJO介绍:
 
  (a') POJO (plain old java object)中文译为:简单的java对象,普通的java类。
 
  (b') POJO 实际意义是普通的JavaBeans(最简单的java类,即一个类只有属性,然后一大堆set,get和tostring方法)
 
  (c') POJO 的特点是支持业务逻辑的协助类,不继承不实现不注释
 
  JavaBean介绍:
 
  (a')JavaBean 是POJODE的Serializable(序列化),它通常是被容器创建(如tomcat),所以它应该具有一个无参数的构造器。同时它也是一种组件技术,不能跨进程访问。
 
  (b') JavaBean 是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。
 
  (c')JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露成员属性,set和get方法获取。
 
  (d')众所周知,属性名称符合这种模式,其他Java 类可以通过自省机制发现和操作这些JavaBean 的属性。
 
(f).在查询情况下,可通过Session对象生成一个Query对象,然后利用Query对象执行查询操作;若无异常,Transaction对象将提交这些操作到数据库中,若出现异常,则会回滚。
 
 
 
 
 
 
 
3.Hibernate项目分层结构:
 
从比较流行的MVC模式中将Hibernate可以分为如下几个层次
 
数据层:指数据库的设计
 
DAO层:DAO(Data Access Object)数据访问对象。DAO层的提出是为了实现把对数据的操作和对业务的操作分离,DAO层直接为上层业务逻辑层提供访问数据的接口。(DAO层比较重要)
 
业务逻辑层:这里把业务逻辑层封装成一个Service,直接供控制层调用。
 
控制层和视图层:可见层,采用jsp,Html,css,ajax等。

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读