中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

hibernate如何配置數據庫方言

發布時間:2021-05-11 09:19:42 來源:億速云 閱讀:363 作者:小新 欄目:開發技術

這篇文章將為大家詳細講解有關hibernate如何配置數據庫方言,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

hibernate 配置數據庫方言的實現方法,具體如下:

RDBMS方言
DB2org.hibernate.dialect.DB2Dialect
DB2 AS/400org.hibernate.dialect.DB2400Dialect
DB2 OS390org.hibernate.dialect.DB2390Dialect
PostgreSQLorg.hibernate.dialect.PostgreSQLDialect
MySQLorg.hibernate.dialect.MySQLDialect
MySQL with InnoDBorg.hibernate.dialect.MySQLInnoDBDialect
MySQL with MyISAMorg.hibernate.dialect.MySQLMyISAMDialect
Oracle (any version)org.hibernate.dialect.OracleDialect
Oracle 9i/10gorg.hibernate.dialect.Oracle9Dialect
Sybaseorg.hibernate.dialect.SybaseDialect
Sybase Anywhereorg.hibernate.dialect.SybaseAnywhereDialect
Microsoft SQL Serverorg.hibernate.dialect.SQLServerDialect
SAP DBorg.hibernate.dialect.SAPDBDialect
Informixorg.hibernate.dialect.InformixDialect
HypersonicSQLorg.hibernate.dialect.HSQLDialect
Ingresorg.hibernate.dialect.IngresDialect
Progressorg.hibernate.dialect.ProgressDialect
Mckoi SQLorg.hibernate.dialect.MckoiDialect
Interbaseorg.hibernate.dialect.InterbaseDialect
Pointbaseorg.hibernate.dialect.PointbaseDialect
FrontBaseorg.hibernate.dialect.FrontbaseDialect
Firebirdorg.hibernate.dialect.FirebirdDialect

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

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

MySQL with InnoDB org.hibernate.dialect.MySQLInnoDBDialect

MySQL                         org.hibernate.dialect.MySQLDialect

MySQLInnoDBDialect和MySQLMyISAMDialect的差別

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

基本的差別為:

MyISAM 類型不支持事務處理等高級處理,而InnoDB類型支持。

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

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

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

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

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

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

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

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

  • 二進制層次的可移植性。

  • NULL列索引。

  • 對變長行比ISAM表有更少的碎片。

  • 支持大文件。

  • 更好的索引壓縮。

  • 更好的鍵碼統計分布。

  • 更好和更快的auto_increment處理。

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

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

關于“hibernate如何配置數據庫方言”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大邑县| 绵竹市| 洱源县| 长治市| 汽车| 东莞市| 闵行区| 大城县| 延庆县| 金塔县| 湖南省| 临夏县| 嵊泗县| 广州市| 柞水县| 宁安市| 奉节县| 会宁县| 江北区| 隆尧县| 西乌珠穆沁旗| 武宣县| 康定县| 边坝县| 沙田区| 侯马市| 东乌珠穆沁旗| 苍山县| 石门县| 依安县| 五家渠市| 山东| 南华县| 内乡县| 杭锦旗| 红河县| 浙江省| 类乌齐县| 福泉市| 清新县| 中西区|