首页 文章

无法将JDBC与SQL Server连接

提问于
浏览
0
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 回答

  • 3

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

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

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

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

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

相关问题