`
moshowgame
  • 浏览: 42698 次
  • 性别: Icon_minigender_1
  • 来自: 潮州
社区版块
存档分类
最新评论

初学hibernate,hibernate入门

阅读更多

 

*.关于持久化这个概念!

■顾名思义就是把缓存中的java对象放到数据库中使之持久.对于需要持久化的对象,它的生命周期分为三个状态:临时状态,持久化状态,游离状态.

●临时状态:刚刚用new语句创建,没有被持久化,不处于session的缓存中

●持久化状态:已经被持久化,而且加入到session的缓存中

●游离状态:已经被持久化,但不放在session的缓存中

◆Session具有一个缓存,位于缓存中的对象处于持久化状态,它和数据库中的相关记录对应,Session能够在某些时间点,按照缓存中持久化对象的属性变化来同步数据库,这一过程称为清理缓存.

◆Session的save()方法把临时状态变为持久化状态.

◆Session的update(),lock(),replicate(),save(),persist()或者saveOrUpdate()方法方法使游离状态变为持久化状态.

 

*。关于ORM这个概念!

对象关系映射(ORM)提供了概念性的、易于理解的模型化数据的方法。

ORM名字中就可以看出其原理:参照mapping,将object转换成sql语句,然后持久化到RDB中。

mapping记录objectRDB(表)的映射关系;这种映射关系可以是一个xml文件或者注解。

*AnnotationJPA

Hibernate对类的映射的实现一个是通过Annotation注释,另一个是通过XML配置,现在是重AX了。

JPA全称Java Persistence API持久化编程接口,Hibernate就是JPA Provider中很强的一个,JPA现在就是Hibernate功能的一个子集。Hibernate实体对象的状态,有自由、持久、游离三种,JPA里有newmanageddetachedremoved,这些状态都是一一对应。而其他的如Query query = manager.createQuery(sql),它在Hibernate里写法上是session,而在JPA中变成了manager,所以从HibernateJPA的代价应该是非常小的 。

 

 

Hibernate的流程:

1.工具eclipsemyeclipse,然后先下载hibernate以及slf4j还有MySQL-JDBCjar类库


2.Newweb项目,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 capabilitieseclipse下直接建立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来表示,如果类中的名称和数据库名不一样则idcolumn都要写,不然只写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()之后,不会马上对数据库进行更新,而是在Transactioncommit()之后才会对数据库进行更新,在Transaction之间的操作要么全部成功,要么全部失败,如果失败,则会回滚全部操作,就当做本次会话什么都没发生。

 

 

 

附上学习资源项目一个!

 

*.以上是我初学Hibernate的小结,很适合初学者,对于高手来说这绝对是小小菜,不知道对不对,大家可以看看,不对、不通、不好理解的地方都可以提出来!

 

我是学尚学堂马士兵的视频的,觉得很不错,大家想学可以去下载!

  • 大小: 37.6 KB
  • 大小: 18 KB
  • 大小: 56.2 KB
  • 大小: 13.7 KB
  • 大小: 11.3 KB
分享到:
评论

相关推荐

    Hibernate入门案例源码

    【Hibernate入门案例源码】是针对初学者设计的一份教程,旨在帮助理解并掌握Java持久化框架Hibernate的基础应用。Hibernate是一个强大的ORM(对象关系映射)框架,它简化了数据库与Java对象之间的交互,使开发者可以...

    Hibernate入门jar包

    本压缩包提供的是Hibernate入门所需的jar包,包括了Hibernate的核心库以及与之配合使用的相关组件。让我们深入探讨一下这些jar包以及它们在Hibernate中的作用。 1. Hibernate核心库: - `hibernate-core.jar`:这...

    Hibernate入门

    ### Hibernate入门知识点详解 #### Hibernate概述与ORM思想 - **定义**:Hibernate是一个开源的、轻量级的对象关系映射(Object-Relational Mapping,简称ORM)框架,它主要应用于JavaEE架构中的DAO(Data Access ...

    Hibernate入门(代码+笔记)

    **Hibernate入门** Hibernate是一款强大的Java持久化框架,它简化了数据库与Java对象之间的交互,使得开发者无需编写大量的SQL语句,就能实现数据的增删改查。本教程将分为五个部分,逐步深入Hibernate的世界。 **...

    hibernate入门小例子

    【hibernate入门小例子】是一个适合初学者的教程,主要涵盖了如何在JavaWeb项目中使用Hibernate框架与MySQL数据库进行集成。在这个例子中,我们将会深入理解Hibernate的核心概念,包括实体映射、对象关系映射(ORM)...

    MyEclipse Hibernate 快速入门中文版

    《MyEclipse Hibernate 快速入门中文版》是专为初学者设计的指南,旨在帮助开发者迅速掌握在MyEclipse集成开发环境中使用Hibernate框架的基本操作和应用。此资源包括一个HTML文档(MyEclipse_Hibernate_Quickstart_...

    Hibernate快速入门教程

    【Hibernate快速入门教程】 在Java开发中,Hibernate是一个非常重要的框架,它实现了对象关系映射(ORM)技术,使得开发者可以使用面向对象的方式来操作数据库,极大地简化了数据访问层的编程工作。本教程针对初学...

    Hibernate入门教程.pdf

    ### Hibernate入门教程知识点详解 #### 一、Hibernate框架简介 **Hibernate** 是一款开放源代码的**对象关系映射(Object-Relational Mapping,简称ORM)**框架,它为Java应用提供了一种高效的机制,用于处理Java...

    MyEclipse+Hibernate快速入门中文版

    ### MyEclipse+Hibernate快速入门知识点详解 #### 一、前言 本文档旨在通过一个简单易懂的方式,介绍如何在MyEclipse环境下配置并使用Hibernate框架。这是一份非常适合初学者使用的指南,特别是对于那些希望快速...

    hibernate初学者很好的资料

    对于初学者来说,理解并掌握Hibernate的关键概念和技术是非常重要的,因为这可以极大地提高开发效率,减少与数据库交互的复杂性。 Hibernate 允许开发者用面向对象的方式来操作数据库,它通过映射Java类到数据库表...

    hibernate3入门

    ### hibernate3入门知识点 #### 一、概述 **Hibernate**是一种对象关系映射(Object/Relational Mapping,简称ORM)解决方案,...这对于初学者来说是一个很好的起点,有助于快速掌握Hibernate的核心理念和技术细节。

    hibernate入门简单实例

    以下是关于Hibernate入门的一些关键知识点: 1. **对象关系映射(ORM)**:ORM是将数据库中的表映射为Java类的过程,通过这种方式,我们可以使用面向对象的编程方式来操作数据,而无需直接编写SQL语句。 2. **...

    hibernate官方入门教程 (转载)

    标题“hibernate官方入门教程 (转载)”表明这是一份关于Hibernate框架的基础教学资源,可能是从官方文档或者其他可靠来源整理而来的,适合初学者了解和学习Hibernate。 描述中提到的“NULL”意味着没有具体的描述...

    hibernate3完整入门示例含jar包

    在这个压缩包中,包含的是Hibernate3的入门示例,以及必要的jar包,帮助初学者快速理解和实践Hibernate的核心功能。 **一、Hibernate3简介** Hibernate3是Hibernate框架的第三个主要版本,它提供了许多改进和新特性...

    hibernate入门数据简单插入

    标题"hibernate入门数据简单插入"指的是使用Hibernate框架进行数据库的基本操作,特别是数据的插入。Hibernate是一个开源的对象关系映射(ORM)框架,它允许Java开发者在应用程序中处理数据库对象,而无需直接编写...

    java基础入门之Hibernate 入门

    在这个“Java基础入门之Hibernate入门”中,我们将深入理解Hibernate的核心概念,包括实体、配置、会话和查询等,以帮助初学者快速上手。 ### 一、Hibernate简介 1. **ORM概念**:对象关系映射(Object-Relational...

    hibernate开发流程 入门

    本篇将详细介绍Hibernate的开发流程,从环境搭建到实际操作,帮助初学者快速入门。 首先,我们来了解两个重要的开发工具——Database Explorer 透视图和 Hibernate 透视图。Database Explorer 透视图允许开发者在...

    hibernate hellowrold入门级代码

    【hibernate helloworld入门级代码】是针对初学者的一个简单示例,旨在帮助理解Hibernate这一流行的Java对象关系映射(ORM)框架的基本用法。在这个项目中,我们将探讨Hibernate如何将Java对象与数据库中的记录关联...

Global site tag (gtag.js) - Google Analytics