以下是MySQL的配置文件:
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">org.gjt.mm.mysql.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost/test</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">zgy01</property>
<property name="hibernate.connection.pool_size">100</property>
<property name="show_sql">false</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- Mapping files -->
<mapping resource="model.hbm.xml"/>
</session-factory>
</hibernate-configuration>
为SQL Server 2005指定什么?我是这样做的:
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">org.gjt.mm.mysql.Driver</property>
<property name="hibernate.connection.url">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
<property name="hibernate.connection.username">sa</property>
<property name="hibernate.connection.password">lal</property>
<property name="dialect">org.hibernate.dialect.SQLServerDialect</property>
<property name="hibernate.connection.pool_size">100</property>
<property name="show_sql">false</property>
<!-- Mapping files -->
<mapping resource="model.hbm.xml"/>
</session-factory>
</hibernate-configuration>
更准确地说,我的问题是如何指定我必须连接的数据库?
在MySQL中,我曾经这样做过:
<property name="hibernate.connection.url">jdbc:mysql://localhost/test</property>
答案 0 :(得分:91)
特定于数据库的属性是:
hibernate.connection.driver_class
:JDBC驱动程序类hibernate.connection.url
:JDBC URL hibernate.connection.username
:数据库用户hibernate.connection.password
:数据库密码hibernate.dialect
:Hibernate org.hibernate.dialect.Dialect
的类名,它允许Hibernate生成针对特定关系数据库优化的SQL。 要更改数据库,您必须:
Dialect
与数据库通信有两个连接到SQL Server的驱动程序;开源jTDS和微软的。驱动程序类和JDBC URL取决于您使用的是哪个。
驱动程序类名称为net.sourceforge.jtds.jdbc.Driver
。
sqlserver的URL格式为:
jdbc:jtds:sqlserver://<server>[:<port>][/<database>][;<property>=<value>[;...]]
所以Hibernate配置看起来像(注意你可以跳过属性中的hibernate.
前缀):
<hibernate-configuration>
<session-factory>
<property name="connection.driver_class">net.sourceforge.jtds.jdbc.Driver</property>
<property name="connection.url">jdbc:jtds:sqlserver://<server>[:<port>][/<database>]</property>
<property name="connection.username">sa</property>
<property name="connection.password">lal</property>
<property name="dialect">org.hibernate.dialect.SQLServerDialect</property>
...
</session-factory>
</hibernate-configuration>
驱动程序类名称为com.microsoft.sqlserver.jdbc.SQLServerDriver
。
网址格式为:
jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]
所以Hibernate配置看起来像:
<hibernate-configuration>
<session-factory>
<property name="connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
<property name="connection.url">jdbc:sqlserver://[serverName[\instanceName][:portNumber]];databaseName=<databaseName></property>
<property name="connection.username">sa</property>
<property name="connection.password">lal</property>
<property name="dialect">org.hibernate.dialect.SQLServerDialect</property>
...
</session-factory>
</hibernate-configuration>
答案 1 :(得分:7)
对于SQL Server,连接URL应如下所示:
jdbc:sqlserver://serverName[\instanceName][:port][;databaseName=your_db_name]
示例:
jdbc:sqlserver://localhost
jdbc:sqlserver://127.0.0.1\INGESQL:1433;databaseName=datatest
...
答案 2 :(得分:5)
我们还需要提到SQL SERVER的默认架构:dbo
<property name="hibernate.default_schema">dbo</property>
使用hibernate 4进行测试
答案 3 :(得分:4)
不要忘记在SQL SERVER配置工具中启用tcp / ip连接
答案 4 :(得分:1)
最后这适用于Hibernate 5
中的Tomcat
。
汇编了上述所有答案并添加了我的提示,其效果类似于Hibernate 5 and SQL Server 2014
的魅力。
<hibernate-configuration>
<session-factory>
<property name="hibernate.dialect">
org.hibernate.dialect.SQLServerDialect
</property>
<property name="hibernate.connection.driver_class">
com.microsoft.sqlserver.jdbc.SQLServerDriver
</property>
<property name="hibernate.connection.url">
jdbc:sqlserver://localhost\ServerInstanceOrServerName:1433;databaseName=DATABASE_NAME
</property>
<property name="hibernate.default_schema">theSchemaNameUsuallydbo</property>
<property name="hibernate.connection.username">
YourUsername
</property>
<property name="hibernate.connection.password">
YourPasswordForMSSQL
</property>
答案 5 :(得分:0)
将jar文件保存在web-inf lib下,以防您包含jar而无法识别。
在我的情况下一切正常,但无法加载驱动程序类的情况下,它可以工作。