当前位置: 首页 > 面试题库 >

如何为SQL Server配置休眠配置文件

华谭三
2023-03-14
问题内容

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

问题答案:

特定于数据库的 属性是:

  • 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. 在类路径上为数据库提供适当的JDBC驱动程序,
  2. 更改JDBC属性( 驱动程序,URL,用户,密码
  3. 更改DialectHibernate用来与数据库对话

有两个驱动程序可以连接到SQL
Server。开源jTDS和Microsoft。驱动程序类和JDBC
URL取决于您使用哪一种。

使用jTDS驱动程序

驱动程序类名称为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>

使用Microsoft SQL Server JDBC 3.0:

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

URL格式为:

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>

参考文献

  • Hibernate Core参考文档
    • 3.3。JDBC连接
    • 3.4。可选配置属性
  • jTDS文档
  • Microsoft SQL Server JDBC驱动程序3.0文档
  • Microsoft SQL Server JDBC驱动程序2.0
  • Microsoft SQL Server JDBC驱动程序支持矩阵


 类似资料:
  • 问题内容: 我试图配置文件为我和应用。相关部分如下所示: 但是,如果我不将库直接包含到我的buildpath中,我会不断获取。我有什么问题吗,因为在构建项目时不会下载此依赖项? 问题答案: 尝试代替。 这将包括所有必需的依赖项。进行此更改后,请检查Maven依赖项层次结构。 顺便说一句,Maven Central中最新的hibernate版本是4.1.18。

  • Hibernate需要提前知道 - 在哪里可以找到定义Java类与数据库表相关的映射信息。 Hibernate还需要一组与数据库和其他相关参数相关的配置设置。 所有这些信息通常作为标准的Java属性文件hibernate.properties ,或者作为名为hibernate.cfg.xml的XML文件提供。 我将考虑XML格式的文件hibernate.cfg.xml来指定我的示例中所需的Hibe

  • 问题内容: 我将jaybird 2.2.3和hibernate 3.5一起使用,当我使用向导hibernate映射文件和pojos数据库时,出现以下错误“ java.lang.NullPointerException” 我在mysql上使用了相同的映射,并且可以正常工作,所以我相信这是jaybird中的问题 编辑: 有人能帮我吗? 问题答案: 在深入研究了Netbeans的代码并向Jaybird添

  • 问题内容: 我不断得到: HibernateException:未配置CurrentSessionContext! 在我的代码中。其他返回的唯一信息是罪魁祸首是: 在我的hibernate.cfg.xml中。我的hibernate.cfg.xml文件中确实有该文件,并且我正在Tomcat 6中运行它。有人知道其他可能的原因吗? 问题答案: 我相信您需要将current_session_contex

  • 问题内容: 这是hibernate.cfg.xml中的内容 另外,我正在动态覆盖某些属性… 但是,当我运行它时,出现此错误… 如何配置属性,以便heroku找到postgres驱动程序? (我是hibernate和Heroku的新手,因此非常感谢您的帮助:) 问题答案: 来自Heroku Postgres的URL格式不是JDBC格式。它是一种多语言格式,因此所有平台都可以使用它。因此,您需要将UR

  • 问题内容: 目前,我正在使用带有@Transactional批注的DriverManagerDataSource来管理事务。但是所有事务都非常非常慢,这可能是因为数据源每次都打开和关闭与db的连接。 我应该使用什么数据源来加快交易速度? 问题答案: 实际上不是连接池,只能用于测试。您应该尝试使用Apache Commons DBCP 。就像是: