gpt4 book ai didi

java - 列索引超出范围 : 2, 第 1 列的编号

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:09:28 26 4
gpt4 key购买 nike

我有这个表格:

Klas_student

CREATE TABLE IF NOT EXISTS Klas_student(
Student varchar(7) REFERENCES studenten (Studentenummer) ON DELETE CASCADE NOT NULL,
Klas text NOT NULL REFERENCES Klas (Naam_id) ON DELETE CASCADE NOT NULL
);

在这个表格中我想添加值,我用准备语句这样做。

PreparedStatement studentToKlas = conn.prepareStatement("INSERT INTO Klas_student " + "VALUES (?)");
studentToKlas.setString(1, studentnummer);
studentToKlas.setString(2, klasIdToInsert);

但是这个错误不断出现:

org.postgresql.util.PSQLException: L'indice de la colonne est hors limite : 2, nombre de colonnes : 1.
at org.postgresql.core.v3.SimpleParameterList.bind(SimpleParameterList.java:56)
at org.postgresql.core.v3.SimpleParameterList.setStringParameter(SimpleParameterList.java:118)
at org.postgresql.jdbc2.AbstractJdbc2Statement.bindString(AbstractJdbc2Statement.java:2304)
at org.postgresql.jdbc2.AbstractJdbc2Statement.setString(AbstractJdbc2Statement.java:1392)
at org.postgresql.jdbc2.AbstractJdbc2Statement.setString(AbstractJdbc2Statement.java:1374)
at PerformanceClass$1.run(PerformanceClass.java:73)
at java.lang.Thread.run(Thread.java:724)

它基本上表示列的索引超出限制:2,列数为一。

PerformanceClass.java:73 是这行代码:

 studentToKlas.setString(2, klasIdToInsert);

如您所见,Klas_student 有两个字段,所以我不太理解这个错误。你们有人看到我在做什么了吗?

最佳答案

你有两列,所以你的声明应该是:

"INSERT INTO Klas_student VALUES (?, ?)")

即它应该包含两个占位符,每列一个。

关于java - 列索引超出范围 : 2, 第 1 列的编号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30828801/

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