我遇到了数据库问题,创建了一个登录屏幕,其中有 1 个选择框、1 个用于用户名的文本字段、1 个用于密码的 jpasswordfield。数据库名称-admin(用户名文本,密码文本)
它显示一个错误。我怎样才能解决这个问题。
这是我的代码:
if(choice.getSelectedIndex()==1)
{
try {
String sql ="SELECT password FROM admin WHERE username = ? AND password = ?";
pst = con.prepareStatement(sql);
pst.setString(1, UserName.getText());
/*Showing: "The method setString(int, String) in the type
PreparedStatement is not applicable for the arguments (int, char[])*/
pst.setString(2,passwordField.getPassword());
}
catch(Exception e) {
JOptionPane.showMessageDialog(null, e);
}
}
Run Code Online (Sandbox Code Playgroud)
在将char[]数组传递给语句之前将数组转换为字符串:
String sql = "SELECT password FROM admin WHERE username = ? AND password = ?";
pst = con.prepareStatement(sql);
pst.setString(1, UserName.getText());
pst.setString(2, new String(passwordField.getPassword()));
Run Code Online (Sandbox Code Playgroud)
如果您查看Javadoc,您会发现其中一个String构造函数实际上接受 achar[]作为输入。