hibernate為什麼要有方言?hql是什麼

2022-03-05 12:14:42 字數 1309 閱讀 7968

1樓:

hibernate相當於封住了一次jdbc,使hibernate不用考慮你是用的什麼資料庫,他的hql語句都可以根據你不同資料庫的方言編譯成相對應的資料庫sql語句,這是hibernate的一大優勢,但是因為他的hql語句都要經過編譯才能成對應資料庫可以執行的語句,所以用它做持久層他比ibatis稍慢。

2樓:

其實每家公司的資料庫產品都只有不超過80%的符合標準sql。

例如oracle的pl/sql就根本跟通常的sql相去甚遠。

而且每種產品的jdbc驅動也不相同,所以需要定義方言。

3樓:社伶晨

首先資料庫都是支援sql的,不過不同的資料庫會存在一些語法上面的差異,而方言則是解決hql翻譯成sql保證語法的正確。

hql則是基於物件的查詢語言,hibernate會結合物件的配置檔案以及方言,將寫的hql翻譯成sql。

至於為什麼要這麼做,假如系統需要資料庫的變換時,那麼用hibernate的話就只需要改一改配置檔案(修改連線字串、驅動類、方言等),而用傳統的jdbc時,那麼sql語言可能就要有很多改動,基本就是dao層重寫一遍吧。

4樓:長沙匯德教育諮詢****

hibernate中,方言是解決hql翻譯成sql保證語法的正確,首先資料庫都是支援sql的,不同的資料庫會存在一些語法上面的差異。

hql則是基於物件的查詢語言,當系統需要資料庫的變換時,那麼用hibernate的話就只需要改一改配置檔案(修改連線字串、驅動類、方言等),而用傳統的jdbc時,那麼sql語言可能就要有很多改動。

hibernate sql 跟方言有關嗎

5樓:匿名使用者

hibernate中,方言是解決hql翻譯成sql保證語法的正確,首先資料庫都是支援sql的,不同的資料庫會存在一些語法上面的差異。

hql則是基於物件的查詢語言,當系統需要資料庫的變換時,那麼用hibernate的話就只需要改一改配置檔案(修改連線字串、驅動類、方言等),而用傳統的jdbc時,那麼sql語言可能就要有很多改動。

hibernate.dialect是幹嘛用的?

6樓:炫麗一生

dialect 指明hibernate連線的資料庫方言 不同的資料庫 方言在hibernate中是不一樣的 連線資料庫時必須對應的方言連線對應的資料庫

7樓:

說白了,就是告訴hibernate,將你寫的那些hql、qbc、、、、等等。翻譯成哪種資料庫的sql

什麼是Hibernate延時載入

當實體中存在另一個實體物件的時候,延遲載入決定了抓取方式,當為lazy載入時,在一個session中,如果不訪問實體中的實體物件屬性,hibernate就不會級聯查詢內部實體,當為eager的時候,hibernate會在查詢實體的時候,級聯查詢實體內部的其他實體物件 我不知道應該用什麼簡單的話告訴你...

現在hibernate用什麼版本?

現在用的基本上都是hibernate3,也有用hibernate4的。現在基本上好多都用的是3 至於怎麼版本最好 看你的熟練程度了。你知道版本又怎麼樣,要是你單獨用還無所謂,要是和其它的一起用還是要看看其它的外掛版本是否相容。為什麼很多人不願意用hibernate了 因為人都怕幫助別人自己卻受到虧損...

為什麼飛機進氣口有圓有方

噴氣飛機的發動機進氣口形狀不一,有圓的 扁扁的 矩形的 楔形的等等,這是為了適應飛機總體設計 發動機效能和飛行用途的需要。為什麼飛機進氣口有圓有方?噴氣飛機的發動機進氣口形狀不一,有圓的 扁扁的 矩形的 楔形的等等,這是為了適應飛機總體設計 發動機效能和飛行用途的需要。噴氣發動機是靠空氣和燃氣做功來...