首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >SQLNonTransientConnectionException在Eclipse中与MySQL的连接

SQLNonTransientConnectionException在Eclipse中与MySQL的连接
EN

Stack Overflow用户
提问于 2018-07-24 01:33:19
回答 3查看 2.9K关注 0票数 0

我正在尝试使用Eclipse、MySQL Workbench和JDBC8.0.11编写将文本文件的数据带入数据库的代码。它给了我一个ClassNotFoundException。我还研究了其他多个问题,通过将java\com\mysql\jdbc\Driver.java放在DriverManager.getConnection参数中,这些问题都得到了解决。我已经这样做了,但它仍然给我一个错误。有没有人知道为什么我仍然收到这个错误?

代码语言:javascript
复制
public static void main(String[] args) throws Exception{
    Class.forName                                                                   //Register JDBC Driver
    ("*mysql-connector-java-8.0.11.\\src\\legacy\\java\\com\\mysql\\jdbc\\Driver.java*")
    .newInstance();  

    conn =      DriverManager.getConnection (url, user, pass);   
    Statement stmt = conn.createStatement();
    String mysql1 = "UPDATE Policy SET " + readAndArray                         //Changeable file path
            ("filepath"); 

    }

新建编辑

按照@zlakad的建议,如果你使用的是Java6或更高版本,你不需要使用Class.forName()。不过,现在我有了一个新的错误: SQLNonTransientConnectionException,因为底层的WrongArgumentException。我不明白为什么它会这样做,因为我没有为DriverManager.getConnection使用错误的参数。有什么建议吗?

代码语言:javascript
复制
String url = "file path";         //Changeable for MySQL DB
String user = "root";
String pass = "password";

public static void getConnection() throws Exception { 

    Connection conn = DriverManager.getConnection(url, user, pass);   
    Statement stmt = conn.createStatement();
EN

回答 3

Stack Overflow用户

发布于 2018-07-24 01:46:56

您必须加载用于连接的驱动程序类,而不是该类的jar文件

你应该试试这个:

代码语言:javascript
复制
Class.forName("com.mysql.jdbc.Driver");
票数 1
EN

Stack Overflow用户

发布于 2018-07-24 02:24:23

试试这个:

代码语言:javascript
复制
// None of this belongs in a main method. 
public static void main(String[] args) throws Exception {
    Class.forName("com.mysql.jdbc.Driver");     
    // where are url, user, pass set?  I don't see them.   
    Connection conn = DriverManager.getConnection(url, user, pass);
    Statement stmt = conn.createStatement();
    // this is simply wrong.
    String mysql1 = "UPDATE Policy SET " + readAndArray("filepath");
}

您是Java和JDBC的新手。这不是一个好的方法。我建议你在网络上搜索一些如何做得更好的例子。

票数 1
EN

Stack Overflow用户

发布于 2018-07-25 21:58:46

我在DriverManager.getConnection()中使用了错误的数据库url格式;

我将url更改为jdbc:mysql://host:3306/,它起作用了。

代码语言:javascript
复制
String url = "jdbc:mysql://*host*:3306/";
Connection conn = DriverManager.getConnection(url, user, pass);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51484359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档