我正在尝试使用准备好的语句插入一条记录(到嵌入式java数据库中)。我希望在单击保存按钮(JButton)时输入信息。我是 Java 新手,从未尝试过使用准备好的语句。
我在让我的连接(con)知道它是一个连接时遇到问题。以下代码适用于我放置在操作监听器中的准备好的语句。
请让我知道我做错了什么。非常感谢您的参与。我希望我正确地编写了代码。
String sql = "INSERT INTO Users (UserId, fName, lastName, userName, password) VALUES (?, ?, ?, ?, ?)";
PreparedStatement stmt = con.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
stmt.setString(2, "fName" );
stmt.setString(3, "lastName" );
stmt.setString(4, "userName" );
stmt.setString(5, "password" );
stmt.executeUpdate();
最佳答案
这段代码:
Connection con = DriverManager.getConnection(host, uName, uPass);
表示Connection
con
仅在本地定义。使其成为类成员变量并使用:
con = DriverManager.getConnection(host, uName, uPass);
<小时/>
您似乎没有在 PreparedStatement
中设置第一个参数:
stmt.setString(1, UserId);
此外,您确定要设置参数的文字值吗?
更新:
由于第一个参数是自动生成的,您可能需要:
String sql = "INSERT INTO Users (fName, lastName, userName, password) VALUES (?, ?, ?, ?)";
PreparedStatement stmt = ...
stmt.setString(1, fName);
stmt.setString(2, lastName);
stmt.setString(3, userName);
stmt.setString(4, password);
关于java - 准备好的语句连接错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14094220/