尽管 Rahul Tripathi 的回答会起作用,但它会使您的应用程序遭受 SQL 注入攻击,这意味着我可能会通过输入类似的内容来破坏您的应用程序
'; drop table mytable;
在用户名字段中。由于用户名与 SQL 的其余部分连接在一起,因此将执行以下操作:
SELECT * from mytable WHERE username=''; drop table mytable;
这显然不是你想要的!
相反,使用参数和准备好的语句:
String username = //get entered username from somewhere
String password = //get entered password from somewhere
Connection connection = //get database connection
String sqlString = "SELECT * from mytable WHERE username=? and password=?";
PreparedStatement login = connection.prepareStatement(sqlString);
login.setString(1, username);
login.setString(2, password);
ResultSet rs = login.executeQuery();
这不是一个完整的解决方案,您需要处理异常并处理 ResultSet ...