hibernate
底層依然使用
sql語句來執行資料庫操作,雖然所有關係型資料庫都支援使用標準
sql語句,但所有資料庫都對標準
sql進行了一些擴充套件,所以在語法細節上存在一些差異,因此
hibernate
需要根據資料庫來識別這些差異。
舉例來說,我們在
mysql
資料庫裡進行分頁查詢,只需使用
limit
關鍵字就可以了;而標準
sql並不支援
limit
關鍵字,例如
oracle
則需要使用行內檢視的方式來進行分頁。同樣的應用程式,當我們在不同資料庫之間遷移時,底層資料庫的訪問細節會發生改變,而
hibernate
也為這種改變做好了準備,現在我們需要做的是:告訴
hibernate
應用程式的底層即將使用哪種資料庫——這就是資料庫方言。
一旦我們為
hibernate
設定了合適的資料庫方言,
hibernate
將可以自動應付底層資料庫訪問所存在的細節差異。
不同資料庫所應使用的方言如表
5.1所示。 表
5.1
不同資料庫及其對應方言
關聯式資料庫方言
db2org.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
org.hibernate.dialect.oracle9idialect
oracle 10g
org.hibernate.dialect.oracle10gdialect
續表關聯式資料庫方言
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
資料庫方言
hibernate就相當於乙個翻譯,配置 方言 選項,就是告訴hibernate它要說 的言。是這樣的,因為不同的資料庫,在sql語句的設計上是存在差異的,就好比不同地方的人說不同的方言。而hibernate呢,它會所有的 方言 我們要做的,就是告訴它,我們需要它說哪種 方言 以下是各資料庫對應的方...
hibernate 資料庫方言列表
rdbms dialect db2 org.hibernate.dialect.db2dialect db2 as 400 org.hibernate.dialect.db2400dialect db2 os390 org.hibernate.dialect.db2390dialect postgr...
Hibernate配置資料庫方言
在開發hibernate的程式時,需要進行sessionfactory的配置,簡單地說,也就是建立與資料庫之間連線的配置,在hibernate中一般使用xml檔案來進行配置,但是在該檔案的配置中需要設定dialect方言屬性值,對於不同的資料庫,方言的值dialect是不同的,那麼下面就列出在不同的...