最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺析java程序中hibernate的應(yīng)用總結(jié)

 更新時(shí)間:2013年07月22日 11:12:47   作者:  
hibernate可以理解為是一個(gè)中間件它負(fù)責(zé)把java程序的sql語(yǔ)句接收過(guò)來(lái)發(fā)送到數(shù)據(jù)庫(kù),而數(shù)據(jù)庫(kù)返回來(lái)的信息hibernate接收之后直接生成一個(gè)對(duì)象傳給java

我們知道如果用java連接數(shù)據(jù)庫(kù),大量的SQL代碼,我們就想通過(guò)一種工具來(lái)操作數(shù)據(jù)庫(kù),
我們首先想到的就是JDBC,但是想更好的針對(duì)類的屬性進(jìn)行操作,我們會(huì)選擇Hibernate。

那么Hibernate 原理是什么呢?
hibernate可以理解為是一個(gè)中間件它負(fù)責(zé)把java程序的sql語(yǔ)句接收過(guò)來(lái)發(fā)送到數(shù)據(jù)庫(kù),
而數(shù)據(jù)庫(kù)返回來(lái)的信息hibernate接收之后直接生成一個(gè)對(duì)象傳給java。

一  首先我們先了解一下hibernate的工作7個(gè)流程:
1.讀取并解析配置文件  
2.創(chuàng)建SessionFactory
3.打開(kāi)Session
4.開(kāi)始一個(gè)事物
5.持久化操作
6.提交事務(wù)
7.關(guān)閉Session

二 接著我們要理解實(shí)體對(duì)象的生命周期是Hibernate 的三種狀態(tài)
瞬時(shí)狀態(tài)(Transient)
剛用new語(yǔ)句創(chuàng)建,還沒(méi)有被持久化,且不處于Session的緩存中
持久狀態(tài)(Persistent)
已經(jīng)被持久化,且加入到Session的緩存中
游離狀態(tài)(Detached)
已經(jīng)被持久化,但不再處于Session的緩存中

三  持久化和ORM也是Hibernate中需要理解的一部分。
持久化:數(shù)據(jù)模型(內(nèi)存)《--》存儲(chǔ)模型(持久化設(shè)備),在Java中說(shuō)持久化,通常指的是使用SQL將數(shù)據(jù)存儲(chǔ)在關(guān)系型數(shù)據(jù)庫(kù)中。
ORM是持久化的一種解決方案,主要是把對(duì)象模型和關(guān)系型數(shù)據(jù)庫(kù)關(guān)系模型映射起來(lái),并且使用元數(shù)據(jù)對(duì)這些映射進(jìn)行描述。

Hibernate中必須要搭建項(xiàng)目框架編寫hibernate配置文件、實(shí)體映射文件
創(chuàng)建項(xiàng)目并導(dǎo)入jar包
創(chuàng)建Hibernate配置文件  
用于配置數(shù)據(jù)庫(kù)連接
運(yùn)行時(shí)所需的各種屬性

默認(rèn)文件名為“hibernate.cfg.xml”
測(cè)試連接
使用Hibernate完成數(shù)據(jù)增刪改操作
1.創(chuàng)建實(shí)體類
2.創(chuàng)建和配置映射文件
3.主鍵映射
4.主鍵生成策略
5.在主配置文件中添加實(shí)體映射文件路徑
6.數(shù)據(jù)庫(kù)操作
7.單表增刪改查

四 Hibernate 支持兩種主要的查詢方式
(1)HQL(Hibernate Query Languge,Hibernate 查詢語(yǔ)言)
查詢
是一種面向?qū)ο蟮牟樵冋Z(yǔ)言,其中沒(méi)有表和字段的概念,只有類、對(duì)象和屬性的概念
HQL 是應(yīng)用較為廣泛的方式。

(2) Criteria 查詢
又稱為“對(duì)象查詢”,它用面向?qū)ο蟮姆绞綄?gòu)造查詢的過(guò)程做了封裝。

五 在運(yùn)用Hibernate時(shí),我們應(yīng)該注意一些事情
(1)Hibernate是如何延遲加載?
    1.Hibernate延遲加載實(shí)現(xiàn):a)實(shí)體對(duì)象 b)集合(Collection)
    2.Hibernate3提供了屬性的延遲加載功能
當(dāng)Hibernate在查詢數(shù)據(jù)的時(shí)候,數(shù)據(jù)并沒(méi)有存在與內(nèi)存中,當(dāng)程序真正對(duì)數(shù)據(jù)的操作時(shí),對(duì)象才存在與內(nèi)存中,就實(shí)現(xiàn)了延遲加載,他節(jié)省了服務(wù)器的內(nèi)存開(kāi)銷,從而提高了服務(wù)器的性能。

