sqlnontransientconnectionexception在eclipse中连接mysql

3qpi33ja  于 2021-06-20  发布在  Mysql
关注(0)|答案(3)|浏览(332)

我正在尝试编写代码,使用eclipse、mysql workbench和jdbc8.0.11将文本文件的数据引入数据库。它给了我一个classnotfoundexception。我已经研究了其他多个问题,通过将java\com\mysql\jdbc\driver.java放在drivermanager.getconnection参数中,这些问题都得到了解决。我已经这样做了,但它仍然给我一个错误。有人知道我为什么还是会犯这个错误吗?

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,因为基础的错误ArgumentException。我对它为什么这样做感到困惑,因为我没有为drivermanager.getconnection使用不正确的参数。有什么建议吗?

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();
ukdjmx9f

ukdjmx9f1#

必须为连接加载驱动程序类,而不是该类的jar文件
你应该试试这个:

Class.forName("com.mysql.jdbc.Driver");
mmvthczy

mmvthczy2#

试试这个:

// 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的新手。这不是一个好办法。我建议你在网上搜索一些如何做得更好的例子。

0yycz8jy

0yycz8jy3#

我在drivermanager.getconnection()中使用了错误的数据库url格式;
我把网址改成了jdbc:mysql://host:3306/ 而且成功了。

String url = "jdbc:mysql://*host*:3306/";
Connection conn = DriverManager.getConnection(url, user, pass);

相关问题