gpt4 book ai didi

java - 使用 JDBC 将数据添加到 postgreSQL 中的表的正确方法?

转载 作者:行者123 更新时间:2023-11-29 11:56:06 25 4
gpt4 key购买 nike

这是我在这里的第一篇文章,如果我的格式不正确/难以阅读,我会更改它。请告诉我。

我一直在使用 JDBC 尝试使用用户输入数据将基本数据添加到数据库中。用户提供名字和姓氏、电子邮件,并使用随机函数生成用户 ID。

数据库是使用 postgreSQL 创建的。我正在尝试添加到名为 account 的表,其中包含以下列 - user_id (integer)、first_name (varchar(100))、last_name (varchar(100))、email (varchar(500))。

我的程序能够成功连接到数据库,但无法向表中添加数据。

在下面的代码中,firstName、lastName 和 eMail 都是字符串,而 sID 是一个 int。

state = conx.prepareStatement("INSERT INTO accounts VALUES ("+ sID +","+ firstName + "," + lastName + "," + eMail) + ")");

s.executeUpdate();

通常情况下,我希望将数据添加到表中,这样我们就可以到此为止了,但我收到了错误。

org.postgresql.util.PSQLException: ERROR: column "v" does not exist
Position: 36
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2440)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2183)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:308)
at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:441)
at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:365)
at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:143)
at org.postgresql.jdbc.PgPreparedStatement.executeUpdate(PgPreparedStatement.java:120)
at Main.main(Main.java:49)
org.postgresql.util.PSQLException: ERROR: column "v" does not exist
Position: 36

最佳答案

使用 ? 作为参数,而不是连接它们的值。另外,您应该在 INSERT 语句中命名列。例如:

s = conx.prepareStatement(
"INSERT INTO accounts (id, first_name, last_name, email) " +
"VALUES (?, ?, ?, ?)"
);
s.setInt(1, sID);
s.setString(2, firstName);
s.setString(3, lastName);
s.setString(4, email);
int affectedRows = s.executeUpdate();

关于java - 使用 JDBC 将数据添加到 postgreSQL 中的表的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55581578/

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