Hibernate 3 入門

台湾 良葛格  ,比较详细,按照开发步骤讲解的Hibernate学习资料,个人觉得比那本中文版的Hibernate参考手册要有可操作性的多。地址:http://www.javaworld.com.tw/confluence/pages/viewpage.action?pageId=3077

内容一览:

Hibernate 是「物件/關係對應」(Object/Relational Mapping)的解決方案,簡寫為ORM,簡單的說就是將 Java 中的物件與物件關係,映射至關聯式資料庫中的表格與表格之間的關係, Hibernate 提供了這個過程中自動對應轉換的方案。

2001年未 Hibernate 第一個版本發表,2003年6月8日 Hibernate 2 發表,並於年未獲得 Jolt 2004 大獎,後被 JBOSS 收納而成為其子項目之一,2005年3月 Hibernate 3 正式發表,當中有了一些重大的改變,這份文件將以之前 Hibernate 2 時撰寫的 文件 為基礎,針對 Hibernate 3作重新整理的動作,所使用的版本為Hibernate 3.0。

基礎入門
從一個最基本的物件關係映射自動化程式,瞭解 Hibernate 組成的基本元素,並進一步瞭解 Hibernate 的基礎語義、配置等概念。

  • O/R 映射入門
    第一個 Hibernate 程式很簡單,將一個物件映射至一個資料表。

    • 配置 Hibernate
    • 第一個 Hibernate
    • 第二個 Hibernate
  • 基本配置
    瞭解一下配置文件、映射文件中各種元素的意義,在進入物件關係映射的學習之前,這是必備的基本功夫。

    • 配置文件
    • 資料庫連結
    • 簡介快取(Session Level)
    • 簡介事務管理(基於 JDBC )
    • 映射文件
  • 基本 API
    瞭解一下 Hibernate 常使用的幾個類別之基本使用方式。

    • Session
    • Session 管理
    • Criteria 基本查詢
    • Criteria 進階查詢
    • DetchedCriteria
    • Query
  • HQL(Hibernate Query Language)
    這是 Hibernate 官方所推薦的查詢語言,接近 SQL 的語法,並提供更多的特性與封裝。

    • 基本查詢
    • where、group by、order by 子句
    • 更新、刪除
  • SQL 支援
    Hibernate 提供了對 SQL 的支援,並可以自行定義持久化方式。

    • 建立 SQL 查詢
    • 自定義 insert、update、delete
  • 映射基礎議題
    一邊是物件,一邊是資料表格,兩者在映射時有一些過渡的基礎議題必須瞭解。

    • 實體物件生命週期
    • 資料識別(Data Identity)

物件關聯映射(Object/Relational Mapping, ORM)
學習 Hibernate,大部份的時間都在瞭解如何實現映射,而從中您也可以瞭解到不少關聯式資料庫的表格設計方式。

  • 實體映射
    來看看一些進階的實體映射議題。

    • 複合主鍵(一)
    • 複合主鍵(二)
    • Blob、Clob
    • Component
    • 動態模型(Dynamic Model)
  • 繼承映射
    在物件導向設計中,繼承關係是很常見的,但繼承與關聯式資料庫有著先天上的差異,繼承關係至表格的設計上有三種方式。

    • 繼承 - Table per concrete class
    • 繼承 - Table per class hierarchy
    • 繼承 - Table per subclass
  • 容器映射
    容器常用來儲存物件,這邊來瞭解一下如何將容器的關係映射至表格。

    • Set
    • List
    • Map
    • Bag
    • 內含 Component 的容器
    • 容器的排序
    • 容器的延遲初始(Lazy Initialization)
  • 關係映射
    來看看實體與實體之間的多對一、一對多、一對一、多對多如何與Java物件之間進行映射。

    • 多對一
    • cascade 的意義
    • 一對多
    • 雙向關聯(inverse 的意義)
    • 一對一(唯一外鍵關聯)
    • 一對一(主鍵關聯)
    • 多對多

進階特性
有關於Hibernate的快取、事務等進階特性的探討。

  • 快取
    二級快取可以跨越 Session 生命週期,Hibernate 透過第三方來實現二級快取,這邊也來看看 Query 的快取。

    • 二級快取(Second-level)
    • Query 快取
    • Query.list、iterator
  • Locking
    Hibernate 透過兩種 Locking 機制來保證資料在操作過程中不會被干擾。

    • 悲觀鎖定(Pessimistic Locking)
    • 樂觀鎖定(Optimistic Locking)
  • Validatable、Lifecycle、Interceptor
    分別透過這三個介面,來進行資料驗證、於 CRUD(Create Retrieve Update Delete)作對應動作、欄截動作。

    • Lifecycle 介面、Validatable 介面
    • Interceptor 介面

工具
透過一些工具來自動生成映射文件或資料庫表格。

  • 從映射文件生成資料表
  • 從資料表生成映射文件

转载于:https://www.cnblogs.com/gaomeibin/archive/2012/11/20/2778333.html

