【问题标题】:JDBC problems connectiong to sql server [duplicate]连接到 sql server 的 JDBC 问题 [重复]
【发布时间】:2019-03-13 23:14:19
【问题描述】:

我正在尝试建立从 java 到 sql server 的连接。我正在使用 jdk 8 1.8 和 sql server 2014,这是我的代码:

package test.prova;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class Provaconn {

      public static void main(String[] args) throws Exception {
       Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");


        Connection m_Connection = DriverManager.getConnection(
        "jdbc:microsoft:sqlserver://srvdatiorim14.saga.locale;DatabaseName=mydbname", "myuser", "mypw");

        Statement m_Statement = m_Connection.createStatement();
        String query = "SELECT * FROM trasco_proprieta";

        ResultSet m_ResultSet = m_Statement.executeQuery(query);

        while (m_ResultSet.next()) {
          System.out.println(m_ResultSet.getString(1) + ", " + m_ResultSet.getString(2) + ", "
              + m_ResultSet.getString(3));

        }
      }

但我收到以下错误:

Exception in thread "main" 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:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at test.prova.Provaconn.main(Provaconn.java:10)

我已经搜索了各种主题的解决方案,我尝试了很多各种调整,但仍然出现此错误。 我还从 maven 依赖项和外部库中导入了 jdbc 驱动程序 jar(如您所见,我尝试了它的不同版本):

关于如何解决这个问题的任何建议?吨 谢谢, 塞尔夫

编辑 - 已解决

在将 Class.forName 更改为答案中的一个建议后,我还修改了错误的 url。改成

jdbc:microsoft:sqlserver://...

jdbc:sqlserver//...

【问题讨论】:

  • 它必须在你的类路径中
  • 请检查类路径中需要的类。在屏幕上,我看到了 2 个版本的 mssql jar。您应该删除项目中添加的所有 jar 依赖项。使用 maven 添加依赖并使用命令重新导入 maven 依赖: mvn eclipse:eclipse
  • 它已经在类路径中。我现在按照答案中的建议更改了 che class forName,我现在得到的错误是:线程“main”中的异常 java.sql.SQLException:找不到适合 jdbc:microsoft:sqlserver 的驱动程序...我还删除了重复的依赖,只保留 sqljdbc 4.2
  • 顺便说一句,您使用的是相当旧的驱动程序版本(2.0 版)。您可能需要考虑升级到更新版本(Java 10 及更高版本为 7.0,Java 7、8 和 9 为 6.4)。
  • @MarkRotteveel 我必须使用 java 8,所以我只是尝试按照您的提示将 jdbc 6.4 放入 maven 依赖项中。我删除了 4-2.0,除此之外我没有编辑任何内容,我再次遇到第一个错误..也许是因为我必须再次将新错误添加到类路径中?如果它由 maven 依赖项管理,我该怎么做?

标签: java jdbc


【解决方案1】:

如果你使用这个 jar 文件:http://www.java2s.com/Code/Jar/s/Downloadsqljdbc420jar.htm 你必须改变:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-04
    • 1970-01-01
    • 1970-01-01
    • 2014-12-01
    • 2012-01-29
    • 1970-01-01
    • 2013-04-13
    相关资源
    最近更新 更多