java - 准备好的语句连接错误

标签 java jdbc prepared-statement

我正在尝试使用准备好的语句插入一条记录(到嵌入式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/

相关文章:

PHP - 将 PDO 与 IN 子句数组一起使用

php - Laravel DB::statement CREATE DATABASE 无法添加参数(准备语句?)

Java 使用准备好的语句调用用户定义表函数 DB2

java - Substance UI 和自定义 JComponent 的 TitledBorder 问题

java - 这个简单的代码有问题

java - 如何使用 JDBC 连接一台服务器上的多个数据库?

java - 如何仅使用 jdbc 和标准 sql 进行分页?

mysql jdbc 驱动程序不支持具有多个语句的触发器中的定界符

java - 将 DOM 文档导出为 XML,并将 userData 作为属性

java - 将 List<String> 作为参数传递给 postgres 的函数