java - 将变量放入 SQL 语句中 (Java/SQL)

标签 java sql

所以我有两个表格,Student 和 Klas_student,如下所述。

学生

CREATE TABLE IF NOT EXISTS Studenten(
Studentenummer varchar(7) CHECK (Studentenummer ~'[0-9A-ZA-Z]{7}'),
}

克拉斯

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

正如您在 Klas_student 中看到的那样,Student 引用了表 Studenten 中的 Studentnumber。现在在java中我需要从Studenten获取studentenummer并将其放入Klas_student中。

为此,我执行一个查询并从 Studenten 获取所有 Studentenummer。

sql = "INSERT INTO Studenten " + "VALUES ('1559335')";
statement2.executeUpdate(sql);

然后我想从中获取值(value),我做到了:

String studentnummer = result.getString(1).toString();
sqlStudenToKlas = "INSERT INTO Klas " + "VALUES (studentnummer)";
statement2.executeUpdate(sqlStudenToKlas);
conn.commit();

但是在 sqlStudentToKlas 中,它不将 Studentnummer(result.getString(1)) 字符串作为参数。

有人知道如何将 result.getString(1) 作为值中的参数/变量传递吗?

提前致谢。

最佳答案

此处错误:

sqlStudenToKlas = "INSERT INTO Klas " + "VALUES (studentenummer)";

您传递字符串studentenummer,而不是它的值。尝试:

sqlStudenToKlas = "INSERT INTO Klas " + "VALUES (" + studentenummer+")";

sqlStudenToKlas = "INSERT INTO Klas " + "VALUES ('" + studentenummer+"')";

关于java - 将变量放入 SQL 语句中 (Java/SQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30820130/

相关文章:

java - 为什么在 Apache Tomcat 服务器上运行时无法访问 .properties 文件?

java - 为什么使用 DateTimeFormatter 进行日期解析会根据 Java 版本给出不同的结果

sql - 如何在具有多个数据集的 SQL Server 报告中创建报告文本框聚合表达式

php - 选择阻止 user1 访问 user2(反之亦然)

Java resultset.next() 不返回结果

java - 邮件未呈现 html 并且格式损坏

java - 在 Java 中制作/允许方法的单一执行

java - 为什么我的方法看不到传递给它们的参数?

sql - 从excel导入数据并插入sql表

mysql - 合并来自同一个表的 2 个 MYSQL 计数查询