如何configurationSQL Server的hibernateconfiguration文件

这里是MySQL的configuration文件:

<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> 

数据库特定的属性是:

  • 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。

要更改数据库,您必须:

  1. 为类path上的数据库提供适当的JDBC驱动程序,
  2. 更改JDBC属性( 驱动程序,url,用户,密码
  3. 改变Hibernate使用的Dialect与数据库交谈

有两个驱动程序连接到SQL Server; 开源的jTDS和微软的。 驱动程序类和JDBC URL取决于您使用的是哪一个。

使用jTDS驱动程序

驱动程序类名是net.sourceforge.jtds.jdbc.Driver

sqlserver的URL格式是:

  jdbc:jtds:sqlserver://<server>[:<port>][/<database>][;<property>=<value>[;...]] 

所以Hibernateconfiguration看起来像(注意你可以跳过属性中的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> 

使用Microsoft SQL Server JDBC 3.0:

驱动程序类名称是com.microsoft.sqlserver.jdbc.SQLServerDriver

url格式是:

 jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]] 

所以Hibernate的configuration看起来像这样:

 <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> 

参考

  • Hibernate核心参考文档
    • 3.3。 JDBC连接
    • 3.4。 可选的configuration属性
  • jTDS文档
  • Microsoft SQL Server JDBC驱动程序3.0文档
  • Microsoft SQL Server JDBC驱动程序2.0
  • Microsoft SQL Server JDBC驱动程序的支持matrix

对于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 ... 

我们还需要提到SQSERVER的默认模式:dbo

 <property name="hibernate.default_schema">dbo</property> 

testing与hibernate4

不要忘记在SQL SERVERconfiguration工具中启用TCP / IP连接

最后是Tomcat Hibernate 5

编译了上面的所有答案,并添加了我的提示,它像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>