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