Hibernate从入门到放弃(一)----初识ORM

    Hibernate是轻量级的Java EE应用的持久层的解决方案,Hibernate不仅管理Java类到数据库表的映射(包括Java数据类型到SQL数据类型的映射),还提供数据查询和数据获取的方法,可以大幅度缩短使用JDBC处理数据持久化的时间。

ORM和Hibernate



    在介绍Hibernate之前咱们得先了解了解ORM

    对象/关系数据库映射(ORM)

    当我们使用一种面向对象的程序设计语言来开发项目的时候,从开始就开始使用面向对象分析、面向对象设计、面向对象编程。但是到了持久层数据库访问的时候,就有必须重返关系型数据库的访问方式,真是一种非常糟糕的赶脚~~

于是我们就需要一种工具,来把关系型数据库包装成面向对象的模型,这个工具就是ORM框架。

ORM全称Object/Relation Mapping,对象/关系数据库映射。可以被理解成一种规范,这类框架的基本特征:

完成面向对象的编程语言到关系数据库的映射。

下图显示了ORM工具作用的示意图。

    当我们采用ORM框架之后,应用程序不再直接访问数据库,而是以面向对象的方式来操作持久化对象,而ORM框架则将这些面向对象的操作转化成底层的SQL操作。

    基本的映射方式

    ORM提供了持久化类和数据表之间的映射关系,通过这种映射关系的过渡,我们很方便的对数据库进行相关的操作,ORM的映射关系大致有如下几条:

    1. 数据表映射类
    持久化类被映射到一个数据表,当应用程序对持久化类进行相应的操作时,系统会自动的把这些操作转换成对这张表的CRUD操作。

    2. 数据表的行映射对象(即实例)
    持久化类会生成很多实例,每个实例就对应数据库中的一行记录,当我们在应用中修改某个实例的时候,ORM工具就会自动转化成对特定行的操作。

    3. 数据表的列(字段)映射对象的属性
    当我们在应用中修改某个持久化对象的制定属性时,ORM将会转换成对对应数据表中指定数据行、指定列的操作。

    ORM框架中,持久化对象是一种中间媒介,应用程序只需要操作持久化对象,ORM框架则负责将这种操作转化为底层数据库操作----这种转换对开发者透明,无需开发者关心。从而将开发者从关系模型中释放出来,以面向对象的思维来操作关系型数据库。

时间: 2024-09-12 18:06:45

Hibernate从入门到放弃(一)----初识ORM的相关文章

Hibernate从入门到放弃(三)----持久化对象

对象的三种状态     对于Hibernate而言,对象状态分为三种: 瞬时态     当对象刚创建,和Session没有发生任何关系时,当程序运行完成就立刻消失,被称为瞬时态.瞬态对象不会被持久化到数据库中,也不会被赋予持久化标识,如果程序中失去了瞬态对象的引用,瞬态对象将被垃圾回收机制销毁.使用Hibernate Session可以将其变成持久化状态.具体的转化方法如下: Serializable save(Object obj):将obj对象变为持久化状态,该对象的属性将被保存到数据库.

Hibernate从入门到放弃(二)----和这个世界打声招呼(HelloWorld)

核心步骤 导入Jar包 Hibernate配置文件(只有一个)     hibernate.cfg.xml用于数据库连接信息Hibernate的一些配置信息 Hibernate映射文件(可以有n个)     用来致命类和表之间的对应关系,Hibernate根据该文件生成SQL语句,比如POJO类名为User.java,对应的映射文件就名为User.hbm.xml. 案例--Hibernate HelloWorld 1).项目的结构图 2).新建项目hw_hibernate 3).导入Jar包  

CYQ.Data 从入门到放弃ORM系列:开篇:自动化框架编程思维

前言: 随着CYQ.Data 开始回归免费使用之后,发现用户的情绪越来越激动,为了保持这持续的激动性,让我有了开源的念头. 同时,由于框架经过这5-6年来的不断演进,以前发的早期教程已经太落后了,包括使用方式,及相关介绍,都容易引人误解. 为此,我打算重新写个系列来介绍最新的版本,让大伙从传统的ORM编程过渡到自动化框架型思维编程(自已造的词). 于是:这个新系列的名称就叫:CYQ.Data 从入门到放弃ORM系列 什么是:CYQ.Data 1:它是一个ORM框架. 2:它是一个数据层组件. 3

Hibernate从入门到精通(四)基本映射

映射的概念 在上次的博文Hibernate从入门到精通(三)Hibernate配置文件我们已经讲解了一下 Hibernate中的两种配置文件,其中提到了两种配置文件的主要区别就是XML可以配置映射.这里提到的映射即 对象关系映射(Object Relational Mapping).ORM的实现目的就是将对象数据保存到数据库中,同时可以将数 据库数据读入对象中,这样开发人员就可以将对数据库数据的操作转化为对这些对象的操作. 基本映 射 了解了映射的意义和概念之后,我们来讲解一下映射的分类.从映射

Java开源项目Hibernate快速入门

快速入门|项目   Java开源项目Hibernate快速入门其实Hibernate本身是个独立的框架,它不需要任何web server或application server的支持.然而,大多数的Hibernate入门介绍都加入了很多非Hibernate的东西,比如: Tomcat, Eclipse, Log4J,Struts, XDoclet, 甚至JBoss.这容易让人产生Hibernate复杂难懂的误解,特别是打击了初学者的积极性. 在这篇文章将不涉及Eclipse, log4j, Str

Eclipse快速上手Hibernate之入门实例

这篇文章主要谈谈Hibernate的入门开发,例子很简单,就是向数据表中添加用户名和密码.我分别使用了三种方法,一种是直接写代码,写Hbm映射文件等:一种是通过Hbm映射文件来生成代码:一种是通过代码来生成Hbm映射文件.使用了一些自动化工具,XMLBuddy是用来编辑XML文件的,JBoss Eclipse IDE是用来编写Doclet标记的.这篇文章还谈到了一些Eclipse的使用技巧,比如建立"用户库"."生成 Getter 和 Setter"等. 关于一些软

Hibernate从入门到精通(十一)多对多双向关联映射

上次我们在中Hibernate从入门到精通(十)多对多单向关联映射讲解了一下多对多单向关联映射,这次我 们讲解一下七种映射中的最后一种多对多双向关联映射. 多对多双向关联映射 按照我们之前的惯例,先看一下相关类图和代码,具体如下: public class Role { private int id; private String name; private Set users; public int getId() { return id; } public void setId(int id

Hibernate从入门到精通(十)多对多单向关联映射

上一篇文章Hibernate从入门到精通(九)一对多双向关联映射中我们讲解了一下关于一对多关联映射的 相关内容,这次我们继续多对多单向关联映射. 多对多单向关联映射 在讲解多对多单向关联映 射之前,首先看一下相关类图和代码,具体如下: public class Role { private int id; private String name; public int getId() { return id; } public void setId(int id) { this.id = id;

Hibernate从入门到精通(九)一对多双向关联映射

上次的博文Hibernate从入门到精通(八)一对多单向关联映射中,我们讲解了一下一对多单向映射的相关 内容,这次我们讲解一下一对多双向映射的相关内容. 一对多双向关联映射 一对多双向关联映 射,即在一的一端存在多的一端的一个集合对象,在多的一端存在一的一端的一个对象,这样就可以保证在加 载一的一端或多的一端将被指向端的集合或对象加载上来,即保证双向关联. 一对多双向关联映射和 一对多单向关联映射的异同 一对多双向关联映射相应的类结构图和代码.具体如下: public class Classes