首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java错误“未找到指定的JDBC驱动程序com.microsoft.sqlserver.jdbc.SQLServerDriver类”

Java错误“未找到指定的JDBC驱动程序com.microsoft.sqlserver.jdbc.SQLServerDriver类”
EN

Stack Overflow用户
提问于 2016-03-29 07:43:11
回答 4查看 1.4K关注 0票数 0

运行应用程序时出错,错误是:

未找到指定的JDBC驱动程序com.microsoft.sqlserver.jdbc.SQLServerDriver类

我的灵魂: pom.xml

代码语言:javascript
复制
    <dependency>
        <groupId>org.apache.struts</groupId>
        <artifactId>struts2-convention-plugin</artifactId>
        <version>2.3.20</version>
    </dependency>
    <dependency>
        <groupId>org.apache.struts</groupId>
        <artifactId>struts2-rest-plugin</artifactId>
        <version>2.3.20</version>
    </dependency> 

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>4.0.1.Final</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-validator</artifactId>
        <version>4.2.0.Final</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate.common</groupId>
        <artifactId>hibernate-commons-annotations</artifactId>
        <version>4.0.1.Final</version>
        <classifier>tests</classifier>
    </dependency>
    <dependency>
        <groupId>org.hibernate.javax.persistence</groupId>
        <artifactId>hibernate-jpa-2.0-api</artifactId>
        <version>1.0.1.Final</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>4.0.1.Final</version>
    </dependency>
    <dependency>
        <groupId>javax.validation</groupId>
        <artifactId>validation-api</artifactId>
        <version>1.0.0.GA</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.6.4</version>
    </dependency>
    <dependency>
        <groupId>org.jboss.logging</groupId>
        <artifactId>jboss-logging</artifactId>
        <version>3.1.0.CR2</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.6.4</version>
    </dependency>

    <dependency>
        <groupId>com.microsoft.sqlserver.jdbc</groupId>
        <artifactId>sqljdbc4</artifactId>
        <version>1.0</version>
        <scope>system</scope>
        <systemPath>${basedir}/src/main/lib/sqljdbc4.jar</systemPath>
    </dependency>

hibernate.cfg.xml

代码语言:javascript
复制
<hibernate-configuration>     
<session-factory> 

 <!-- Database connection settings -->  
    <property name="connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>  
    <property name="connection.url">jdbc:sqlserver://.;database=db</property>  
    <property name="connection.username">sa</property>  
    <property name="connection.password">12345</property>   
    <property name="connection.pool_size">1</property>   
    <property name="dialect">org.hibernate.dialect.SQLServer2005Dialect</property>   
    <property name="show_sql">false</property>   
    <property name="hbm2ddl.auto">update</property>  

    <!-- Mapping files --> 
    <mapping resource="employee.hbm.xml"/> 

</session-factory> 

调用Hibernate的代码:

代码语言:javascript
复制
public static List<Employee> SelectAll(){ 
    Configuration cfg = new Configuration();  
    cfg.configure("hibernate.cfg.xml");
    SessionFactory factory = cfg.buildSessionFactory();  
    Session session = factory.openSession(); 

    //String sql_query= "from Employee where Name = 'Kevin'";
    String sql_query= "from Employee";
    Query query = session.createQuery(sql_query);
    List<Employee> employees = query.list();

    session.close();  
    factory.close(); 
    return employees;
}

有人知道为什么吗?在SessionFactory factory =cfg.buildSessionFactory()中发生了错误;

目录在:

当我检查库时,它有SQLServerDriver

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-03-29 08:38:48

@Lumanyun您使用的是存储库Maven中不存在的jar:

代码语言:javascript
复制
<dependency>
        <groupId>com.microsoft.sqlserver.jdbc</groupId>
        <artifactId>sqljdbc4</artifactId>
        <version>1.0</version>
        <scope>system</scope>
        <systemPath>${basedir}/lib/sqljdbc4.jar</systemPath>
    </dependency>

去检查这里,一个可以帮助您的版本

票数 2
EN

Stack Overflow用户

发布于 2016-03-29 07:50:31

这是因为类路径中没有com.microsoft.sqlserver.jdbc.SQLServerDriver

请检查类路径中的sqljdbc4.jar并检查sqljdbc4.jar中的com.microsoft.sqlserver.jdbc.SQLServerDriver类。

若要使用SQLServerDriver查找类路径中的任何jar,请尝试在Hibernate配置代码之前执行此代码。

代码语言:javascript
复制
URL driverUrl = Thread.currentThread().getContextClassLoader()
    .getResource(
    "com/microsoft/sqlserver/jdbc/SQLServerDriver.class");
System.out.println(driverUrl);
票数 2
EN

Stack Overflow用户

发布于 2016-03-29 07:48:47

请检查你的类路径。司机罐必须在类路径上。此问题与java无法在指定的类路径中找到类有关。将jar文件放在同一个目录中,否则就可以找到它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36278318

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档