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

Hibernate学习笔记(一)

阅读更多

 

本笔记的内容:

  • 分层体系结构
  • ORM介绍
  • Hibernate简介
  • Hibernate开发步骤
  • Hibernate核心API

查看原文:http://www.jacken.com.cn/hibernatenoteone.yy/

分享到:
评论
2 楼 jacken 2008-01-15  
嗯 好的! 下次改正!不好意思  第一次发贴!
1 楼 jiyanliang 2008-01-15  
<h3> 希望下次能直接贴出来啊</h3><p>摘楼上的文章:<a href='http://www.jacken.com.cn/hibernatenoteone.yy/'>http://www.jacken.com.cn/hibernatenoteone.yy/</a></p><p> </p><p> 分层体系结构</p>
<ul><li>
<h4>经典的三层结构(图1)</h4>
</li></ul>
<ol><li><strong>表现层:</strong>提供与用户交互的界面.(例如Swing界面或JSP页面)</li><li><strong>业务逻辑层</strong>:实现各种业务逻辑.(例如网店计算用户的等级而实施优惠的计算.并将交易记录保存到数据库.)</li><li><strong>资源层</strong>(多位关系型数据库)<strong>:</strong>保存与管理持久业务数据.(例如用户的姓名,年龄…)</li></ol>
<ul><li>
<h4>N层结构(图1)</h4>
</li></ul>
<ol><li>在三层中的逻辑层分离出一个数据访问层,从而直接进行数据库的访问</li></ol>
<p><img src='http://www.jacken.com.cn/wp-content/uploads/2007/11/three-layer.JPG' alt='分层体系'/> <em> 图1</em></p>
<ul><li>
<h4>分层体系结构的优点缺点</h4>
</li></ul>
<ol><li><strong>优:</strong>可维护性(修改一部分,不影响其他部分),可重用性(底层代码重用),可管理性(分工合作),可扩展性(容易添加新功能).</li><li><strong>缺:…</strong></li></ol>
<p><img src='http://www.jacken.com.cn/wp-content/uploads/2007/11/oip.JPG' alt='面向接口'/></p><h3> ORM</h3>
<ul><li> <strong>ORM</strong>的全称是<strong>Object Relational Mapping</strong>,
即对象关系映射。对象-关系映射实现了面向对象世界中对象到关 系数据库中的表的自动的(和透明的)持久化,使用元数据(meta
data)描述对象与数据库间的映射.简单来说.ORM冲当翻译功能,例如不会说外语的中国人照样可以请个翻译家去泡外国的妞!ORM就是那个翻译家了</li><li>理解<strong>面向对象世界</strong>与<strong>关系数据库世界</strong>:在面向对象世界中,是以对象出现的(类,属性),类对应着数据库的表,而类的属性对应着数据库的字段.</li></ul>
<h3>Hibernate简介</h3>
<ul><li><strong><a href='http://www.hibernate.org/' title='hibernate' class='liexternal' target='_blank'>Hibernate</a>: </strong>它是一种能实现ORM的框架,它提供了强大的对象和关系数据库映射以及查询功能,且是开源(LGPL)的.<h3>Hibernate开发步骤</h3>
</li><li><strong>一 POJO</strong>(Plain Old Java Objects) ,有一些属性及其getter setter方法的JavaBeans类,并实现一个默认的构造函数.</li><li><strong>二 持久化类和关系数据库的映射:</strong>即是编写 *.nbm.xml文件,用于映射数据库的的表(字段)和POJO类(属性).</li></ul>
<p><img src='http://www.jacken.com.cn/wp-content/uploads/2007/11/nbm.JPG' alt='持久化类和关系数据库的映射'/><br/>
<em><strong> 一个学生数据库表对应的映射文件</strong></em>:<a href='http://www.jacken.com.cn/wp-content/uploads/2007/11/studenthbmxml.zip' title='Student.hbm.xml'>Student.hbm.xml</a></p>
<ul><li><strong>三 Hibernate配置文件:</strong>默认为hibernate.cfg.xml或hibernate.properties.<br/>
<em><strong>一个hibernate.cfg.xml列子</strong></em>:<a href='http://www.jacken.com.cn/wp-content/uploads/2007/11/hibernatecfgxml.zip' title='hibernate.cfg.xml'>hibernate.cfg.xml</a></li><li><strong>四 使用Hibernate API:</strong></li></ul>
<ol><li><strong>Configuration:</strong>Configuration 类负责管理Hibernate 的配置信息,运行时读取数据库URL,用户名和密码等信息….Hibernate会自动在当前的CLASSPATH 中搜寻Hibernate.cfg.xml文件并将其读取到内存中作为后继操作的基础配置.
<div class='hl-surround'><div class='hl-main'><span style='color: Blue;'>Configuration</span><span style='color: Gray;'> </span><span style='color: Blue;'>config</span><span style='color: Gray;'> = </span><span style='color: Green;'>new</span><span style='color: Gray;'> </span><span style='color: Blue;'>Configuration</span><span style='color: Olive;'>()</span><span style='color: Gray;'>.</span><span style='color: Blue;'>configure</span><span style='color: Olive;'>()</span><span style='color: Gray;'>;</span></div></div>
</li><li><strong>SessionFactory:</strong>会话工厂缓存了生成的SQL语句和Hibernate在运行时使用的映射元数
据.它在多个应用线程间进行共享.通常情况下, 整个应用只有唯一的一个会话工厂.SessionFactory负责创建Session
实例.我们可以通过Configuation实例构建SessionFactory:
<div class='hl-surround'><div class='hl-main'><span style='color: Blue;'>Configuration</span><span style='color: Gray;'> </span><span style='color: Blue;'>config</span><span style='color: Gray;'> = </span><span style='color: Green;'>new</span><span style='color: Gray;'> </span><span style='color: Blue;'>Configuration</span><span style='color: Olive;'>()</span><span style='color: Gray;'>.</span><span style='color: Blue;'>configure</span><span style='color: Olive;'>()</span><span style='color: Gray;'>;<br/></span><span style='color: Blue;'>SessionFactory</span><span style='color: Gray;'> </span><span style='color: Blue;'>sessionFactory</span><span style='color: Gray;'> = </span><span style='color: Blue;'>config</span><span style='color: Gray;'>.</span><span style='color: Blue;'>buildSessionFactory</span><span style='color: Olive;'>()</span><span style='color: Gray;'>;</span></div></div>
</li><li><strong>Session:</strong>Session是持久层操作的基础,相当于JDBC中的Connection.Session实例通过SessionFactory实例构.<strong>Transaction:</strong>使用Hibernate进行操作时(增,删,改)必须显示的调用Transaction(默认:autoCommit=false).
<div class='hl-surround'><div class='hl-main'><span style='color: Blue;'>Configuration</span><span style='color: Gray;'> </span><span style='color: Blue;'>config</span><span style='color: Gray;'> = </span><span style='color: Green;'>new</span><span style='color: Gray;'> </span><span style='color: Blue;'>Configuration</span><span style='color: Olive;'>()</span><span style='color: Gray;'>.</span><span style='color: Blue;'>configure</span><span style='color: Olive;'>()</span><span style='color: Gray;'>;<br/></span><span style='color: Blue;'>SessionFactory</span><span style='color: Gray;'> </span><span style='color: Blue;'>sessionFactory</span><span style='color: Gray;'> = </span><span style='color: Blue;'>config</span><span style='color: Gray;'>.</span><span style='color: Blue;'>buildSessionFactory</span><span style='color: Olive;'>()</span><span style='color: Gray;'>;<br/></span><span style='color: Blue;'>Session</span><span style='color: Gray;'> </span><span style='color: Blue;'>session</span><span style='color: Gray;'> = </span><span style='color: Blue;'>sessionFactory</span><span style='color: Gray;'>.</span><span style='color: Blue;'>openSession</span><span style='color: Olive;'>()</span><span style='color: Gray;'>;<br/></span><span style='color: Blue;'>Transaction</span><span style='color: Gray;'> </span><span style='color: Blue;'>tx</span><span style='color: Gray;'> = </span><span style='color: Blue;'>session</span><span style='color: Gray;'>.</span><span style='color: Blue;'>beginTransaction</span><span style='color: Olive;'>()</span><span style='color: Gray;'>;<br/></span><span style='color: Blue;'>Student</span><span style='color: Gray;'> </span><span style='color: Blue;'>stu</span><span style='color: Gray;'>=</span><span style='color: Green;'>new</span><span style='color: Gray;'> </span><span style='color: Blue;'>Student</span><span style='color: Olive;'>()</span><span style='color: Gray;'>;<br/></span><span style='color: #ffa500;'>//set value to stu</span><span style='color: Gray;'><br/></span><span style='color: Blue;'>session</span><span style='color: Gray;'>.</span><span style='color: Blue;'>save</span><span style='color: Olive;'>(</span><span style='color: Blue;'>stu</span><span style='color: Olive;'>)</span><span style='color: Gray;'>;<br/></span><span style='color: Blue;'>tx</span><span style='color: Gray;'>.</span><span style='color: Blue;'>commit</span><span style='color: Olive;'>()</span><span style='color: Gray;'>;<br/>…</span></div></div>
</li></ol>
<p><img src='http://www.jacken.com.cn/wp-content/uploads/2007/11/i-session.JPG' alt='I-Session'/></p><h3> Hibernate核心API</h3>
<p><img src='http://www.jacken.com.cn/wp-content/uploads/2007/11/hibernate-api.JPG' alt='Hibernate-api'/></p>
<ul><li><strong>Configuration类:</strong>用于配置和启动Hibernate,给Hibernate指定映射文件和Hibernate配置属性,然后创建SessionFactory实例.<img src='http://www.jacken.com.cn/wp-content/uploads/2007/11/configuration.JPG' alt='configuration'/></li><li><strong>SessionFactory接口:</strong>一个SessionFactory实例对应着一个存储源(同一个数据库的
连接),并可产生出Session对象.SessionFactory是线程安全的,可被多个应用线程共享.创建了SessionFactory应不轻易
销毁(它是重量级的,有很大的缓存),如果访问多个数据库应该对应着个数建立SessionFactory实例!(看图)<img src='http://www.jacken.com.cn/wp-content/uploads/2007/11/sessionfactory.JPG' alt='SessionFactory'/></li><li><strong>Session接口:</strong>称为持久化管理器,提供与持久化相关的操作,如添加,更新,删除,加载和查询对象.Session是轻量级线程,使用完应该要销毁.也不是线程安全的,避免多个线程共享同一个Session实例.</li><li><strong>Transaction接口:</strong>Transaction接口是Hibernate的数据库事务接口,对底层的事物接口进行封装(JDBC API,JTA,CORBA).</li><li><strong>Query和Criteria接口:</strong>这两个是Hibernate的查询接口.</li></ul><p> </p>

