Hibernate ORM框架的简单介绍

来源:互联网 发布:tensorflow教程pdf 编辑:程序博客网 时间:2024/05/22 13:31

本文简要介绍JavaWeb三层架构、Hibernate以及ORM基本概念。

一、JavaWeb三层架构

JavaWeb三层架构分别为:

Web层:表示层,主要的架构模式为MVC(Model View Controller,模型-视图-控制器),主要框架有:Struts2和SpringMVC;

Service层:业务逻辑层,主要框架有:Spring;

Dao层:数据访问层,即数据持久化层,主要框架有:Hibernate和MyBatis(前身是iBATIS)。

常用的两种框架组合:

SSH:Struts2 + Spring + Hibernate

SSM:SpringMVC + Spring + MyBatis(更流行)

二、Hibernate ORM框架简介

Hibernate的特点:

1、一个开源(LGPL V2.1)的对象关系映射(Object Relational Mapping,即ORM)框架;

2、它对JDBC进行了非常轻量级的对象封装;

3、它将Java实体类与数据库表建立映射关系,使用对象编程思维来操纵数据库,完成数据持久化的任务。

所谓数据持久化,即是将那些内存中瞬时数据保存到存储设备(外存,如硬盘)中。保存在内存中的数据是处于瞬时状态的,而保存在存储设备中的数据是处于持久状态的,持久化技术则提供了一种让数据在瞬时状态和持久状态之间进行转换的机制。

三、ORM(对象关系映射)架构模式

在用JDBC对数据库表进行CRUD操作时,会写很多底层SQL语句,这样不仅面向对象思想格格不入,也会出现一些令人头疼的问题,如:不同的数据库语法不同;同样的功能在不同的数据库中有不同的实现方式;程序过分依赖SQL对程序的移植、扩展和维护也带来不少麻烦。

ORM(Object Relational Mapping),即对象关系映射,将面向对象的编程语言和面向关系的数据库之间建立起一种映射关系,即让Java实体类数据库表一一对应,类名和表名对应,类属性和表字段一一对应,然后就可以使用面向对象的思想来通过操纵实体类的对象即可实现对数据库表的操纵。


例如:

现有一张学生表student,有四个字段:学号id,姓名name,性别gender,年龄age:

create table student(    id int primary key,    name varchar(20),    sex varchar(2),    age int);

对应的Java实体类Student,同样有四个对应数据库表student的属性:

// 实体类public class Student {    // 建议使用包装类而不是基本数据类型    private Integer id;    private String name;    private String sex;    private Integer age;    public Student() {    }    public Integer getId() {        return id;    }    public void setId(Integer id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getSex() {        return sex;    }    public void setSex(String sex) {        this.sex = sex;    }    public Integer getAge() {        return age;    }    public void setAge(Integer age) {        this.age = age;    }}

学生表student中有两条数据:

id name sex age 1001 小明 男 20 1002 小红 女 19

假设要求查询学号为1001的学生:

若编写SQL语句,则应是

SELECT * FROM student WHERE id = 1001

若通过ORM架构模式,则应是

// Hibernate的Session对象类似于JDBC中的Connection对象Student student = session.get(Student.class, 1001);

这是一个非常简单的例子,后面会介绍更多的操作。


以上则是对JavaWeb三层架构、Hibernate框架和ORM架构模式的简介,更多的内容后续文章会有所介绍。