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

淺析java程序中hibernate的應用總結

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

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

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

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

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

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

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

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

四 Hibernate 支持兩種主要的查詢方式
(1)HQL(Hibernate Query Languge,Hibernate 查詢語言)
查詢
是一種面向對象的查詢語言,其中沒有表和字段的概念,只有類、對象和屬性的概念
HQL 是應用較為廣泛的方式。

(2) Criteria 查詢
又稱為“對象查詢”,它用面向對象的方式將構造查詢的過程做了封裝。

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

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

相關文章

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

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

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

    分析Java中ArrayList與LinkedList列表結構的源碼

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

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

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

    Spring MVC 關于controller的字符編碼問題

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

    解析 MyBatis 中 Mapper 生效的來龍去脈

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

    Java反射設置/獲取對象屬性值三種方式

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

    詳解Spring Data Jpa當屬性為Null也更新的完美解決方案

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

    Java中檢查字符串是否以特定字符結尾

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

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

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

    eclipse配置tomcat10的詳細步驟總結

    今天給大家?guī)淼氖顷P于Java的相關知識,文章圍繞著eclipse配置tomcat10的詳細步驟展開,文中有非常詳細的介紹及圖文示例,需要的朋友可以參考下
    2021-06-06

最新評論

抚松县| 宝鸡市| 花垣县| 韩城市| 汝阳县| 买车| 岚皋县| 田林县| 奉贤区| 东城区| 温泉县| 东辽县| 仁寿县| 长治县| 从化市| 中卫市| 蓝山县| 乌苏市| 土默特左旗| 天镇县| 漯河市| 石柱| 九江县| 和静县| 平遥县| 珲春市| 江津市| 建水县| 镇安县| 会宁县| 公主岭市| 广饶县| 慈利县| 屏东县| 怀安县| 焉耆| 马边| 庄河市| 乌海市| 襄汾县| 宽甸|