这是我在这里的第一篇文章,如果我的格式不正确/难以阅读,我会更改它。请告诉我。
我一直在使用 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/