java - SQLServer 的 Hibernate 配置 - 驱动程序类

标签 java sql-server hibernate jdbc driver

我正在尝试使用 SQLServer 数据库配置 hibernate。

配置:

public static SessionFactory getSessionFactory() {
    try {
        if (null==sessionFactory) {
            Properties hb_props = new Properties();
            hb_props.put("hibernate.dialect", "org.hibernate.dialect.SQLServer2005Dialect");
            hb_props.put("hibernate.connection.driver.class", "com.microsoft.sqlserver.jdbc.SQLServerDriver");
            hb_props.put("hibernate.connection.username", "someusername");
            hb_props.put("hibernate.connection.password", "somepassword");
            hb_props.put("hibernate.connection.url", "jdbc:sqlserver://serverurl//dbname");
            Configuration configuration = new Configuration();
            configuration.setProperties(hb_props);
            sessionFactory = configuration.addAnnotatedClass(Test.class).buildSessionFactory();
        }
    } catch (Throwable ex) {
        System.err.println("Initial SessionFactory creation failed." + ex);
        throw new ExceptionInInitializerError(ex);
    }
    return sessionFactory;
}

我收到以下错误:

[main] WARN org.hibernate.connection.DriverManagerConnectionProvider - no JDBC Driver class was specified by property hibernate.connection.driver_class
[main] INFO org.hibernate.connection.DriverManagerConnectionProvider - using driver: null at URL: jdbc:sqlserver://serverurl//dbname
[main] INFO org.hibernate.connection.DriverManagerConnectionProvider - connection properties: {user=someusername, password=****, driver.class=com.microsoft.sqlserver.jdbc.SQLServerDriver}
[main] WARN org.hibernate.cfg.SettingsFactory - Could not obtain connection to query metadata
java.sql.SQLException: No suitable driver found for jdbc:sqlserver://serverurl//dbname
    at java.sql.DriverManager.getConnection(DriverManager.java:602)
    at java.sql.DriverManager.getConnection(DriverManager.java:154)
    at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:133)
    at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:113)
    at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2863)
    at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2859)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1870)
        .....

我正在使用 sqljdbc-1.2.jar,驱动程序类似乎拼写正确,无法弄清楚缺陷在哪里..

最佳答案

尝试更改此设置:

hb_props.put("hibernate.connection.driver.class",
    "com.microsoft.sqlserver.jdbc.SQLServerDriver");

对此:

hb_props.put("hibernate.connection.driver_class",
   "com.microsoft.sqlserver.jdbc.SQLServerDriver");

这个configuration guide来自 JBoss 使用 _ 而不是

关于java - SQLServer 的 Hibernate 配置 - 驱动程序类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15519621/

相关文章:

java - 如果同步集合不能保证迭代器的同步访问,为什么我们要使用它呢?

java - 将 synchronized() 与 ReentrantLock.lock() 混合使用

sql - CTE 和子查询之间的区别?

java - 多对多删除集 NULL

java - 通过 POST 使用 hibernate 和 vraptor 插入带有外键的实体

java - 在SQL数据库(例如H2)中插入和获取java.time.LocalDate对象

java - Android Firebase - 根据微调器更改来自 firebase 的 ListView 数据

.net - Entity Framework 核心脚手架 "Could not find type mapping for column with data type 'hierarchyid'。跳过列"

c# - 如何迭代 linq-to-sql 查询结果的结果并追加结果?

java - QueryDSL 获取另一个实体集合中的任何实体