Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java “NetBeans中的错误”;Class.forName(“com.mysql.jdbc.Driver”)&引用;_Java_Mysql - Fatal编程技术网

Java “NetBeans中的错误”;Class.forName(“com.mysql.jdbc.Driver”)&引用;

Java “NetBeans中的错误”;Class.forName(“com.mysql.jdbc.Driver”)&引用;,java,mysql,Java,Mysql,我正在使用netbeans 8.2和mysql 8.0,并将mysql connector 8.0.11导入库文件,以及以下java代码 package jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; public class JDBC { public static void main(String[] args) { Stri

我正在使用netbeans 8.2和mysql 8.0,并将mysql connector 8.0.11导入库文件,以及以下java代码

package jdbc;


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;

public class JDBC {

    public static void main(String[] args) {
        String SQL="Insert into Customer Values('C111','Somadasa','Matugama',34000)";
        Class.forName("com.mysql.jdbc.Driver");
        Connection connection=DriverManager.getConnection("jdbc:mysql://localhost:3308/ThogaKade", "root", "ftwxy");
        Statement stm=connection.createStatement();
        stm.executeUpdate(SQL);
    }

}
但以下几行已经被强调
Class.forName(“com.mysql.jdbc.Driver”)
Connection-Connection=DriverManager.getConnection(“jdbc:mysql://localhost:3308/ThogaKade“、”根“、”mysql”)

带有消息“unreported exception ClassNotFoundException”;必须被抓住或宣布被抛出 ----'
如何解决此问题?

只需在方法签名中添加抛出,如下所示:

public static void main(String[] args) throws ClassNotFoundException{
   //method body
}

您可以指定
main
抛出
异常。像

,您可以使用
try catch
(最好使用
try with Resources
)例如


使用资源进行
尝试的优点是它将
关闭()
您的
连接
语句
(s)正确。最后,自Java 6以来,您实际上不需要显式加载带有
Class.forName(String)
的JDBC驱动程序。

这是因为
Class.forName
DriverManager.getConnection
抛出需要处理的
异常。
修复此错误的最简单方法是使您的
main
方法抛出
Exception

大概是这样的:

public static void main(String[] args) throws Exception {
    // your code here
}  
public static void main(String[] args) {
    String SQL="Insert into Customer Values('C111','Somadasa','Matugama',34000)";
    try {
        Class.forName("com.mysql.jdbc.Driver");
        Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3308/ThogaKade", "root", "ftwxy");
        Statement stm=connection.createStatement();
        stm.executeUpdate(SQL);
    } catch (Exception ex) {
        ex.printStackTrace(System.err);
    }
}
另一种方法是将代码封装在
try-catch
块中。
大概是这样的:

public static void main(String[] args) throws Exception {
    // your code here
}  
public static void main(String[] args) {
    String SQL="Insert into Customer Values('C111','Somadasa','Matugama',34000)";
    try {
        Class.forName("com.mysql.jdbc.Driver");
        Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3308/ThogaKade", "root", "ftwxy");
        Statement stm=connection.createStatement();
        stm.executeUpdate(SQL);
    } catch (Exception ex) {
        ex.printStackTrace(System.err);
    }
}
希望这有帮助