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等。

Hibernate的初步的更多相关文章

  1. Hibernate知识总结(一)

    一.ORM ORM的全称是Object/Relation Mapping,即对象/关系映射,可以将其理解成一种规范,它概述了这类框架的基本特征:完成面向对象的编程语言到关系数据库的映射.可以把ORM看 ...

  2. Spring入门(四)— 整合Struts和Hibernate

    一.Spring整合Struts 1. 初步整合 只要在项目里面体现spring和 strut即可,不做任何的优化. struts 环境搭建 创建action public class UserAct ...

  3. hibernate初步4

    JPA 1.JPA概述 JPA(Java Persistence API)是Sun官方提出的Java持久化规范.它为Java开发人员提供了一种对象/关系映射工具来管理Java应用中的关系数据.,而Hi ...

  4. Hibernate学习2—Hibernate4 CRUD体验初步

    接着上一节,工程结构: jar包没有变化: 一.HibernateUtil 封装: com.cy.util.HibernateUtil.java: package com.cy.util; impor ...

  5. ssh整合思想初步 structs2 Spring Hibernate三大框架各自要点

    Web层用Structs2的action Service层用Spring的IoC和aop以及JdbcTemplate或者Transaction事务(创建对象及维护对象间的关系) Dao层用Hibern ...

  6. hibernate初步3

    事务和并发 1.事务概念 一组不可分割的操作,事务有如下属性(ACID 属性:Atomic Consistent Isolated Durable)(1)原子性---Atomic  事务的原子性指的是 ...

  7. hibernate初步2

    Hibernate级联设计 数据库表之间的关系(主要关系有一对多.一对一.多对多)主要是从如下三个方面体现出来: 1.表体设计 2.实体类的设计 3.配置文件 以下是一些重要级联设计参数属性介绍: c ...

  8. hibernate初步

    Hibernate开发步骤1.新创建工程并且导入相关的包 主要是hibernate.mysql相关的JAR包. 注意:新导入的hibernate相关的JAR包是否与你当前所使用的jdk版本是否兼容,且 ...

  9. Spring Data初步--整合Hibernate

    Spring Data课程中的技术介绍 Hibernate: Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,它将 pojo 与数据库表建立映射关系 ...

随机推荐

  1. .net 操作 sqlite

    sqlite 表结构和数据的导出 全部导出 sqlite3 data.db >.output dd.sql >.dump 待续

  2. 用户Word写毕业论文时的文献引用方法

    经过网上搜索和自己实践,找到了一种不用第三方工具的文献管理方法 通过将文献定义的成书签的形式,插入到文献中,当文献编号发生变化时,只需进行更新域操作,就可实现文献编号的理新,下面介绍具体方法: 1.首 ...

  3. HTML5大数据可视化效果(二)可交互地铁线路图

    前言 最近特别忙,承蒙大伙关照,3D机房的项目一个接着一个,领了一帮小弟,搞搞传帮带,乌飞兔走,转眼已经菊黄蟹肥……有个小弟很不错,勤奋好学,很快就把API都摸透了,自己折腾着做了个HTML5的魔都的 ...

  4. QCopChannel的用法

    QT提供了很多的进程间通讯的方法,例如共享内存,QProcess等等.但有一种方法是嵌入式端所独有的,那就是Qt Communications Protocol(QCOP)QT通讯协议,这种方法只能用 ...

  5. NSNotification Name 最佳写法

    本文主要借探讨NSNotificationName的最佳写法的机会,学习下extern, static, const, #define 和常量指针与指针常量等的特性和用法. 1.NSNotificat ...

  6. MyBatis知多少(5)业务对象模型

    几乎所有结构良好的软件都使用了分层设计.分层设计将一个应用程序根据技术职能分为几 个内聚的部分,从而将某种特定技术或接口的实现细节与其他部分分离开来.分层设计可以用任 何一种强壮的编程语言来实现.图1 ...

  7. MyBatis XML 映射配置文件

    配置文件的基本结构 configuration —— 根元素 properties —— 定义配置外在化 settings —— 一些全局性的配置 typeAliases —— 为一些类定义别名 ty ...

  8. 快乐的JS正则表达式(二)

    在上一篇中介绍了一个test方法,在本文中将使用另外一个,exec方法可以找到匹配的结果并且返回结果以及位置.exec("正则"): 简单测试: var str = "{ ...

  9. TOGAF培训讲义

    我作为国内首先进行TOGAF研究和实践的架构师之一,曾在中国软件技术大会和中国软件工程大会做过TOGAF相关的主题演讲,并在多家大中型企业做过企 业架构内训.这个是我在给需要企业架构的企业做内训时的讲 ...

  10. Android 学习笔记之使用多线程实现断点下载...

    PS:莫名其妙的迷茫... 学习内容: 1.使用多线程实现文件下载...   多线程下载是加快下载速度的一种方式..通过开启多个线程去执行一个任务..可以使任务的执行速度变快..多线程的任务下载时常都 ...