其实hibernate完全是建立在JDBC的基础上的。
那为什么还要用hibernate呢?
原因:使用JDBC查询有太多重复性的转换工作,连接数据库的信息放在程序代码中,一旦需要修改数据库的信息时,必须重新修改,重新编译。不利于程序的维护。
hibernate的优势:
概括的说:hibernate是一个优秀的java持久化层解决方案。是当今主流的对象-关系映射工具。
1.松散耦合,hibernate既不会渗透到上层域模型中。也不会渗透到下层数据模型中软件开发人员可以独立设计域模型。不必强迫遵守任何规范
2.数据库设计人员可以独立设计数据库。不必强迫遵守任何规范
3.对象-关系映射不依赖于任何程序代码。如果需要修改对象-关系映射。只需修改xml文件。不需要修改任何程序。提高了软件的灵活性,复用性,并且使维护更加方便。
持久化和ORM:
狭义的理解: “持久化”仅仅指把域对象永久保存到数据库中;广义的理解,“持久化”包括和数据库相关的各种操作(持久化就是将有用的数据以某种技术保存起来,将来可以再次取出来应用,数据库技术,将内存数据一文件的形式保存在永久介质中(磁盘等)都是持久化的例子.)。
ORM:Object Relational Mapping 即对象关系映射。在编写程序时,以面向对象的方式处理数据,保存数据时,却以关系型数据库的方式存储,所以我们需要这个对象关系映射这个机制,将需要保存的对象与关系数据库表建立联系。简单的说:ORM就是利用描述对象和数据库之间的映射,自动的把java应用程序中的对象持久化到关系数据库中的表。
大概了解后:我们开始一个hibernate的基础小程序(CRUD)
首先导入jar包。前期工作不多说了。
首先创建主配置文件:hibernate.cfg.xml文件:这个文件是用于配置数据库连接的信息和hibernate运行时所需要的各种属性,该文件一定是放在src目录下的。而且命名一定是hibernate.cfg.xml。
然后在创建持久化映射文件:命名规范:
类名.hbm.xml文件。一般都是放在实体类的同级目录下的。
然后就是
POJO类了。
在就是:获取
Session实例对象:
最后就可以对用户实行CRUD了。
先做一个save();
一个简单的保存用户就OK了。实现了面向对象的编程。
例子太多就不多说了。简单介绍下hibernate的API吧。
保存:把域对象永久保存到数据库。
session.save(Object o)
更新:更新数据库中域对象的状态。
session.update(Object o)
删除:从数据库中删除一个域对象。
session.delete(Object o)
查询:根据特定的查询条件,把符合查询条件的一个或多个域对象从数据库加载内在存中。
有两种方式查询:session.get(class,id)和session.load(class,id)
get和load的区别在于:
1、如果没有查询到该数据的时候,get()会返回null,load()会抛出异常。
2、get方法是直接到数据库里去查。load()会返回一个代理对象。并不是返回真实对象本身。如果你使用这个对象。它才会真正到数据库里面查这个对象。否则,该对象里面仅仅是保存着该对象的OID.而没有其他任何值。
hibernate中的实体对象的三种状态:
1.瞬时状态:在使用持久化操作前,没有数据库中的数据有任何的联系。
2.持久化状态:即实体对象在hibernate框架所管理的状态。与数据中的数据建立了联系。
3.游离状态:当session对象关闭时,但是对象和数据库中建立了联系,这时该对象并未受到session实例的管理。称之为游离状态。或者说是托管状态。
分享到:
相关推荐
【hibernate学习笔记1】 一、理解Hibernate Hibernate是一个流行的Java对象关系映射(ORM)框架,它的主要目的是简化数据库操作,通过将Java对象与数据库表进行映射,使得开发者能够以面向对象的方式处理数据,而...
### 对象持久化与Hibernate学习笔记 #### 一、对象持久化的概念与重要性 - **定义**: 对象持久化是指将程序中的对象状态存储到持久化存储设备上的过程,以便在程序结束运行后仍然可以保留这些数据。 - **必要性**:...
Hibernate学习笔记 Hibernate学习笔记 Hibernate学习笔记 Hibernate学习笔记
Hibernate学习笔记整理 以下是 Hibernate 框架的详细知识点: Hibernate 介绍 Hibernate 是一个 ORM(Object-Relational Mapping)框架,用于将 Java 对象映射到数据库表中。它提供了一个简洁的方式来访问和操作...
《Hibernate学习笔记特别详细》 Hibernate,作为一款开源的Object-Relational Mapping(ORM)框架,为Java开发者提供了强大的数据库操作支持。它简化了数据库访问的复杂性,使得开发人员可以像操作对象一样操作...
hibernate 学习笔记精要hibernate 学习笔记精要hibernate 学习笔记精要hibernate 学习笔记精要
在本篇《Hibernate学习笔记》中,我们将深入探讨Hibernate这一流行的Java对象关系映射(ORM)框架。Hibernate允许开发者以面向对象的方式处理数据库操作,极大地简化了数据存取的复杂性。以下是一些关键知识点: 1....
这套笔记是我学习Hibernate,进行相关技术点训练时记录下来的,其中包括技术点说明与相关事例,拿出来与大家分享。
【Java相关课程系列笔记之十四Hibernate学习笔记】 Hibernate是一个开源的对象关系映射(ORM)框架,它极大地简化了Java应用程序对数据库的操作。本笔记将详细阐述Hibernate的核心概念、使用方法和特性。 一、...
《Hibernate学习笔记——马士兵教程解析》 在Java开发领域,ORM(Object-Relational Mapping)框架的使用已经非常普遍,其中Hibernate作为一款优秀的ORM框架,因其强大的功能和易用性深受开发者喜爱。本文将根据马...
### 马士兵Hibernate学习笔记知识点总结 #### 一、课程内容概览 - **HelloWorld**:通过简单的示例程序介绍如何启动一个基于Hibernate的Java项目。 - **Hibernate原理模拟**:解释O/R Mapping的概念及其重要性。 -...
**Hibernate学习笔记与总结** Hibernate 是一款开源的对象关系映射(ORM)框架,它为Java开发者提供了一种在关系数据库上操作对象数据的便捷方式。本文将深入探讨Hibernate的核心概念、配置、实体类、映射文件、...
hibernate概述,hibernate入门Demo,hibernate配置文件详解(全局配置,实体类映射配置),配置实体规则,核心API详解(Configuration,sessionFactory,session,Transaction),hibernate中的对象状态以及刷新能缓存机制 ...
传智播客 汤阳光 Hibernate 学习笔记,非常详细的hibernate学习资料!
Hibernate是一款强大的Java持久...通过阅读这份“Hibernate API帮助文档”和“Hibernate学习笔记”,你将能够深入理解Hibernate的工作原理,掌握其API的使用,并能在实际项目中有效地利用Hibernate进行数据持久化操作。
### Hibernate 学习笔记知识点概览 #### 一、Hibernate 概述 - **定义**:Hibernate 是一款开源的对象关系映射(ORM)框架,它实现了将 Java 应用程序中的对象模型映射到关系型数据库中的记录。通过 ORM 技术,...
在深入探讨Hibernate学习笔记第二天的源码之前,我们先来理解一下Hibernate的核心概念。Hibernate是一个开源的对象关系映射(ORM)框架,它允许Java开发者将数据库操作转化为对象模型,大大简化了数据访问层的开发...