我使用spring/hibernate的mysql驱动程序是什么?

Bla*_*man 5 java mysql spring hibernate

有点困惑,是'driverclassname'和'hibernate.dialect'都指的是mysql驱动程序?

我该怎么用?connectorJ是我应该使用的吗?

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="org.hsqldb.jdbcDriver"/>
        <property name="url" value="jdbc:mysql://localhost/blah"/>



<property name="hibernateProperties">
            <value>
                hibernate.dialect=org.hibernate.dialect.MySQLDialect
Run Code Online (Sandbox Code Playgroud)

我正在使用Maven,所以如果我能从maven那里获得理想的驱动程序.

在tomcat中运行我的应用程序我收到错误:

Cannot create JDBC driver of class 'org.hsqldb.jdbcDriver' for connect URL 
Run Code Online (Sandbox Code Playgroud)

Pas*_*ent 21

有点困惑,是'driverclassname'和'hibernate.dialect'都指的是mysql驱动程序?

不,他们不是.driverclassname它指的是驱动程序类名,它是实现的给定JDBC驱动程序的类java.sql.Driver.驱动程序类名称是特定于驱动程序的

使用MySQL的JDBC驱动程序又称MySQL Connector/J时,此类com.mysql.jdbc.Driver如MySQL Connector/J文档中所述:

20.3.4.1.Connector/J的驱动程序/数据源类名,URL语法和配置属性

java.sql.Driver在MySQL Connector/J 中实现的类的名称 是com.mysql.jdbc.Driver.(......)

实际上,他们甚至提供了使用Spring驱动程序的说明.见20.3.5.2.4.使用Connector/J和Spring.

hibernate.dialect不同的是,这个配置属性用于定义Hibernate的类名,org.hibernate.dialect.Dialect 它允许Hibernate生成针对特定关系数据库优化的SQL.Hibernate文档中再次对此进行了解释:

3.4.可选配置属性

(...)Hibernate的类名, org.hibernate.dialect.Dialect它允许Hibernate生成针对特定关系数据库优化的SQL.

例如 full.classname.of.Dialect

在大多数情况下,Hibernate实际上可以org.hibernate.dialect.Dialect 根据JDBC驱动程序返回的JDBC元数据选择正确的 实现.

对于MySQL 5.x,你应该使用org.hibernate.dialect.MySQL5InnoDBDialect如果你使用InnoDB表(这将是我的建议)或org.hibernate.dialect.MySQL5Dialect如果你不是.见3.4.1.SQL(非详尽)列表的方言.

最后一点,您在问题中甚至没有提到的Maven部分...... MySQL JDBC驱动程序在Maven中央存储库中可用,您应该使用存储库搜索引擎(正如我已经建议的那样).例如,以下查询:

http://www.jarvana.com/jarvana/search?search_type=project&project=mysql

允许通过两次单击找到最终版本的maven坐标:

<dependency>
   <groupId>mysql</groupId>
   <artifactId>mysql-connector-java</artifactId>
   <version>5.1.13</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

PS:我不是故意粗鲁,我很乐意提供帮助,但您应该尝试利用您正在使用的产品或框架的文档.您在这个问题中提出的问题已经有详细记录(如我所示)并且可以轻松找到.在我看来,学习自己寻找基本信息是软件开发人员的基本技能.