我正在为我在大学的安全课程构建一个数据库连接扫描仪。我使用了 DriverManager.getConnection(connectionURL, username, password) ,它似乎工作正常,但有一个我无法理解的例外。如果我输入错误的用户名它仍然返回连接???我的测试代码粘贴在下面。任何指针将不胜感激。如果我输入了错误的密码,它会返回正确的错误,如果我关闭服务器,它会告诉我。但是由于某些未知的原因,它不会告诉我用户名是否错误,就好像它甚至没有检查一样!
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("", "");
}
}
也许这与在“本地主机”上运行测试有关?
非常感谢!