(2)說(shuō)下Hibernate的緩存機(jī)制
    1. 內(nèi)部緩存存在Hibernate中又叫一級(jí)緩存,屬于應(yīng)用事物級(jí)緩存
    2. 二級(jí)緩存: 
       a) 應(yīng)用及緩存 
       b) 分布式緩存 
   條件:數(shù)據(jù)不會(huì)被第三方修改、數(shù)據(jù)大小在可接受范圍、數(shù)據(jù)更新頻率低、同一數(shù)據(jù)被系統(tǒng)頻繁使用、
        非關(guān)鍵數(shù)據(jù) 
       c) 第三方緩存的實(shí)現(xiàn)

相關(guān)文章

  • 如何動(dòng)態(tài)替換Spring容器中的Bean

    如何動(dòng)態(tài)替換Spring容器中的Bean

    這篇文章主要介紹了如何動(dòng)態(tài)替換Spring容器中的Bean,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • 分析Java中ArrayList與LinkedList列表結(jié)構(gòu)的源碼

    分析Java中ArrayList與LinkedList列表結(jié)構(gòu)的源碼

    這篇文章主要介紹了Java中ArrayList與LinkedList列表結(jié)構(gòu)的源碼,文章最后對(duì)LinkedList和ArrayList以及Vector的特性有一個(gè)對(duì)比總結(jié),需要的朋友可以參考下
    2016-05-05
  • springboot整合mybatis中的問(wèn)題及出現(xiàn)的一些問(wèn)題小結(jié)

    springboot整合mybatis中的問(wèn)題及出現(xiàn)的一些問(wèn)題小結(jié)

    這篇文章主要介紹了springboot整合mybatis中的問(wèn)題及出現(xiàn)的一些問(wèn)題小結(jié),本文給出了解決方案,需要的朋友可以參考下
    2018-11-11
  • Spring MVC 關(guān)于controller的字符編碼問(wèn)題

    Spring MVC 關(guān)于controller的字符編碼問(wèn)題

    在使用springMVC框架構(gòu)建web應(yīng)用,客戶端常會(huì)請(qǐng)求字符串、整型、json等格式的數(shù)據(jù),通常使用@ResponseBody注解使 controller回應(yīng)相應(yīng)的數(shù)據(jù)而不是去渲染某個(gè)頁(yè)面。
    2017-03-03
  • 解析 MyBatis 中 Mapper 生效的來(lái)龍去脈

    解析 MyBatis 中 Mapper 生效的來(lái)龍去脈

    這篇文章主要介紹了解析 MyBatis 中 Mapper 生效的前因后果,介紹了mybatis基本使用及源碼分析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08
  • Java反射設(shè)置/獲取對(duì)象屬性值三種方式

    Java反射設(shè)置/獲取對(duì)象屬性值三種方式

    這篇文章主要給大家介紹了關(guān)于Java反射設(shè)置/獲取對(duì)象屬性值的三種方式,反射機(jī)制的用途非常多,比如獲取方法,屬性名和屬性值等,甚至可以獲取標(biāo)簽等標(biāo)簽屬性,需要的朋友可以參考下
    2023-11-11
  • 詳解Spring Data Jpa當(dāng)屬性為Null也更新的完美解決方案

    詳解Spring Data Jpa當(dāng)屬性為Null也更新的完美解決方案

    這篇文章主要介紹了詳解Spring Data Jpa當(dāng)屬性為Null也更新的完美解決方案,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-02-02
  • Java中檢查字符串是否以特定字符結(jié)尾

    Java中檢查字符串是否以特定字符結(jié)尾

    這篇文章主要介紹了Java中檢查字符串是否以特定字符結(jié)尾,文章圍繞主題展開(kāi)字符串匹配問(wèn)題,具有一定的參考價(jià)值需要的小伙伴可以參考一下
    2022-06-06
  • Spring Boot中@RequestParam參數(shù)的5種情況說(shuō)明

    Spring Boot中@RequestParam參數(shù)的5種情況說(shuō)明

    這篇文章主要介紹了Spring Boot中@RequestParam參數(shù)的5種情況說(shuō)明,具有很好的參考價(jià)值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • eclipse配置tomcat10的詳細(xì)步驟總結(jié)

    eclipse配置tomcat10的詳細(xì)步驟總結(jié)

    今天給大家?guī)?lái)的是關(guān)于Java的相關(guān)知識(shí),文章圍繞著eclipse配置tomcat10的詳細(xì)步驟展開(kāi),文中有非常詳細(xì)的介紹及圖文示例,需要的朋友可以參考下
    2021-06-06

最新評(píng)論

乌拉特中旗| 丰城市| 和林格尔县| 浪卡子县| 隆子县| 平定县| 民权县| 绥棱县| 札达县| 彰化县| 榕江县| 日照市| 东港市| 资中县| 南开区| 准格尔旗| 育儿| 英德市| 新民市| 馆陶县| 保康县| 夹江县| 安化县| 牟定县| 偏关县| 崇信县| 安图县| 万全县| 新河县| 诸城市| 新昌县| 广宗县| 淮北市| 康保县| 黑河市| 石景山区| 垦利县| 宣武区| 聂荣县| 太湖县| 桃源县|