【问题标题】:Connecting to SQL Server using Hibernate使用 Hibernate 连接到 SQL Server
【发布时间】:2010-12-17 00:45:36
【问题描述】:

如何在 Netbeans 6.7.1 中使用 Hibernate 连接到 Sql Server 数据库?请指教。

我的方言被禁用了。

【问题讨论】:

    标签: java sql-server hibernate orm


    【解决方案1】:

    对于 SQL Server 2000 和 2005,您应该使用 SQLServerDialect(应该优先于 SybaseDialect,即 deprecated)。

    我无法验证 NetBeans Hibernate 向导在 SQL Server 中的行为,但根据this tutorial

    当您使用向导创建 Hibernate 配置文件时,您可以通过从 IDE 注册的数据库连接列表中进行选择来指定数据库连接。生成配置文件时,IDE 会根据所选的数据库连接自动添加连接详细信息和方言信息。

    所以,我的问题是:您是否为您的 SQL Server 数据库注册了数据库连接?如果没有,请转到 Services,为您的 SQL Server JDBC 驱动程序添加一个 New Driver(右键单击 Drivers 节点)并添加一个 New Connection(右键单击 Databases 节点)为您的数据库提供正确的 URL。

    【讨论】:

      【解决方案2】:

      对于使用 Hibernate 和 SQL Server 的任何人 - 我们的自定义方言可能会有所帮助:http://www.componentix.com/blog/5/improved-hibernate-dialect-for-microsoft-sql-server

      public class SQLServerDialect extends org.hibernate.dialect.SQLServerDialect {
      
         /**
          * Initializes a new instance of the {@link SQLServerDialect} class.
          */
          public SQLServerDialect() {
              registerColumnType(Types.BIGINT, "bigint");
              registerColumnType(Types.BIT, "bit");
              registerColumnType(Types.CHAR, "nchar(1)");
              registerColumnType(Types.VARCHAR, 4000, "nvarchar($l)");
              registerColumnType(Types.VARCHAR, "nvarchar(max)");
              registerColumnType(Types.VARBINARY, 4000, "varbinary($1)");
              registerColumnType(Types.VARBINARY, "varbinary(max)");
              registerColumnType(Types.BLOB, "varbinary(max)");
              registerColumnType(Types.CLOB, "nvarchar(max)");
          }
      }
      

      【讨论】:

        猜你喜欢
        • 2018-11-26
        • 1970-01-01
        • 1970-01-01
        • 2017-01-20
        • 2015-10-30
        • 2011-11-18
        • 2016-04-14
        • 2014-02-05
        • 1970-01-01
        相关资源
        最近更新 更多