本文讲述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方言
db2org.hibernate.dialect.DB2Dialect
db2 as/400org.hibernate.dialect.DB2400Dialect
DB2 OS390org.hibernate.dialect.DB2390Dialect 
PostgreSQLorg.hibernate.dialect.PostgreSQLDialect
MySQLorg.hibernate.dialect.MySQLDialect
MySQL with InnoDBorg.hibernate.dialect.MySQLInnoDBDialect 
MySQL with MyISAMorg.hibernate.dialect.MySQLMyISAMDialect
Oracle (any version)org.hibernate.dialect.OracleDialect
Oracle 9i/10gorg.hibernate.dialect.Oracle9Dialect
Sybaseorg.hibernate.dialect.SybaseDialect
Sybase Anywhereorg.hibernate.dialect.SybaseAnywhereDialect
Microsoft SQL Serverorg.hibernate.dialect.SQLServerDialect
SAP DBorg.hibernate.dialect.SAPDBDialect
Informixorg.hibernate.dialect.InformixDialect
HypersonicSQLorg.hibernate.dialect.HSQLDialect
Ingresorg.hibernate.dialect.IngresDialect
Progressorg.hibernate.dialect.ProgressDialect
Mckoi SQLorg.hibernate.dialect.MckoiDialect
Interbaseorg.hibernate.dialect.InterbaseDialect
Pointbaseorg.hibernate.dialect.PointbaseDialect
FrontBaseorg.hibernate.dialect.FrontbaseDialect
Firebirdorg.hibernate.dialect.FirebirdDialect
12-17 07:55