Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用PrepareStatement对象从JTextField获取密码_Java_Database_Ms Access - Fatal编程技术网

Java 使用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

我正在用java netbeans创建一个简单的登录应用程序。我已经与MS Access数据库建立了连接,我正在其中存储用户名及其密码

假设如果我想从JTextField中获取文本,我将使用PrepareStatement对象进行查询。例如,“ps”是PrepareStatement的对象,现在要从我编写的JTextField中获取文本,
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[]数组。