数据库驱动程序和数据库方言的区别

时间:2010-01-18 10:40:23

标签: database drivers

数据库驱动程序和数据库方言之间有什么区别?

3 个答案:

答案 0 :(得分:9)

数据库驱动程序是一个实现用于连接数据库的协议(ODBC,JDBC)的程序。它是一个将通用接口连接到特定供应商实现的适配器,就像打印机驱动程序等一样。

数据库方言是平台无关软件(JPA,Hibernate等)的配置设置,它允许此类软件将其通用SQL语句转换为供应商特定的DDL,DML。

似乎“数据库方言”可能被其他类型的数据库程序用来表示稍微不同但与我刚刚编写的内容大致相似的内容。也就是说,“数据库驱动程序”是具有单一具体含义的公认行业术语,而“数据库方言”未被类似地识别,因此指代不同上下文中的不同概念。

答案 1 :(得分:7)

原始问题:

  

数据库驱动程序和数据库方言有什么区别?

问题含糊不清;这是我的看法。

driver是用于访问数据库的软件。

dialect是用于访问数据库的查询语言(即协议)的变体。根据数据库软件的不同,它可能支持多个不同的dialects

即。并非所有sql都是平等的; - )

答案 2 :(得分:7)

这个问题不含糊,我认为应该正确回答。

我们经常使用Dialect和Drivers将某个应用程序与某个数据库管理系统连接起来。

例如:在grails / java中

我们定义一个Dialect属性来连接到mysql,因为它具有types

之一
MySQL5Dialect, MySQLInnoDBDialect, MySQLMyISAMDialect
  

Dialect是一个英语单词,意思是语言的变体。例如,有多种英语方言。例如,英国英语和美国英语。

     

在数据库环境中,人们谈论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。 Dialect是连接数据库的必备条件。

  

另一方面,DataBase驱动程序是安装在工作站或服务器上的程序,允许该系统上的程序与DBMS交互。[Refer]

在java中,我们有一个名为JDBC / ODBC驱动程序规范的东西,用于连接到关系数据库。

驱动程序类似于编写文件或类文件,用于处理实际数据库与使用应用程序(Mysql和Java应用程序)之间的通信。

MySQL 提供标准的数据库驱动程序连接,以便将MySQL与行业标准ODBC和JDBC兼容的应用程序和工具使用。拥有驱动程序文件后,将其放在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,快乐学习日!