public class ConnectionManager {
private static String url = "jdbc:mysql://localhost:3306/prototypeeop";
private static String driverName = "com.mysql.jdbc.Driver";
private static String usernsme = "root";
private static String pasword = "triala";
private static Connection con;
private static String url;
public static Connection getConnection() {
try {
Class.forName(driverName);
try {
con = DriverManager.getConnection(url, username, password);
} catch (SQLException ex) {
// log an exception. fro example:
System.out.println("Failed to create the database connection.");
}
} catch (ClassNotFoundException ex) {
// log an exception. for example:
System.out.println("Driver not found.");
}
return con;
}
}
嘿,我正在创建这个类,我得到一个“classnotfound异常永远不会被抛出相应的try语句”?这与我的try和catch块有关,我想知道问题是什么。它表示对于try错误,“未报告的异常java.lang.classnotfound excpetion必须在它被抛出之前被捕获或声明”。
我为明显的问题道歉,但我也是新手,试图抓住障碍。我知道这与我没有声明这种类型的错误有关,因为已经在java.sql包中声明了SQLException;因此,为什么我没有得到错误。 (我在我的代码中包含“import java.sql package”,因为我正在使用JDBC的Connection类)。该类基本上建立一个连接并返回该连接。
答案 0 :(得分:2)
您的文字很难理解......如果我理解您的问题,可能就是答案:
您必须捕获SQLException,因为DriverManager.getConnection声明它可能抛出此异常。 Class.forName可能抛出ClassNotFoundException,因此您也必须捕获它。但是,您可以使用一个带有两个catch子句的try块而不是两个。
如果你能重新解释这个问题,我想最好的事情就是。
答案 1 :(得分:1)
它将抛出一个ClassNotFoundException异常。只需创建一个新的.java文件,然后查看。 我试过了。将下面的代码复制到一个新的java文件中。
import java.sql.DriverManager;
import java.sql.SQLException;
import com.mysql.jdbc.Connection;
public class ConnectionManager {
private static String url = "jdbc:mysql://localhost:3306/prototypeeop";
private static String driverName = "com.mysql.jdbc.Driver";
private static String usernsme = "root";
private static String pasword = "triala";
private static Connection con;
public static Connection getConnection() {
try {
Class.forName(driverName);
try {
con = (Connection) DriverManager.getConnection("", "", "");
} catch (SQLException ex) {
// log an exception. fro example:
System.out.println("Failed to create the database connection.");
}
} catch (ClassNotFoundException ex) {
// log an exception. for example:
System.out.println("Driver not found.");
}
return con;
}
}
答案 2 :(得分:0)
如果此代码直接来自您的编辑器,则需要修复此问题
您声明usernsme
和pasword
private static String usernsme = "root";
private static String pasword = "triala";
但请使用username
和password
con = DriverManager.getConnection(url, username, password);
或许将第一行更改为
private static String username = "root";
private static String password = "triala";
这个问题也会消失。
如果此代码不是来自您的编辑器,那么如果您需要帮助,您应该给我们真实的代码。