大学のセキュリティ コース用にデータベース接続スキャナーを構築しています。DriverManager.getConnection(connectionURL, username, password) を使用しましたが、正常に動作しているように見えますが、理解できない例外が 1 つあります。間違ったユーザー名を入力しても、接続が返されますか??? 私のテストコードを以下に貼り付けます。どんなポインタでも大歓迎です。間違ったパスワードを入力すると正しいエラーが返され、サーバーの電源を切るとエラーが返されます。しかし、なんらかの理由で、ユーザー名が間違っているかどうかを教えてくれません。まるでチェックしていないかのようです!
public class DBConnector {
Connection connection = null;
String dbURL = "jdbc:mysql://localhost:3306";
String userName;
String password;
public DBConnector() {
// TODO Auto-generated constructor stub
}
public Connection tryConnection(String username, String password){
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
connection = DriverManager.getConnection(dbURL, username, password);
System.out.println("Connected");
} catch (InstantiationException e) {
System.out.println("No Connection");
e.printStackTrace();
} catch (IllegalAccessException e) {
System.out.println("Connection Refused");
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
System.out.println("Sql Ex");
// TODO Auto-generated catch block
e.printStackTrace();
}
return connection;
}
}
そして、これがメソッドを実行するための私のメインクラスです。
public class MainTest {
public static void main(String[] args) {
DBConnector dbc = new DBConnector();
dbc.tryConnection("", "");
}
}
これは、「Localhost」でテストを実行することと関係があるのでしょうか?
どうもありがとう!