2010-01-18 106 views
14

數據庫驅動程序和數據庫方言有什麼區別?數據庫驅動程序和數據庫方言之間的區別

+2

你的問題是不明確的。你想要列出所有數據庫的所有版本之間的所有差異嗎?或者你想知道司機和方言之間的區別。 – 2010-01-18 10:45:33

+0

司機和方言區別 – user244634 2010-01-18 10:53:09

+1

,你不知道如何使用維基百科或谷歌? – 2010-01-18 10:59:03

回答

7

原題:

是什麼數據庫驅動程序和數據庫方言之間的區別?

問題不明確;這是我的要求。

A driver是一款用於訪問數據庫的軟件。

A dialect是用於訪問數據庫的查詢語言(即協議)的變體。根據數據庫軟件的不同,它可能支持多種不同的dialects

I.e.並非所有的sql都生成相同;-)

8

數據庫驅動程序是實現用於連接到數據庫的協議(ODBC,JDBC)的程序。它是一個適配器,它將通用接口連接到特定的供應商實現,就像打印機驅動程序一樣。

數據庫方言是一種用於平臺無關軟件(JPA,Hibernate等)的配置設置,允許此類軟件將其轉換通用SQL語句轉換爲供應商特定的DDL,DML。

看來,「數據庫方言」可能被其他類型的數據庫程序使用,意味着稍微不同,但與我剛剛寫的內容大致相似。也就是說,「數據庫驅動程序」是一個公認的行業術語,具有單一的具體含義,而「數據庫方言」沒有類似的認識,因此在不同的上下文中涉及不同的概念。

4

這個問題不含糊,我認爲應該正確回答。

我們經常使用方言和驅動程序將某個應用程序連接到某個數據庫管理系統。

例如:Grails的/ JAVA

我們定義方言屬性連接到MySQL具有此types

MySQL5Dialect, MySQLInnoDBDialect, MySQLMyISAMDialect 

方言之一是英語單詞,意思是一種語言的變種。例如,有多種英語方言。例如英式英語和美式英語。

在數據庫的上下文中,人們談論SQL的方言。 SQL是英語的主要語言。然後有數據庫特定語法的方言。例如,Oracle有rownum關鍵字。 Refe

而且,數據庫的方言只是一個術語,它定義了訪問該數據庫時可用的SQL語言的特定功能。

Example of usage in application side 

dataSource { 
    pooled = true 
    jmxExport = true 
    driverClassName = "com.mysql.jdbc.Driver" 
    dialect = "org.hibernate.dialect.MySQL5InnoDBDialect" 
    username = "root" 
    password = "root" 
} 

N.B。方言是連接數據庫的必備條件。

另一方面,DataBase Driver是安裝在工作站或服務器上的程序,以允許該系統上的程序與DBMS進行交互。 [Refer]

在java中,我們有一些稱爲JDBC/ODBC驅動程序的規範來連接到關係數據庫。

驅動程序就像寫入的文件或類文件來處理實際數據庫和消費應用程序(Mysql和Java應用程序)之間的通信。

MySQL的提供了標準的數據庫驅動程序連接的使用MySQL是符合行業標準的ODBC和JDBC.After兼容你的驅動程序文件的應用程序和工具,你將它放在lib文件夾,然後你需要調用或者關聯像這樣。你需要指定URL,DATABASENAME,PORT,PASSWORD ..來連接數據庫。

dataSource { 

    //url = "jdbc:h2:mem:devDb;MVCC=TRUE;LOCK_TIMEOUT 
       =10000;DB_CLOSE_ON_EXIT=FALSE" 
     databasename = "libdoc" 
     url = "jdbc:mysql://localhost:3306/"+databasename 
    } 

Alloha,快樂的學習日!

相關問題