参考书籍:《J2EE开源编程精要15讲》

Hibernate是对象/关系映射(ORM,Object/Relational Mapping)的解决方案,就是将Java对象与对象关系映射到关系型数据库中的表格与表格之间的关系。它是Java应用与关系数据库之间的桥梁,负责Java对象和关系数据之间的映射。Hibernate内部封装了通过JDBC访问数据库的操作,向上层应用提供了面向对象的数据库访问API。

Hibernate的体系结构

  Hibernate通过配置文件( hibernate.properties 或 hibernate.cfg.xml )和映射文件( .hbm.xml )把Java对象或持久化对象( Persistent Object,PO )映射到数据库的表格,然后通过操作PO,对数据表中的数据进行增、删、改、查等操作。

Hibernate的核心组件

  • Configuration类:用来读取Hibernate配置文件,并生成SessionFactory对象。
  • SessionFactory接口:产生Session实例的工厂
  • Session接口:用来操作PO。有get()、load()、save()、update()、delete()等方法用来对PO进行加载、保存、更新及删除等操作,是Hibernate的核心接口
  • Query接口:用来对PO进行查询操作。可从Session的createQuery()方法生成
  • Transaction接口:用来管理Hibernate事务,主要方法有commit()和rollback(),可从Session的beginTransaction()方法生成
  • Hibernate配置文件主要用来配置数据库链接参数,如数据库驱动程序、URL、用户名、密码等。有两种格式:hibernate.properties 和 hibernate.cfg.xml,hibernate.cfg.xml可以在其<mapping>子元素中定义用到的xxx.hbm.xml映射文件列表,而hibernamte.properties需要在程序中以硬代码方式指明。一般hibernate.cfg.xml是Hibernate的默认配置文件
  • 映射文件(xxx.hbm.xml)用来把PO与数据库中的数据表、PO之间的关系与数据库之间的关系、以及PO的属性与表字段一一映射起来,是Hibernate的核心文件
  • 持久化对象(PO)可以是普通的JavaBean/POJO,唯一特殊的是他们正与(仅仅一个)Session相关联。JavaBean在Hibernate中存在三种状态:临时状态(transient)、持久化状态(persistent)和托管状态(detached)。当JavaBean对象在内存中孤立存在、不与数据库中的数据有任何关联关系时,为临时对象;当它与一个Session相关联时,为持久化对象;在这个Session被关闭的同时,这个对象变成脱管对象。

Hibernate的运行过程

  1) 应用程序调用Configuration类,该类读取Hibernate配置文件级映射文件中的信息,并生成一个SessionFactory

  2) 从SessionFactory对象生成一个Session对象,并用Session对象生成Transaction对象

  3) 通过Session对象的get()、load()、save()、update()、delete()、saveOrUpdate()等方法对PO进行加载、保存、更新、删除等操作;通过Session对象生成一个Query对象,进行查询操作

  4) 如无异常,Transaction对象将提交这些操作结果到数据库中

应用示例 简单用户登记:http://pan.baidu.com/s/1dDGSzQh

相关资料:http://yusun.blog.163.com/blog/static/20174407620120432015398/

Java Web编程的主要组件技术——Hibernate入门的更多相关文章

  1. Java Web编程的主要组件技术——Hibernate核心组件

    参考书籍:<J2EE开源编程精要15讲> Hibernate配置文件 1) hibernate.cfg.xml <?xml version='1.0' encoding='UTF-8 ...

  2. Java Web编程的主要组件技术——Struts入门

    参考书籍:<J2EE开源编程精要15讲> Struts是一个开源的Java Web框架,很好地实现了MVC设计模式.通过一个配置文件,把各个层面的应用组件联系起来,使组件在程序层面联系较少 ...

  3. Java Web编程的主要组件技术——MVC设计模式

    参考书籍:<J2EE开源编程精要15讲> MVC(Model View Controller),Model(模型)表示业务逻辑层,View(视图)代表表述层,Controller(控制)表 ...

  4. Java Web编程的主要组件技术——JDBC

    参考书籍:<J2EE开源编程精要15讲> JDBC(Java DataBase Connectivity)是Java Web应用程序开发的最主要API之一.当向数据库查询数据时,Java应 ...

  5. Java Web编程的主要组件技术——Struts核心组件

    参考书籍:<J2EE开源编程精要15讲> Struts配置文件struts-config.xml Struts核心文件,可配置各种组件,包括Form Beans.Actions.Actio ...

  6. Java Web编程的主要组件技术——Servlet

    参考书籍:<J2EE开源编程精要15讲> Servlet是可以处理客户端传来的HTTP请求,并返回响应,由服务器端调用执行,有一定编写规范的Java类. 例如: package test; ...

  7. Java Web编程的主要组件技术——Struts的高级功能

    参考书籍:<J2EE开源编程精要15讲> Struts对国际化的支持 "国际化"(I18N)指一个应用程序在运行时能根据客户端请求所来的国家/地区.语言的不同显示不同的 ...

  8. Java Web编程的主要组件技术——JSP

    参考书籍:<J2EE开源编程精要15讲> JSP(Java Server Page)页面由HTML代码和嵌入其中的Java代码组成. 简单的JSP页面如: <html> < ...

  9. 五分钟学Java:如何才能学好Java Web里这么多的技术

    原创声明 本文作者:黄小斜 转载请务必在文章开头注明出处和作者. 系列文章介绍 本文是<五分钟学Java>系列文章的一篇 本系列文章主要围绕Java程序员必须掌握的核心技能,结合我个人三年 ...

随机推荐

  1. 输入一个链表,输出该链表中倒数第k个结点。

    // test14.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> #include< ...

  2. 20160730noip模拟赛zld

    codeforces394E 如果没有在凸多边形内一点的限制,答案肯定是 如果不在凸多边形内,那么目标点肯定在凸多边形边上,我们枚举每条边,在每条边上求出距离平方和最小的点,在这些点中求出最小的 我们 ...

  3. 用NPOI导出Excel

    用NPOI导出Excel public void ProcessRequest(HttpContext context) { context.Response.ContentType = " ...

  4. [Unity3D+算法]一小时做个2048

    原地址:http://blog.csdn.net/dingxiaowei2013/article/details/36462749 048是继FlappyBird之后另一个比较热的轻量级的手游,简单易 ...

  5. hdu 3790 最短路径问题(最短路,Dijsktra)

    题目 Dijsktra基础题,只是多了一个花费,稍稍变动处理就好 #define _CRT_SECURE_NO_WARNINGS #include<string.h> #include&l ...

  6. Hibernate3中将指定的HQL语句转换成SQL语句

    import org.hibernate.engine.SessionFactoryImplementor; import org.hibernate.hql.ast.QueryTranslatorI ...

  7. linux下获取时间差

    #include <sys/time.h> struct timeval tpstart,tpend;     float timeuse;     gettimeofday(&t ...

  8. 通过一个简单的数据库操作类了解PHP链式操作的实现

    class Model{ public $table; //操作的表; private $opt; //查询的参数; private $pri; //表的主键; private $lastSql; / ...

  9. Python 中的 TK编程

    可爱的 Python:Python 中的 TK编程 http://www.ibm.com/developerworks/cn/linux/sdk/python/charm-12/ python che ...

  10. IT讲师韩顺平:我为什么辞去百万年薪,自己创业?

    先自我介绍一下,我叫韩顺平,是一名IT讲师.国内很多自学PHP和Java的朋友都看过我的视频课程,算是有些知名度. 15年8月从传智辞职后,很多朋友非常关心我的去向,网上也流传各种说法,有的说我和某某 ...