You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置NHibernate连接SQL Server?配置文件报错求助

解决NHibernate连接SQL Server的配置错误

错误原因分析

你遇到的connection.url无效问题,核心原因是NHibernate不支持connection.url这个配置键——这是原生Hibernate的配置项,NHibernate对应的正确配置是connection.connection_string。此外你的配置还有两处冲突/错误:

  • 重复定义了数据库驱动类,同时指定jTDS驱动和SqlClientDriver,二者冲突
  • 使用了原生Hibernate的方言类,而非NHibernate适配的SQL Server方言

修正后的配置文件

替换你的hibernate.xml.cfg为以下内容:

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration>
    <session-factory xmlns="urn:nhibernate-configuration-2.2">
        <!-- 使用NHibernate的SQL Server驱动 -->
        <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
        <!-- 对应SQL Server版本的方言,这里以SQL Server 2008+为例 -->
        <property name="dialect">NHibernate.Dialect.MsSql2008Dialect</property>
        <!-- NHibernate的连接字符串配置项 -->
        <property name="connection.connection_string">Server=OUSSEMA;Database=DB_GestionCompte;User ID=sa;Password=123;</property>
        <property name="show_sql">true</property>
    </session-factory>
</hibernate-configuration>

关键修改说明

  • 移除重复的hibernate.connection.driver_class配置,保留NHibernate.Driver.SqlClientDriver;如果想使用jTDS驱动,只需将该值改为NHibernate.Driver.JtdsDriver,同时确保项目引用了jTDS程序集
  • 将org.hibernate.dialect.SQLServerDialect替换为NHibernate专属方言,比如MsSql2008Dialect,可根据你的SQL Server版本选择对应方言(如MsSql2012Dialect、MsSql2017Dialect等)
  • 将connection.url替换为connection.connection_string,使用标准SQL Server连接字符串格式

验证要点

  1. 确保项目已正确引用NHibernate核心程序集
  2. 确认SQL Server允许SQL认证登录,且sa账号密码、数据库名称、服务器名称均正确

内容的提问来源于stack exchange,提问作者Oussema

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 02:07:22