找不到适合 jdbc:sqlserver:ex;databaseName=Cities_names 的驱动程序

Posted

技术标签:

【中文标题】找不到适合 jdbc:sqlserver:ex;databaseName=Cities_names 的驱动程序【英文标题】:No suitable driver found for jdbc:sqlserver:ex;databaseName=Cities_names 【发布时间】:2022-01-19 20:14:42 【问题描述】:

我正在尝试连接数据库并在 NetBeans 中使用组合框显示我将其作为输出:

严重:无效 java.sql.SQLException: 找不到适合 jdbc:sqlserver:DESKTOP-4N1HNP8 的驱动程序;databaseName=Cities_names 在 java.sql.DriverManager.getConnection(DriverManager.java:689) 在 java.sql.DriverManager.getConnection(DriverManager.java:247) 在 com.mycompany.acam.Panel1.Fillcombo(Panel1.java:31) 在 com.mycompany.acam.Panel1.(Panel1.java:27)

线程“主”java.lang.NullPointerException 中的异常

在 com.mycompany.acam.Panel1.Fillcombo(Panel1.java:46) //con.close(); at com.mycompany.acam.Panel1.(Panel1.java:27) //Fillcombo();

缺少 mssql:mssql-jdbc:jar:9.4.1 的 POM,没有可用的依赖信息

这里是我连接到数据库和填充组合框的地方:

public class Panel1 extends javax.swing.JFrame 
    static Connection con;
    static ResultSet rs;
    static PreparedStatement pst;
    static Statement st;

    public Panel1() 
        initComponents();
        this.setLocationRelativeTo(null);
        Fillcombo();
    

    public  void Fillcombo() 
        try 
           con = DriverManager.getConnection("jdbc:sqlserver:DESKTOP-4N1HNP8;databaseName=Cities_names", "Stefan", "stefan");
           String Query = "SELECT * FROM Cities_names";
           st = con.createStatement();
           pst = con.prepareStatement(Query);
           rs = st.executeQuery(Query);

           while (rs.next())
           
               Combo_box.addItem(rs.getString("City"));
           

           Combo_box.setSelectedItem(null);
       catch(SQLException ex) 
         Logger.getLogger(Panel1.class.getName()).log(Level.SEVERE,null,ex);
      
      finally 
          try 
             con.close();
             pst.close();
             rs.close();
           catch(SQLException ex) 
              Logger.getLogger(Panel1.class.getName()).log(Level.SEVERE,null,ex);
          
    

来自 pom.xml -maven 的依赖:

    <dependencies>
        <dependency>
            <groupId>mssql</groupId>
            <artifactId>mssql-jdbc</artifactId>
            <version>9.4.1</version>
        </dependency>
    </dependencies>

我从依赖节点添加了依赖。我手动安装了 jar 文件。

【问题讨论】:

更新:我改变 :con=DriverManager.getConnection("jdbc:sqlserver:DESKTOP-4N1HNP8;databaseName=Cities_names", "Stefan", "stefan");进入: con=DriverManager.getConnection("jdbc:sqlserver://DESKTOP-4N1HNP8;databaseName=Cities_names", "Stefan", "stefan");现在我收到这个:com.microsoft.sqlserver.jdbc.SQLServerException: 'Cities_names' 附近的语法不正确。 【参考方案1】:

我变了:

String Query = "SELECT * FROM Cities_names";

到:

String Query = "SELECT TOP (1000) [City] FROM [Cities_names].[dbo]. [Cities]";

它正在工作

【讨论】:

以上是关于找不到适合 jdbc:sqlserver:ex;databaseName=Cities_names 的驱动程序的主要内容,如果未能解决你的问题,请参考以下文章

找不到适合 jdbc mysql 的驱动程序?

这是啥错误? “无法添加数据连接。找不到任何适合指定文化或中性文化的资源。”

找不到适合指定文化或中性文化的任何资源

找不到适合'jdbc:mysql:// localhost:3306 / mysql的驱动程序[重复]

如何修复:找不到适合 jdbc:sqlserver 的驱动程序 [重复]

SQLException: 找不到适合 jdbc:postgresql 的驱动程序