*.关于持久化这个概念!
■顾名思义就是把缓存中的java对象放到数据库中使之持久.对于需要持久化的对象,它的生命周期分为三个状态:临时状态,持久化状态,游离状态.
●临时状态:刚刚用new语句创建,没有被持久化,不处于session的缓存中
●持久化状态:已经被持久化,而且加入到session的缓存中
●游离状态:已经被持久化,但不放在session的缓存中
◆Session具有一个缓存,位于缓存中的对象处于持久化状态,它和数据库中的相关记录对应,Session能够在某些时间点,按照缓存中持久化对象的属性变化来同步数据库,这一过程称为清理缓存.
◆Session的save()方法把临时状态变为持久化状态.
◆Session的update(),lock(),replicate(),save(),persist()或者saveOrUpdate()方法方法使游离状态变为持久化状态.
*。关于ORM这个概念!
对象关系映射(ORM)提供了概念性的、易于理解的模型化数据的方法。
从ORM名字中就可以看出其原理:参照mapping,将object转换成sql语句,然后持久化到RDB中。
mapping记录object与RDB(表)的映射关系;这种映射关系可以是一个xml文件或者注解。
*。Annotation?JPA?
Hibernate对类的映射的实现一个是通过Annotation注释,另一个是通过XML配置,现在是重A轻X了。
JPA全称Java Persistence API持久化编程接口,Hibernate就是JPA Provider中很强的一个,JPA现在就是Hibernate功能的一个子集。Hibernate实体对象的状态,有自由、持久、游离三种,JPA里有new,managed,detached,removed,这些状态都是一一对应。而其他的如Query query = manager.createQuery(sql),它在Hibernate里写法上是session,而在JPA中变成了manager,所以从Hibernate到JPA的代价应该是非常小的 。
Hibernate的流程:
1.工具eclipse或myeclipse,然后先下载hibernate以及slf4j还有MySQL-JDBC的jar类库
2.New个web项目,create个数据库和表,create database hibernate; use hibernate;create table student (id int primary key,name varchar(20),age int);
3.把需要用到的类库bulid path进来
4.可以右键>myeclipse>add Hibernate capabilities,eclipse下直接建立hibernate.cfg.xml文件,模板可以在http://www.hibernate.org/docs搜一下或者直接到以下地址copy
http://docs.jboss.org/hibernate/core/3.6/reference/zh-CN/html/tutorial.html#tutorial-firstapp-mapping
5.然后根据实际修改该配置文件
<session-factory>会话工厂,生产会话,每次请求就建个会话
<property name="dialect">数据库方言,数据库各种数据语言就像全国各地的话,如白话、潮州话、湖南话,方言是将其统一的普通话,人人都能通话。各个数据库的方言可以在百度一下或者官方文档查看
org.hibernate.dialect.MySQLDialect
</property>
<property name="connection.url">数据库的URL,本地的mysql一般的URL是这样的jdbc:mysql://IP地址:3306/数据库名称
jdbc:mysql://127.0.0.1:3306/hibernate
</property>
<property name="connection.username">root</property>用户名
<property name="connection.password">moshow</property>密码
<property name="connection.driver_class">数据库JDBC驱动,hibernate底层依然是通过jdbc实现的,只不过包装起来了,操作方便了
com.mysql.jdbc.Driver
</property>
<mapping resource="./Guests.hbm.xml" />映射的文件名,如果用xml映射的话,一般每个被映射的类都要对应一个xxx.hbm.xml
</session-factory>
6.接↑,就是为每个要映射的类建立一个对应的xxx.hbm.xml
<hibernate-mapping>hibernate映射
<class name="Guest" table="guests">这个类名叫什么,对应数据库中哪张表
<id name="gname" column name="gname"> 类中和数据库对应的主键名称,用id来表示,如果类中的名称和数据库名不一样则id和column都要写,不然只写id就可以了,这里写出来可以对照一下
</id>
<property name="guest" column name="guest"> 其它属性
</property>
</class>
</hibernate-mapping>
7.写测试类
Student s = new Student(); 新建一个student对象并设置对应值
s.setId(1);
s.setName("zhangsan");
s.setAge(8);
SessionFactory sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory(); 根据配置文件创建一个会话工厂SessionFactory
Session session = sessionFactory.getCurrentSession();
session.beginTransaction();
session.save(s);
session.getTransaction().commit();进行会话的过程
要注意的几点就是:
◤使用的是getCurrentSession来创建session的话,在commit后,session就自动被关闭了,也就是不用再session.close()了.但是如果使用的是openSession方法创建的session的话,那么必须显式的关闭session,也就是调用session.close()方法.这样commit后,session并没有关闭。
◤save()之后,不会马上对数据库进行更新,而是在Transaction的commit()之后才会对数据库进行更新,在Transaction之间的操作要么全部成功,要么全部失败,如果失败,则会回滚全部操作,就当做本次会话什么都没发生。
附上学习资源项目一个!
*.以上是我初学Hibernate的小结,很适合初学者,对于高手来说这绝对是小小菜,不知道对不对,大家可以看看,不对、不通、不好理解的地方都可以提出来!
我是学尚学堂马士兵的视频的,觉得很不错,大家想学可以去下载!
相关推荐
【Hibernate入门案例源码】是针对初学者设计的一份教程,旨在帮助理解并掌握Java持久化框架Hibernate的基础应用。Hibernate是一个强大的ORM(对象关系映射)框架,它简化了数据库与Java对象之间的交互,使开发者可以...
本压缩包提供的是Hibernate入门所需的jar包,包括了Hibernate的核心库以及与之配合使用的相关组件。让我们深入探讨一下这些jar包以及它们在Hibernate中的作用。 1. Hibernate核心库: - `hibernate-core.jar`:这...
### Hibernate入门知识点详解 #### Hibernate概述与ORM思想 - **定义**:Hibernate是一个开源的、轻量级的对象关系映射(Object-Relational Mapping,简称ORM)框架,它主要应用于JavaEE架构中的DAO(Data Access ...
**Hibernate入门** Hibernate是一款强大的Java持久化框架,它简化了数据库与Java对象之间的交互,使得开发者无需编写大量的SQL语句,就能实现数据的增删改查。本教程将分为五个部分,逐步深入Hibernate的世界。 **...
【hibernate入门小例子】是一个适合初学者的教程,主要涵盖了如何在JavaWeb项目中使用Hibernate框架与MySQL数据库进行集成。在这个例子中,我们将会深入理解Hibernate的核心概念,包括实体映射、对象关系映射(ORM)...
《MyEclipse Hibernate 快速入门中文版》是专为初学者设计的指南,旨在帮助开发者迅速掌握在MyEclipse集成开发环境中使用Hibernate框架的基本操作和应用。此资源包括一个HTML文档(MyEclipse_Hibernate_Quickstart_...
### Hibernate入门教程知识点详解 #### 一、Hibernate框架简介 **Hibernate** 是一款开放源代码的**对象关系映射(Object-Relational Mapping,简称ORM)**框架,它为Java应用提供了一种高效的机制,用于处理Java...
### MyEclipse+Hibernate快速入门知识点详解 #### 一、前言 本文档旨在通过一个简单易懂的方式,介绍如何在MyEclipse环境下配置并使用Hibernate框架。这是一份非常适合初学者使用的指南,特别是对于那些希望快速...
对于初学者来说,理解并掌握Hibernate的关键概念和技术是非常重要的,因为这可以极大地提高开发效率,减少与数据库交互的复杂性。 Hibernate 允许开发者用面向对象的方式来操作数据库,它通过映射Java类到数据库表...
### hibernate3入门知识点 #### 一、概述 **Hibernate**是一种对象关系映射(Object/Relational Mapping,简称ORM)解决方案,...这对于初学者来说是一个很好的起点,有助于快速掌握Hibernate的核心理念和技术细节。
以下是关于Hibernate入门的一些关键知识点: 1. **对象关系映射(ORM)**:ORM是将数据库中的表映射为Java类的过程,通过这种方式,我们可以使用面向对象的编程方式来操作数据,而无需直接编写SQL语句。 2. **...
标题“hibernate官方入门教程 (转载)”表明这是一份关于Hibernate框架的基础教学资源,可能是从官方文档或者其他可靠来源整理而来的,适合初学者了解和学习Hibernate。 描述中提到的“NULL”意味着没有具体的描述...
在这个压缩包中,包含的是Hibernate3的入门示例,以及必要的jar包,帮助初学者快速理解和实践Hibernate的核心功能。 **一、Hibernate3简介** Hibernate3是Hibernate框架的第三个主要版本,它提供了许多改进和新特性...
标题"hibernate入门数据简单插入"指的是使用Hibernate框架进行数据库的基本操作,特别是数据的插入。Hibernate是一个开源的对象关系映射(ORM)框架,它允许Java开发者在应用程序中处理数据库对象,而无需直接编写...
在这个“Java基础入门之Hibernate入门”中,我们将深入理解Hibernate的核心概念,包括实体、配置、会话和查询等,以帮助初学者快速上手。 ### 一、Hibernate简介 1. **ORM概念**:对象关系映射(Object-Relational...
本篇将详细介绍Hibernate的开发流程,从环境搭建到实际操作,帮助初学者快速入门。 首先,我们来了解两个重要的开发工具——Database Explorer 透视图和 Hibernate 透视图。Database Explorer 透视图允许开发者在...
【hibernate helloworld入门级代码】是针对初学者的一个简单示例,旨在帮助理解Hibernate这一流行的Java对象关系映射(ORM)框架的基本用法。在这个项目中,我们将探讨Hibernate如何将Java对象与数据库中的记录关联...