无法将JDBC与SQL Server连接

时间:2018-08-10 12:59:46

标签: java jdbc

 import java.sql.Connection;
    import java.sql.DatabaseMetaData;
    import java.sql.DriverManager;
    import java.sql.SQLException;

    public class JdbcSQLServerConnection {

        public static void main(String[] args) throws ClassNotFoundException {



            Connection conn = null;
            try {


              String url = "jdbc:sqlserver://microsoft\\SQLEXPRESS;databaseName=crud";
              String userName = "sa";
              String password = "pwd";
              System.out.println("Connected2");
              Class.forName("com.sqlserver.jdbc.SQLServerDriver");
              conn = DriverManager.getConnection(url, userName, password);


                System.out.println("Connected");
                if (conn != null) {
                    DatabaseMetaData dm = (DatabaseMetaData) conn.getMetaData();
                    System.out.println("Driver name: " + dm.getDriverName());
                    System.out.println("Driver version: " + dm.getDriverVersion());
                    System.out.println("Product name: " + dm.getDatabaseProductName());
                    System.out.println("Product version: " + dm.getDatabaseProductVersion());
                }

            } catch (SQLException ex) {
                ex.printStackTrace();
            } finally {
                try {
                    if (conn != null && !conn.isClosed()) {
                        conn.close();
                    }
                } catch (SQLException ex) {
                    ex.printStackTrace();
                }
            }
        }
    }

输出:-

Connected2 Exception in thread "main"
java.lang.ClassNotFoundException: com.sqlserver.jdbc.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 JdbcSQLServerConnection.main(JdbcSQLServerConnection.java:28)
我已经在eclipse库中包含了sqljdbc4.jar,但事实并非如此 在我的系统上工作,请在此解决方案中帮助我。在此处输入代码。

1 个答案:

答案 0 :(得分:3)

显然找不到您尝试加载的类(com.sqlserver.jdbc.SQLServerDriver)。

根据Microsoft Docs "Using the JDBC Driver",您必须通过调用Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");来加载JDBC驱动程序-注意microsoftcom之间的sqlserver

如果这没有帮助,您可能想要

  1. 编译代码并在命令行上运行,将JDBC驱动程序JAR手动添加到类路径(-cp)中,以消除Eclipse中的任何陷阱。

  2. sqljdbc4.jar重命名为sqljdbc4.zip,解压缩并检查您尝试加载的类是否确实存在于其中...