Hibernate不同数据库的连接及SQL方言

Posted 幸福流浪

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hibernate不同数据库的连接及SQL方言相关的知识,希望对你有一定的参考价值。

本文讲述Hibernate不同数据库的连接及SQL方言。Hibernate不同数据库的连接可能会出现错误,有一种情况是由于Hibernate SQL方言设置不正确而导致的。

以下代码展示Hibernate不同数据库的连接。

<!--mysql 驱动程序 eg. mysql-connector-java-5.0.4-bin.jar--> 
<property name="dialect">org.hibernate.dialect.MySQLDialect</property> 
<property name="connection.driver_class">com.mysql.jdbc.Driver</property> 
<!-- JDBC URL --> 
<property name="connection.url">jdbc:mysql://localhost/dbname?characterEncoding=gb2312</property>
<!-- 数据库用户名--> 
<property name="connection.username">root</property> 
<!-- 数据库密码--> 
<property name="connection.password">root</property> 


<!--Sql Server 驱动程序 eg.jtds-1.2.jar--> 
<property name="dialect">org.hibernate.dialect.SQLServerDialect</property> 
<property name="connection.driver_class">net.sourceforge.jtds.jdbc.Driver</property> 

<!-- JDBC URL --> 
<property name="connection.url">jdbc:jtds:sqlserver://localhost:1433;DatabaseName=dbname</property> 
<!-- 数据库用户名--> 
<property name="connection.username">sa</property> 
<!-- 数据库密码--> 
<property name="connection.password"></property>  

<!--Oracle 驱动程序 ojdbc14.jar--> 
<property name="dialect">org.hibernate.dialect.OracleDialect< /property> 
<property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property> 
<!-- JDBC URL --> 
<property name="connection.url">jdbc:oracle:thin:@localhost:1521:dbname</property> 
<!-- 数据库用户名--> 
<property name="connection.username">test</property> 
<!-- 数据库密码--> 
<property name="connection.password">test</property>

如果出现如下错误,则可能是Hibernate SQL方言 (hibernate.dialect)设置不正确

Caused by: java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]‘last_insert_id‘ 不是可以识别的 函数名。

 

rdbms 方言
db2 org.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/10g org.hibernate.dialect.Oracle9Dialect
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不同数据库的连接及SQL方言的主要内容,如果未能解决你的问题,请参考以下文章

Hibernate 连接不同数据库的方言

5 -- Hibernate的基本用法 --4 4 数据库方言

SQL 方言如何在 hibernate 和 JOOQ 等框架内部实际工作

Hibernate SQL方言 (hibernate.dialect) Spring配置文件applicationContext.xml

Microsoft SQL Server 2014 的 Hibernate 方言是啥?

为啥需要配置数据源的 SQL 方言?