Java 使用PrepareStatement对象从JTextField获取密码
我正在用java netbeans创建一个简单的登录应用程序。我已经与MS Access数据库建立了连接,我正在其中存储用户名及其密码 假设如果我想从JTextField中获取文本,我将使用PrepareStatement对象进行查询。例如,“ps”是PrepareStatement的对象,现在要从我编写的JTextField中获取文本,Java 使用PrepareStatement对象从JTextField获取密码,java,database,ms-access,Java,Database,Ms Access,我正在用java netbeans创建一个简单的登录应用程序。我已经与MS Access数据库建立了连接,我正在其中存储用户名及其密码 假设如果我想从JTextField中获取文本,我将使用PrepareStatement对象进行查询。例如,“ps”是PrepareStatement的对象,现在要从我编写的JTextField中获取文本,ps.setString(1,jTextField1.getText()) 由于JPasswordField返回一个字符数组,如何使用PrepareStatem
ps.setString(1,jTextField1.getText())代码>
由于JPasswordField
返回一个字符数组,如何使用PrepareStatement
对象“ps”从JPasswordField
获取密码?只需从char[]
创建一个新的字符串即可
ps.setString(1, new String(jPasswordField.getPassword()));
只需从char[]
创建一个新的String
ps.setString(1, new String(jPasswordField.getPassword()));
提示:Swing有一个特殊的JPasswordField,它返回的是char[],而不是字符串,这是有原因的。如果你对你正在做的事情很认真,你真的必须研究和理解这些细节;例如,我知道它为什么会返回一个字符数组,这就是为什么我问是否有其他方法可以从JPasswordField获取密码,而不必像下面建议的那样将其转换为字符串。它是专门为安全原因而设计的。另一种方法是创建自己的预处理语句实现,该实现重载setString以获取char[]数组。提示:Swing有一个特殊的JPasswordField,这是因为它返回的是char[]而不是字符串。如果你对你正在做的事情很认真,你真的必须研究和理解这些细节;例如,我知道它为什么会返回一个字符数组,这就是为什么我问是否有其他方法可以从JPasswordField获取密码,而不必像下面建议的那样将其转换为字符串。它是专门为安全原因而设计的。另一种方法是创建自己的预处理语句实现,该实现重载setString以获取char[]数组。