相关推荐

    Hibernate学习笔记整理

    Hibernate学习笔记整理 以下是 Hibernate 框架的详细知识点: Hibernate 介绍 Hibernate 是一个 ORM(Object-Relational Mapping)框架,用于将 Java 对象映射到数据库表中。它提供了一个简洁的方式来访问和操作...

    Hibernate学习笔记特别详细

    《Hibernate学习笔记特别详细》 Hibernate,作为一款开源的Object-Relational Mapping(ORM)框架,为Java开发者提供了强大的数据库操作支持。它简化了数据库访问的复杂性,使得开发人员可以像操作对象一样操作...

    hibernate 学习笔记精要

    hibernate 学习笔记精要hibernate 学习笔记精要hibernate 学习笔记精要hibernate 学习笔记精要

    hibernate学习笔记

    在本篇《Hibernate学习笔记》中,我们将深入探讨Hibernate这一流行的Java对象关系映射(ORM)框架。Hibernate允许开发者以面向对象的方式处理数据库操作,极大地简化了数据存取的复杂性。以下是一些关键知识点: 1....

    Hibernate 学习笔记(全套)

    这套笔记是我学习Hibernate,进行相关技术点训练时记录下来的,其中包括技术点说明与相关事例,拿出来与大家分享。

    Java相关课程系列笔记之十四Hibernate学习笔记

    【Java相关课程系列笔记之十四Hibernate学习笔记】 Hibernate是一个开源的对象关系映射(ORM)框架,它极大地简化了Java应用程序对数据库的操作。本笔记将详细阐述Hibernate的核心概念、使用方法和特性。 一、...

    Hibernate学习笔记和资料

    hibernate中一对一,一对多,多对多关系的配置,延迟加载,cascade,inverse hibernate查询方式概述,HQL查询,QBC查询,分页,结果集封装方式 ,高级查询 查询的优化,一级缓存,二级缓存,批量查询,注解方式

    Hibernate学习笔记与总结

    **Hibernate学习笔记与总结** Hibernate 是一款开源的对象关系映射(ORM)框架,它为Java开发者提供了一种在关系数据库上操作对象数据的便捷方式。本文将深入探讨Hibernate的核心概念、配置、实体类、映射文件、...

    马士兵hibernate学习笔记(原版)

    《马士兵Hibernate学习笔记》是一份深入浅出的教程,旨在帮助初学者掌握Hibernate这一流行的Java持久化框架。Hibernate是一个对象关系映射(ORM)工具,它允许开发者用面向对象的方式来操作数据库,从而减少了传统...

    hibernate API帮助文档 及hibernate学习笔记

    Hibernate是一款强大的Java持久...通过阅读这份“Hibernate API帮助文档”和“Hibernate学习笔记”,你将能够深入理解Hibernate的工作原理,掌握其API的使用,并能在实际项目中有效地利用Hibernate进行数据持久化操作。

    hibernate学习笔记文档

    ### Hibernate 学习笔记知识点概览 #### 一、Hibernate 概述 - **定义**:Hibernate 是一款开源的对象关系映射(ORM)框架,它实现了将 Java 应用程序中的对象模型映射到关系型数据库中的记录。通过 ORM 技术,...

    hibernate学习笔记第一天的源码

    hibernate学习笔记第一天的源码

    传智播客 汤阳光 Hibernate 学习笔记

    传智播客 汤阳光 Hibernate 学习笔记,非常详细的hibernate学习资料!

    hibernate学习笔记第二天的源码

    在深入探讨Hibernate学习笔记第二天的源码之前,我们先来理解一下Hibernate的核心概念。Hibernate是一个开源的对象关系映射(ORM)框架,它允许Java开发者将数据库操作转化为对象模型,大大简化了数据访问层的开发...

    马士兵java框架hibernate学习笔记

    以上是马士兵Java框架Hibernate学习笔记的主要知识点概览,涵盖了从基础配置到高级特性的一系列内容。对于初学者来说,这是一个很好的起点,可以帮助他们快速掌握Hibernate的核心概念和技术要点。

Global site tag (gtag.js) - Google Analytics