Hibernate 3 入門相关推荐

  1. Delphi APP 開發入門(五)GPS 定位功能

    Delphi APP 開發入門(五)GPS 定位功能 分享: Share on facebookShare on twitterShare on google_plusone_share 閲讀次數:3 ...

  2. COBOL 学习笔记 之 入門篇(续集)

    书接上一回(COBOL 学习笔记 之 入門篇 ) 从程序可以看到,COBOL程序分为四部分: IDENTIFICATION DIVISION.  ENVIRONMENT    DIVISION.  D ...

  3. mysql2012更改表名_T-SQL入門攻略之13-修改数据表

    --> Title  : T-SQL入門攻略之13-修改数据表 --> Author : wufeng4552 --> Date   : 2010-07-12 修改表名与字段名-sp ...

  4. (原創) Verilog入門書推薦2:數位系統實習 Quartus II (SOC) (Verilog)

    Abstract 之前曾經推薦過一本Verilog的薄書,這次再推薦一本適合FPGA與Quartus II的Verilog入門書籍. Intrduction 作者:陸自強 出版社:儒林圖書公司 語言: ...

  5. 從零開始學 ReactJS:最完整的 React 生態系入門教程

    转自:https://github.com/kdchang/reactjs101 從零開始學 ReactJS(ReactJS 101)是一本希望讓初學者一看就懂的 ReactJS 中文入門教學書,由淺 ...

  6. Proxool - 快速入門

    在資料庫應用程式中,資料庫連線的取得是一個耗費時間的動作,為了避免花費時間在連線的取得與關閉上,我們會將連線資源放置在一個池中,有需要連線時就從池中取得,不需要連線時就將之放回池中,以求重複利用連線, ...

  7. (轉貼) LCD入門常識

    Abstract一些TFT-LCD的入門常識,雖然有些過時,對於選購LCD時,應該還是有幫助. Introduction LCD 相關知識 顯示器這種東西是比較級的,在某一家店看完一款顯示器,過條馬路 ...

  8. python自动化交易_用Python寫自動交易程式的入門平台: Quantopian

    很多會寫程式的人開始踏入投資或金融市場後,都會有種想要寫程式來自動進行交易的衝動,但大多是不知道從何入門而不了了之.最近有個新平台Quantopian大大簡化了開發交易策略的難度.Quantopian ...

  9. 潭州python学院12306案例_人工智慧時代來臨,潭州教育開設Python課程帶學員入門機器學習...

    當今時代,隨著人工智慧科技的飛速發展,人工智慧逐漸深入社會生活生産的方方面面.根據<2019中國人工智慧發展報告>相關數據顯示,人工智慧行業的融資規模呈上升趨勢.在當紅的人工智慧領域,機器 ...

最新文章

  1. java shape_Java 读取shape文件
  2. 《HTML5与CSS3实例教程》
  3. 的微波感知_微波遥感的特点
  4. oracle 根据spid查sql,探讨:Oracle数据库查看一个进程是如何执行相关的实际SQL语句...
  5. gin c.Next()方法
  6. Win10系统下面的TR1008解决方案
  7. CSS:输入框input光标距离输入框左边间距设置
  8. asp.net园林绿化服务交易网站(三层架构)案例
  9. nacos配置中心提示com.alibaba.nacos.shaded.io.grpc.StatusRuntimeException: UNAVAILABLE: io exceptio
  10. CC00255.CloudKubernetes——|KuberNetes中间件容器化及helm.V02|——|中间件.v02|redis.v5.0.4|ratel方式部署|
  11. Python---统计《三国演义》中出现次数较高的人物
  12. 掌门人共话根技术 | 麒麟信安高级副总裁陈松政参加2022长沙·中国1024程序员节“岳麓对话”
  13. 四个人三人真一人假c语言,C语言程序设计第4章选择结构.pptx-资源下载在线文库www.lddoc.cn...
  14. Ubuntu Cleaner清理工具
  15. WSL:win10不用虚拟机、xshell也能运行Linux文件的解决方案
  16. Python安装教程(3.8)
  17. BERTopic:NLP主题模型的未来!
  18. 怎么理解PCB阻焊开窗?
  19. 路由器/交换机工作原理(RIP/OSPF协议工作原理)
  20. 场景理解的统一感知分析ECCV2018

热门文章

  1. 浅析网站开发的未来前景如何?
  2. 浅析企业网站建设的基本费用组成
  3. 网站优化之交换友情链接应注意什么?
  4. 蓝牙怎么实现传输的_不知道手机蓝牙有啥用?1分钟带你了解蓝牙这6种用法!涨知识啦...
  5. Wireshark:Usage in Ubuntu 18.04 distribution
  6. Rust语言——无虚拟机、无垃圾收集器、无运行时、无空指针/野指针/内存越界/缓冲区溢出/段错误、无数据竞争...
  7. tensorBoard 初级实现
  8. itertools库 combinations() 和 permutations() 组合 和 排列选项的方法
  9. python2.7.13环境搭建
  10. 实验三——for 语句及分支结构else-if