添加到Classpath的JDBC jar仍然收到错误

时间:2017-04-20 21:32:05

标签: java sql-server intellij-idea sqljdbc

我正在测试我与数据库的连接。我无法正确编译。我已经通过Intellij IDE将sqljdbc4.jar添加到类路径中(可能它做错了吗?)但它出现在Project Structures下的Open Modules的Classpath下。 我该如何解决这个问题?

这是我的错误:

java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at Automate.dbConnect(Automate.java:16)
at Automate.main(Automate.java:34)

以下是代码:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

class Automate {
    public void dbConnect(String db_connect_string,
                      String db_userid,
                      String db_password)
{
    try {
        Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");

        Connection conn = DriverManager.getConnection(db_connect_string,
                db_userid, db_password);
        System.out.println("connected");
        Statement statement = conn.createStatement();
        String queryString = "select * from sysobjects where type='u'";
        ResultSet rs = statement.executeQuery(queryString);
        while (rs.next()) {
            System.out.println(rs.getString(1));
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}
public static void main(String[] args)
{
    Automate connServer = new Automate();
    connServer.dbConnect("jdbc:sqlserver://SERVER, "USERNAME",
            "PASSW");
}

1 个答案:

答案 0 :(得分:-1)

我的问题是我使用的是过时的JDBC类名。

这是修复:

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver")

小错误..大问题