gpt4 book ai didi

java - 准备好的语句和setString

转载 作者:行者123 更新时间:2023-11-30 02:25:14 26 4
gpt4 key购买 nike

我在 setString 方面遇到问题。当我将 % 添加到 setString 中的参数时,即使我不写任何东西它也会起作用。但是,当我删除它时,它不起作用。有人可以帮忙吗?

String Id= User1.getText().toString();
String Passwords = Pass.getText().toString();


btnlogin.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String query = "SELECT * FROM TABLE WHERE id LIKE ? AND pass LIKE ? ";
try {
if (connect != null) {
PreparedStatement statement = connect.prepareStatement(query);
statement.setString(1, Id ); // statement.setString(1 ,"%" + Id + "%");
statement.setString(2 ,Passwords);// statement.setString(2 ,"%" + Passwords + "%");
r = statement.executeQuery();
if (r.next()){

Intent intent = new Intent();
intent.setClass(Login.this, MainActivity.class);
startActivity(intent);
}
else {
message = "Error";
info.setText(message);
}

} else {
message = "Error in connection with SQL server";
info.setText(message);
}


} catch (SQLException e) {
etat = false;
message = "Got an exception!";
System.err.println(e.getMessage());
}


}}); }

PS:我没有收到任何错误

最佳答案

那是因为您的 SQL 查询需要类似的语法。

如果您不想使用%%,请传递直接字符串并将LIKE查询更改为=查询。

SELECT * FROM TABLE WHERE id = ? AND pass = ?

但是使用 like 运算符检查用户名和密码是一个糟糕的主意。始终检查它们是否相等。

关于java - 准备好的语句和setString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45793243/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com