我正在 try catch 和存储用户详细信息(名称、密码等)并将它们存储在 SQL 数据库中,以便用户将来登录时使用。
如何将详细信息保存为数据库中的一行,同时将它们作为单独的字符串输入? 另外,如何捕获和存储从组合框中选择的性别(男,女)等详细信息?谢谢。
private class achandler implements ActionListener {
@Override
public void actionPerformed(ActionEvent ae) {
//capture user details
String fnamevalue = fnametext.getText();
String lnamevalue = lnametext.getText();
String usernamevalue = usernametext.getText();
char[] pwdvalue = pwdtext.getPassword();
char[] pwdrptvalue = pwdrpttext.getPassword();
if(pwdvalue == pwdrptvalue) {
//add user details to an array
String[] userdetail = {fnamevalue, lnamevalue, usernamevalue, pwdvalue.toString()};
try {
Class.forName("com.mysql.jdbc.Driver");
String Url = "jdbc:mysql://localhost/nsibirwa?" +
"user=root&password=1234";
Connection con = DriverManager.getConnection(Url);
Statement stmt = con.createStatement();
//I am stuck here!!!! i.e. adding 'userdetail' as a tuple in the database
}
catch (SQLException e) {
System.out.println("SQL Exception: "+ e.toString());
}
catch (ClassNotFoundException cE) {
System.out.println("Class Not Found Exception: "+ cE.toString());
}
}
else {
JOptionPane.showMessageDialog(null, "password not matching!",
"Password error", JOptionPane.ERROR_MESSAGE);
}
}
}
最佳答案
adding 'userdetail' as a tuple in the database
类似于:
Connection con = DriverManager.getConnection(Url);
PreparedStatement stmt = con.prepareStatement("insert into user_details (fname, lname, username, pwd) values (?,?,?,?));
stmt.setString(1, fnamevalue);
stmt.setString(2, lnamevalue);
stmt.setString(3, username);
stmt.setString(4, new String (pwdvalue));
stmt.executeUpdate();
您的代码还有另一个问题:
if (pwdvalue == pwdrptvalue)
你不能不比较这样的对象。您需要将这些 char[] 转换为字符串并使用 equals() 来比较它们。搜索“java string equals”以找出原因。这是非常基础的 Java 知识(我看过的每个教程都有介绍)
假设您有一个名为 user_details
的表,其中包含 fname
、lname
、username
和 列>密码
。如果您的表定义不同,您需要调整插入语句。
Also, how do I capture &store details like gender(Male,Female) selected from a Combobox?
我建议您为此提出第二个问题。您不应该在一个问题中混合完全不同的主题(JDBC/SQL 与普通 Swing)。
关于java - 将java程序(以表单)输入的值添加到sql数据库:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10947567/