您好,歡迎來(lái)到賦能網(wǎng)!

Java培訓(xùn)了解下什么是Hibernate

賦能網(wǎng) 2023-05-10 64


       Hibernate ORM 或 Hibernate 是用于 java 開(kāi)發(fā)的免費(fèi)、開(kāi)源、對(duì)象關(guān)系映射工具(或 ORM 工具)。 它提供了一個(gè)將面向?qū)ο竽P陀成涞疥P(guān)系數(shù)據(jù)庫(kù)的框架。Hibernate 允許開(kāi)發(fā)人員構(gòu)造 Java 對(duì)象,然后定義這些對(duì)象之間的關(guān)系。 然后它將這些對(duì)象轉(zhuǎn)換為數(shù)據(jù)庫(kù)模式,并最終轉(zhuǎn)換為 SQL 查詢(xún)。 生成的 SQL 查詢(xún)是底層數(shù)據(jù)庫(kù)的原生查詢(xún)。

為什么 Java Hibernate 如此受歡迎?
       Java Hibernate ORM 被如此廣泛采用有四個(gè)主要原因:
       1、接口不兼容的數(shù)據(jù)庫(kù) - 在紙面上,對(duì)象關(guān)系映射是一個(gè)非常好的主意。它有助于解決連接其他不兼容數(shù)據(jù)庫(kù)的內(nèi)在問(wèn)題。 Java Hibernate 作為一種 ORM 工具,有助于彌合不兼容數(shù)據(jù)庫(kù)之間的差距。
       2、自動(dòng) SQL 查詢(xún)生成 - 人們普遍認(rèn)為開(kāi)發(fā)人員不需要了解如何編寫(xiě) SQL 查詢(xún)。因?yàn)?Hibernate 自動(dòng)化了 SQL 查詢(xún)編寫(xiě)過(guò)程,它有助于分離開(kāi)發(fā)人員和數(shù)據(jù)庫(kù)管理員的角色。
       3、幫助應(yīng)用程序保持與持久性引擎無(wú)關(guān) - 務(wù)實(shí)地說(shuō),應(yīng)用程序應(yīng)該與持久性引擎無(wú)關(guān)。 使用哪個(gè)數(shù)據(jù)庫(kù)并不重要——Hibernate 提供了一種方法來(lái)適應(yīng)它。
       4、SQL Injection Resistant - Hibernate 為 SQL 查詢(xún)提供了一種更安全的替代方案——ORM 限制了 SQL 注入的風(fēng)險(xiǎn)。
對(duì) Java Hibernate 性能問(wèn)題進(jìn)行故障排除
       Hibernate 通常是有問(wèn)題的,并且傾向于生成低效的查詢(xún)和非標(biāo)準(zhǔn)的數(shù)據(jù)關(guān)系。這兩個(gè)問(wèn)題可能會(huì)導(dǎo)致各種其他性能問(wèn)題,我們將在下面詳細(xì)說(shuō)明。
非標(biāo)準(zhǔn)數(shù)據(jù)關(guān)系
       Hibernate為了關(guān)聯(lián)兩組數(shù)據(jù),創(chuàng)建了一個(gè)外鍵關(guān)系表。對(duì)這些數(shù)據(jù)集的最終請(qǐng)求通常會(huì)變得不必要地復(fù)雜。為了提高這些非標(biāo)準(zhǔn)數(shù)據(jù)關(guān)系及其查詢(xún)的性能,開(kāi)發(fā)人員可能必須在考慮到特定數(shù)據(jù)庫(kù)的情況下編寫(xiě)變通方案——這可能會(huì)首先破壞使用 Hibernate 的全部意義。也許最重要的是,通過(guò)依賴(lài)開(kāi)發(fā)人員來(lái)簡(jiǎn)化或更改這些操作,然后要求開(kāi)發(fā)人員更好地處理留給數(shù)據(jù)庫(kù)管理員或數(shù)據(jù)科學(xué)家的問(wèn)題。
低效查詢(xún)
       在查詢(xún)方面,Hibernate 可能很笨拙。 它可以在各種情況下創(chuàng)建低效和過(guò)多的查詢(xún)——通常是默認(rèn)情況下。例如,開(kāi)發(fā)人員可能會(huì)在大學(xué)數(shù)據(jù)庫(kù)中編寫(xiě)一個(gè)查詢(xún),允許用戶(hù)查看學(xué)生是否注冊(cè)了特定課程。 理想的查詢(xún)將只查看與該學(xué)生的課程相關(guān)的課程,但 Hibernate 可能會(huì)選擇查詢(xún)完整的班級(jí)表數(shù)據(jù),而不是只查詢(xún)適用的數(shù)據(jù)。與僅訪(fǎng)問(wèn)必要數(shù)據(jù)的查詢(xún)相比,此查詢(xún)?yōu)榇笮蛿?shù)據(jù)集提供了更長(zhǎng)的請(qǐng)求時(shí)間。

  想了解更多相關(guān)資訊請(qǐng)關(guān)注java培訓(xùn)頻道-查看更多,了解相關(guān)專(zhuān)業(yè)課程信息您可在線(xiàn)咨詢(xún)也可免費(fèi)申請(qǐng)?jiān)囌n。關(guān)注賦能網(wǎng)了解更多:4008-569-579

本文鏈接:

本文章“Java培訓(xùn)了解下什么是Hibernate”已幫助 64 人

免責(zé)聲明:本信息由用戶(hù)發(fā)布,本站不承擔(dān)本信息引起的任何交易及知識(shí)產(chǎn)權(quán)侵權(quán)的法律責(zé)任!

本文由賦能網(wǎng) 整理發(fā)布。了解更多培訓(xùn)機(jī)構(gòu)》培訓(xùn)課程》學(xué)習(xí)資訊》課程優(yōu)惠》課程開(kāi)班》學(xué)校地址等機(jī)構(gòu)信息,可以留下您的聯(lián)系方式,讓課程老師跟你詳細(xì)解答:
咨詢(xún)熱線(xiàn):4008-569-579

如果本頁(yè)不是您要找的課程,您也可以百度查找一下: