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

use*_*634 20 database drivers

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

dan*_*lad 11

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

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

例如:在grails/java中

我们定义一个Dialect属性来连接mysql,因为它具有这种类型之一

MySQL5Dialect, MySQLInnoDBDialect, MySQLMyISAMDialect
Run Code Online (Sandbox Code Playgroud)

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

在数据库环境中,人们谈论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"
}
Run Code Online (Sandbox Code Playgroud)

NB.Dialect是连接数据库的必需项.

另一个Hand,DataBase Driver是安装在工作站或服务器上的程序,允许该系统上的程序与DBMS交互.[参考]

在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
   }
Run Code Online (Sandbox Code Playgroud)

Alloha,快乐学习日!


APC*_*APC 10

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

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

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


jld*_*ont 9

原始问题:

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

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

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

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

即不是所有人sql都是平等的;-)