gpt4 book ai didi

Java JDBC 登录表单

转载 作者:搜寻专家 更新时间:2023-10-30 20:00:05 24 4
gpt4 key购买 nike

我似乎无法在我的 Java JTextfield 和 Passwordfield 上获取密码和用户名,我试图做的是比较用户输入并检查它们是否将用户名和密码存储在数据库中,如果是的话它们会已登录,但问题是我的密码字段上的 getText() 已被弃用,我该如何解决这个问题??

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.*;
import javax.swing.JOptionPane;

public class Login extends JFrame {

private JLabel nameLabel;
private JLabel passwordLabel;
private JTextField nameText;
private JPasswordField passwordField;
private JButton submitButton;
Connection conn = null;

public Login(){

super("Log in!");
setLayout(new FlowLayout());
setVisible(true);
setSize(178,190);
setDefaultCloseOperation(EXIT_ON_CLOSE);

nameLabel = new JLabel("User ID: ");
add(nameLabel);

nameText = new JTextField(10);
add(nameText);

passwordLabel = new JLabel("Password: ");
add(passwordLabel);

passwordField = new JPasswordField(10);
add(passwordField);

submitButton = new JButton("Submit");
add(submitButton);

ButtonHandler handler = new ButtonHandler();
submitButton.addActionListener(handler);
}

private class ButtonHandler implements ActionListener{

public void actionPerformed(ActionEvent e){

String user = nameText.getText();
String pass = passwordField.getText();
try{
Jdbc test = new Jdbc();
conn = test.dbConn();
String query = "SELECT employee_ID,employee_password FROM user where ='"+user+"'";

}catch(Exception eee){
eee.printStackTrace();
}
}
}
}

最佳答案

使用getPassword()而不是 getText() 方法。

  char []passChars=passwordField.getPassword();
if(passChars!=null) {
String pass=new String(passChars);
String sql="SELECT employee_ID,employee_password FROM user
where user=? and employee_password=?";
PreparedStatement ps=conn.prepareStatement(sql);
ps.setString(1,user);
ps.setString(2,pass);
ResultSet rs=ps.executeQuery();
if(rs.next()) {
//found
}
else{
//not found
}
rs.close();
ps.close();
conn.close();
}

值得注意的一点是不要使用硬编码的sql语句。使用PreparedStatement 对字符串进行转义以防止SQL 注入(inject)。

关于Java JDBC 登录表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8426275/

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