@Entity 注解將一個類聲明為實體 Bean, @Id 注解聲明了該實體Bean的標識屬性。Hibernate 可以對類的屬性或者方法進行注解。屬性對應field類別,方法的 getXxx()對應property類別。
持久化是在應用程序開發中最基本的概念之一,一般是指利用SQL在關系數據庫中存儲數據(p3). 數據比任何應用程序存在的都長久。 (Hibernate的Session,除了查詢以外,其他都必須要在事務中執行。)
iBATIS是以SQL為中心的持久化層框架。能支持懶加載、關聯查詢、繼承等特性。iBATIS不同于一般的OR映射框架。OR映射框架,將數據庫表、字段等映射到類、屬性,那是一種元數據(meta-data)映射。iBATIS則是將SQL查詢的參數和結果集映射到類。<br> 它把SQL語句看成輸入以及輸出,結果集就是輸出,而where后面的條件參數則是輸入。iBATIS能將輸入的普通POJO對象、Map、XML等映射到SQL的條件參數上,同時也可以將查詢結果映射到普通POJO對象(集合)、Map、XML等上面。
Hibernate(實際上是整個 Object/Relational Mapping)的一個賣點是數據庫的移植性。這意味著內部的 IT 用戶可以改變數據庫供應商,或者可部署的應用程序/框架使用 Hibernate 來同時使用多個數據庫產品。不考慮具體的應用情景,這里的基本概念是 Hibernate 可幫助你運行多種數據庫而無需修改你的代碼,理想情況下甚至不用修改映射元數據。
相信大家已經對Myeclipse做javaweb項目的步驟熟讀于耳,那么你有沒有對那些繁瑣的步驟感到很糾結,好吧,現在讓我來告訴你,利用Myeclipse做JavaWeb項目其實有兩種方式,第一種是”正向”方式,也就是我們傳統的方式,第二種,就是“反向”方式,簡單的說,就是有數據庫向實體映射。
在hibernate中的增刪改查的實現。hibernate是OR框架,也就是對象關系框架,有了 hibernate我們就不用再去寫SQL語言,我們只需要操縱對象去進行增刪改查。這里今天寫的就是在如何應用hibernate實現增刪改查
MyBatis 是支持普通 SQL查詢,存儲過程等一個輕量級的ORM中間件 。MyBatis 使用簡單的 XML 或注解方式,用于配置和原始映射,將接口和 Java 的POJOs(Plan Old Java Objects,普通的 Java對象)映射成數據庫中的記錄。
分銷平臺系統管控的1000多家門店,每天產生200W條以上數據,一年在10億條數據以上,系統需要對這些數據進行收集,存儲,加工歸集等。這樣關聯數據量將達到100億。
Hibernate實體關系:雙向關聯
現在流行的對JPA支持的O/R映射工具包括TopLink、Hibernate、OpenJPA和EclipseLink,本書以TopLink為例進行介紹。
相關概念持久操作如果不想讓程序運行過程中的信息丟失,就必須想辦法保存這些信息。這些信息可以存儲在文件中,也可以存儲在數據庫中;把程序中的狀態信息進行保存供以后使用,稱為持久化。把程序中的信息存儲到文件中的方式通常適用于信息量比較少的情況,可以直接通過文件操作來完成。如果存儲在XML文件中,也可以通過對XML文件進行操作的相關接口來實現。
JPA(Java Persistence API)是Sun官方提出的Java持久化規范。它為Java開發人員提供了一種對象/關系映射工具來管理Java應用中的關系數據。他的出現主要是為了簡化現有的持久化開發工作和整合ORM技術,結束現在Hibernate、TopLink等ORM框架各自為營的局面。值得注意的是,JPA是在充分吸收了現有Hibernate、TopLink等ORM框架的基礎上發展而來的,具有易于使用、伸縮性強等優點。從目前的開發社區的反應上看,JPA受到了極大的支持和贊揚,其中就包括了Spring與EJB3.0的開發團隊。著眼未來幾年的技術走向,JPA作為ORM領域標準化整合者的目標應該不難實現。
注意:在使用的時候要保證有相應的構造方法。30.3具有簡單查詢條件的查詢30.3.1查詢條件中的常量字符串常量使用單引號括起來:‘Duke’。如果字符串常量包含了單引號,使用兩個單引號表示一個單引號:'Duke''s'。數字符號:精確的和大約的,例如30,30.3邏輯符號是TRUE或者FALSE,不區分大小寫。例1:查詢男用戶。
Hibernate緩存機制對Hibernate的性能發揮一直處于一個極其重要的作用,它是持久層性能提升的關鍵。Hibernate緩存介于Hibernate應用和數據庫之間,緩存中存放了數據庫數據的拷貝。 其作用是減少訪問數據庫的頻率,從而提高應用的運行性能。
在每一個具體項目中都有大量對數據庫表的操作,例如對某個表的增加、修改、刪除等。這樣的操作對系統所有的表幾乎都有要求。而無論采用那一種后臺處理方式(ENTITY BEANS、JDO、DAO),都會有很大的重復性勞動。另外一個常用功能是,需要為每張表寫很多查詢(根據不同的參數)。ENTITY BEANS(CMP)可能在這兩個方面做的很好,但是他是以犧牲系統資源和降低系統性能為代價換來的。
使用@OneToOne注解建立實體Bean之間的一對一關聯。一對一關聯有三種情況:(1).關聯的實體都共享同樣的主鍵,(2).其中一個實體通過外鍵關聯到另一個實體的主鍵(注意要模擬一對一關聯必須在外鍵列上添加唯一約束),(3).通過關聯表來保存兩個實體之間的連接關系(要模擬一對一關聯必須在每一個外鍵上添加唯一約束)。
本章介紹了Hibernate的幾種主要檢索方式:HQL檢索方式、QBC檢索方式、SQL檢索方式。HQL是Hibernate Query Language的縮寫,是官方推薦的查詢語言。QBC是Query By Criteria的縮寫,是Hibernate提供的一個查詢接口。Hibernate是一個輕量級的框架,它允許使用原始SQL語句查詢數據庫。<br> HQL是Hiberante官方推薦的Hibernate檢索方式,它使用類似SQL的查詢語言,以面向對象的方式從數據庫中查詢。可以使用HQL查詢具有繼承、多態和關聯關系的數據。在檢索數據時應優先考慮使用HQL方式。
Hibernate學習筆記
什么是對象的持久化<br> ORM的機制和原理<br> 為什么要使用IBatis?<br> SQLMap的原理<br> IBatis對于數據庫的操作
模型不匹配(阻抗不匹配) Java面向對象語言,對象模型,其主要概念有:繼承、關聯、多態等;數據庫是關系模型,其主要概念有:表、主鍵、外鍵等。 解決辦法 1使用JDBC手工轉換。 2使用ORM(Object Relation Mapping對象關系映射)框架來解決,主流的ORM框架有Hibernate、TopLink、OJB。