Hibernate Configuration for SQLServer - Driver class

12,780

Try changing this:

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

To this:

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

This configuration guide from JBoss uses an _ instead of a .

Share:
12,780
Stefano Vercellino
Author by

Stefano Vercellino

Updated on June 04, 2022

Comments

  • Stefano Vercellino
    Stefano Vercellino almost 2 years

    I'm trying to configure hibernate with a SQLServer db.

    The configuration:

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

    And I get the following error:

    [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)
            .....
    

    I'm using sqljdbc-1.2.jar and the driver class seems correctly spelled, cant't figure where is the flaw..