如何在java中向准备好的语句添加密码

如何在java中向准备好的语句添加密码,java,sql,passwords,jpasswordfield,Java,Sql,Passwords,Jpasswordfield,任何人都可以用事先准备好的陈述来帮助我解决这个问题。当试图将密码添加到我从JPasswordField获取的语句时,问题就出现了 String Query = "SELECT * FROM Users WHERE Username = ? AND Password = ?"; PreparedStatement PrepedStatement = Con.prepareStatement(Query); PrepedStatement.setString(1, Username.getTex

任何人都可以用事先准备好的陈述来帮助我解决这个问题。当试图将密码添加到我从JPasswordField获取的语句时,问题就出现了

String Query = "SELECT * FROM Users WHERE Username = ? AND Password = ?";

PreparedStatement PrepedStatement = Con.prepareStatement(Query);

PrepedStatement.setString(1, Username.getText());
PrepedStatement.setString(2, Password.getPassword());
//It is no having any of this as getPassword() returns a Char[] which isn't a string

那么有人有什么想法吗。喝彩。

< P>这可能会起作用,但是,我强烈地考虑Elliott Frisch的评论。

字符串具有重载构造函数,可以将字符数组作为参数

setString(2,新字符串(Password.getPassword())


我希望你没有将密码以明文形式存储在数据库中。我是atm,但我可能应该对它们进行加密,不是吗?在输入到单向加密散列时对密码进行加密。你不会有指向该密码的链接,对吗。非常感谢。这篇文章为您提供了一个很好的参考:谢谢,但我可能只是想用Elliott Frisch的方法来做。这是一个非常危险的建议。@HovercraftFullOfEels为什么?因为您告诉我要在数据库中存储一个非伪装的密码字符串,密码现在很容易被发现,您永远不应该推荐它。请看他原始问题评论中的链接。我理解。但这不是我这样回答这个问题的意思。这就是为什么我请他看一下评论。如果是这样的话,我很抱歉。