国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

hibernate 配置數據庫方言的實(shí)現方法

發(fā)布時(shí)間:2021-07-06 11:13 來(lái)源:腳本之家 閱讀:0 作者:gz153016 欄目: 開(kāi)發(fā)技術(shù)

本文主要介紹了hibernate 配置數據方言的實(shí)現方法,分享給大家,具體如下:

在開(kāi)發(fā)hibernate的程序時(shí),需要進(jìn)行SessionFactory的配置,簡(jiǎn)單地說(shuō),也就是建立與數據庫之間連接的配置,在hibernate中一般使用xml文件來(lái)進(jìn)行配置,但是在該文件的配置中需要設置dialect方言屬性值,對于不同的數據庫,方言的值dialect是不同的,那么下面就列出在不同的數據庫中如何設置該dialect值(參見(jiàn)下表):    

我的第一個(gè)hibernate程序就是方言出的問(wèn)題:

MySQL with InnoDB org.hibernate.dialect.MySQLInnoDBDialect

MySQL                         org.hibernate.dialect.MySQLDialect

MySQLInnoDBDialect和MySQLMyISAMDialect的差別

(注:MySQLInnoDBDialect與MySQLMyISAMDialect繼承自MySQLDialect。)
       InnoDB和MyISAM是MySQL最重要的兩種數據存儲引擎,兩者都可用來(lái)存儲表和索引,各有優(yōu)缺點(diǎn),視具體應用而定。

基本的差別為:

MyISAM 類(lèi)型不支持事務(wù)處理等高級處理,而InnoDB類(lèi)型支持。

MyISAM類(lèi)型的表強調的是性能,其執行數度比InnoDB類(lèi)型更快,但是不提供事務(wù)支持,而 InnoDB提供事務(wù)支持以及外部鍵等高級數據庫功能。

InnoDB 給 MySQL 提供了具有事務(wù)(commit)、回滾(rollback)和崩潰修復能力(crash recovery capabilities)、多版本并發(fā)控制(multi-versioned concurrency control)的事務(wù)安全(transaction-safe (ACID compliant))型表。InnoDB 提供了行級鎖(locking on row level),提供與 Oracle 類(lèi)似的不加鎖讀取(non-locking read in SELECTs)。InnoDB鎖定在行級并且也在SELECT語(yǔ)句提供一個(gè)Oracle風(fēng)格一致的非鎖定讀。另外InnoDB是為處理巨大數據量時(shí)的最 大性能設計。它的CPU效率可能是任何其它基于磁盤(pán)的關(guān)系數據庫引擎所不能匹敵的。MySQLInnoDBDialect基于上也就有InnoDB相同的功能.

InnoDB存儲引擎被完全與MySQL服務(wù)器整合,InnoDB存儲引擎為在主內存中緩存數據和索引而維持它自己的緩沖池。 InnoDB存儲它的表&索引在一個(gè)表空間中,表空間可以包含數個(gè)文件(或原始磁盤(pán)分區)。這與MyISAM表不同,比如在MyISAM表中每個(gè)表被存在 分離的文件中。InnoDB 表可以是任何尺寸,即使在文件尺寸被限制為2GB的操作系統上。

InnoDB是事務(wù)安全的.它與BDB類(lèi)型具有相同的特性,它們還支持外鍵.InnoDB表格速度很快.具有比BDB還豐富的特性,因此如果需要一個(gè)事務(wù) 安全的存儲引擎,建議使用它.如果你的數據執行大量的INSERT或UPDATE,出于性能方面的考慮,應該使用InnoDB表。

在 上可以找到 InnoDB 最新的信息。InnoDB 手冊的最新版本總是被放置在那里,并且在那里可以得到 InnoDB 的商業(yè)許可(order commercial licenses)以及支持。

MyISAM是MySQL默認存儲引擎。每個(gè)MyISAM在磁盤(pán)上存儲成三個(gè)文件。第一個(gè)文件的名字以表的名字開(kāi)始,擴展名指出文件類(lèi)型。.frm文件存儲表定義。數據文件的擴展名為.MYD (MYData)。索引文件的擴展名是.MYI (MYIndex)。

MyISAM基于傳統的ISAM類(lèi)型,ISAM是Indexed Sequential Access Method (有索引的順序訪(fǎng)問(wèn)方法) 的縮寫(xiě),它是存儲記錄和文件的標準方法.與其他存儲引擎比較,MyISAM具有檢查和修復表格的大多數工具. MyISAM表格可以被壓縮,而且它們支持全文搜索.它們不是事務(wù)安全的,而且也不支持外鍵。如果事物回滾將造成不完全回滾,不具有原子性。如果執行大量 的SELECT,MyISAM是更好的選擇。

MyIASM是IASM表的新版本,有如下擴展:

  • 二進(jìn)制層次的可移植性。
  • NULL列索引。
  • 對變長(cháng)行比ISAM表有更少的碎片。
  • 支持大文件。
  • 更好的索引壓縮。
  • 更好的鍵碼統計分布。
  • 更好和更快的auto_increment處理。

下面是已知的兩者之間的差別,僅供參考。

1.InnoDB不支持FULLTEXT類(lèi)型的索引。
2.InnoDB 中不保存表的具體行數,也就是說(shuō),執行select count(*) from table時(shí),InnoDB要掃描一遍整個(gè)表來(lái)計算有多少行,但是MyISAM只要簡(jiǎn)單的讀出保存好的行數即可。注意的是,當count(*)語(yǔ)句包含 where條件時(shí),兩種表的操作是一樣的。
3.對于A(yíng)UTO_INCREMENT類(lèi)型的字段,InnoDB中必須包含只有該字段的索引,但是在MyISAM表中,可以和其他字段一起建立聯(lián)合索引。
4.DELETE FROM table時(shí),InnoDB不會(huì )重新建立表,而是一行一行的刪除。
5.LOAD TABLE FROM MASTER操作對InnoDB是不起作用的,解決方法是首先把InnoDB表改成MyISAM表,導入數據后再改成InnoDB表,但是對于使用的額外的InnoDB特性(例如外鍵)的表不適用。
另外,InnoDB表的行鎖也不是絕對的,如果在執行一個(gè)SQL語(yǔ)句時(shí)MySQL不能確定要掃描的范圍,InnoDB表同樣會(huì )鎖全表,例如update table set num=1 where name like “�a%”。
任何一種表都不是萬(wàn)能的,只用恰當的針對業(yè)務(wù)類(lèi)型來(lái)選擇合適的表類(lèi)型,才能最大的發(fā)揮MySQL的性能優(yōu)勢。

到此這篇關(guān)于hibernate 配置數據庫方言的實(shí)現方法的文章就介紹到這了,更多相關(guān)hibernate 配置數據庫方言?xún)热菡埶阉髂_本之家以前的文章或繼續瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自互聯(lián)網(wǎng)轉載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權請聯(lián)系QQ:712375056 進(jìn)行舉報,并提供相關(guān)證據,一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容。

国内免费久久久久久久久| AV无码久久久久不卡蜜桃| 性色AV一区二区三区夜夜嗨| 久久精品国产一区二区三| 凹凸国产熟女精品视频| 亚洲VA久久久噜噜噜久久狠狠|