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

时间:2022-02-07 06:17:05

本文讲述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