【发布时间】:2016-02-22 04:02:07
【问题描述】:
我正在尝试从 mysql 表中读取数据,并且正在执行以下操作:
protected void pushRegisteredStudentsData() {
try {
conn = (Connection) DriverManager.getConnection(DB_URL, USER, PASS);
stmt = conn.createStatement();
String userID = "SELECT * FROM STUDENT";
rs = stmt.executeQuery(userID);
while (rs.next()) {
int id = rs.getInt("ID");
this.studentID = id;
String insertSql = "INSERT INTO REGISTEREDSTUDENTS(StudentID, ModuleCode) VALUES ('" + studentID + "', + '"
+ this.moduleCode + "')";
System.out.println("Inserting into REGISTEREDSTUDENTS.. [" + id + "]" + "[" + this.moduleCode + "]");
stmt.executeUpdate(insertSql);
}
} catch (SQLException e) {
}
}
..但出于某种原因,
while (rs.next()) {
int id = rs.getInt("ID");
总是返回相同的 ID,即使表格每一行都有不同的 ID!
有人知道为什么会这样吗? 先感谢您! :(
编辑: 我使用单个语句执行 2 次更新,这导致了问题!
【问题讨论】:
-
请直接粘贴您的代码。你试过
int id = Integer.parseInt(rs.getObject(1)) -
ID 列是否唯一,这意味着学生表中是否可以有多个具有相同 ID 的行?
-
不,因为我以为我不想通过绝对值获取对象,而是逐行读取。@YassinHajaj
-
@DBug ID 是唯一的!
-
你的ID栏是哪一栏?如果是第一个,我提供的代码应该适用于每一行。