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

hibernate 配置數(shù)據(jù)庫方言的實(shí)現(xiàn)方法

 更新時(shí)間:2021年05月10日 16:04:41   作者:gz153016  
這篇文章主要介紹了hibernate 配置數(shù)據(jù)庫方言的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

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

RDBMS 方言
DB2 org.hibernate.dialect.DB2Dialect
DB2 AS/400 org.hibernate.dialect.DB2400Dialect
DB2 OS390 org.hibernate.dialect.DB2390Dialect
PostgreSQL org.hibernate.dialect.PostgreSQLDialect
MySQL org.hibernate.dialect.MySQLDialect
MySQL with InnoDB org.hibernate.dialect.MySQLInnoDBDialect
MySQL with MyISAM org.hibernate.dialect.MySQLMyISAMDialect
Oracle (any version) org.hibernate.dialect.OracleDialect
Oracle 9i/10g org.hibernate.dialect.Oracle9Dialect
Sybase org.hibernate.dialect.SybaseDialect
Sybase Anywhere org.hibernate.dialect.SybaseAnywhereDialect
Microsoft SQL Server org.hibernate.dialect.SQLServerDialect
SAP DB org.hibernate.dialect.SAPDBDialect
Informix org.hibernate.dialect.InformixDialect
HypersonicSQL org.hibernate.dialect.HSQLDialect
Ingres org.hibernate.dialect.IngresDialect
Progress org.hibernate.dialect.ProgressDialect
Mckoi SQL org.hibernate.dialect.MckoiDialect
Interbase org.hibernate.dialect.InterbaseDialect
Pointbase org.hibernate.dialect.PointbaseDialect
FrontBase org.hibernate.dialect.FrontbaseDialect
Firebird org.hibernate.dialect.FirebirdDialect

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

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

MySQL with InnoDB org.hibernate.dialect.MySQLInnoDBDialect

MySQL                         org.hibernate.dialect.MySQLDialect

MySQLInnoDBDialect和MySQLMyISAMDialect的差別

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

基本的差別為:

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

MyISAM類型的表強(qiáng)調(diào)的是性能,其執(zhí)行數(shù)度比InnoDB類型更快,但是不提供事務(wù)支持,而 InnoDB提供事務(wù)支持以及外部鍵等高級(jí)數(shù)據(jù)庫功能。

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

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

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

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

MyISAM是MySQL默認(rèn)存儲(chǔ)引擎。每個(gè)MyISAM在磁盤上存儲(chǔ)成三個(gè)文件。第一個(gè)文件的名字以表的名字開始,擴(kuò)展名指出文件類型。.frm文件存儲(chǔ)表定義。數(shù)據(jù)文件的擴(kuò)展名為.MYD (MYData)。索引文件的擴(kuò)展名是.MYI (MYIndex)。

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

MyIASM是IASM表的新版本,有如下擴(kuò)展:

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

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

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

到此這篇關(guān)于hibernate 配置數(shù)據(jù)庫方言的實(shí)現(xiàn)方法的文章就介紹到這了,更多相關(guān)hibernate 配置數(shù)據(jù)庫方言內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

化州市| 湄潭县| 新昌县| 托里县| 阳信县| 慈溪市| 田东县| 永善县| 新源县| 定南县| 岳阳市| 花垣县| 贡觉县| 赤水市| 萨迦县| 元阳县| 武威市| 皮山县| 温泉县| 安西县| 邛崃市| 彭州市| 扶余县| 瓦房店市| 高要市| 定襄县| 南开区| 深水埗区| 固原市| 赫章县| 昌乐县| 故城县| 靖边县| 乳山市| 彰化市| 繁昌县| 温宿县| 扎鲁特旗| 安新县| 涟源市| 奉化市|