无法使用java更新mysql中的列值?
我在mysql中创建了一个表,其中有一列“Sno”。并在“Sno”列中插入1到10。我想根据Sno更新列值,但无法这样做。请帮帮我。多谢各位 这是我的代码无法使用java更新mysql中的列值?,java,mysql,Java,Mysql,我在mysql中创建了一个表,其中有一列“Sno”。并在“Sno”列中插入1到10。我想根据Sno更新列值,但无法这样做。请帮帮我。多谢各位 这是我的代码 int o=2,q=0; ResultSet rs = st7.executeQuery("select * from table"); ResultSetMetaData metadata = rs.getMetaData();//here is columns are added dynamically,So that is metad
int o=2,q=0;
ResultSet rs = st7.executeQuery("select * from table");
ResultSetMetaData metadata = rs.getMetaData();//here is columns are added dynamically,So that is metadata is needed.
BufferedReader br1 = new BufferedReader(new FileReader(f1));//here f1 is csv file path.
while ((line1 = br1.readLine()) != null) {
String[] splits = line1.split(",");//splitting line by ',' and storing into array.
n1 = splits.length;
for (m = 0; m < n1; m++) {
st8.executeUpdate("UPDATE table SET " + metadata.getColumnName(o) + "='" + splits[m] + "' WHERE Sno='"+q+"'");
o++;
}
q++;
out.println("<br>");
}
使用
因为table是一个保留字
你可能有其他问题,但这肯定会打破它
而且…您应该正确地参数化查询。它也可能因为输入带有单引号等原因而中断。我认为查询应该是这样的 “更新表集”+元数据。getColumnName(o)+“=”+拆分[m]+”其中Sno=“+q 只有双引号,没有单引号
希望它能工作如果有错误,你会得到什么?
table
是MySQL中的保留关键字。请为您的表使用其他合适的名称。
+--------+--------+--------+--------+---------+-----------+
|Sno | col1 | col2 | col3 | col4 | col5 |
+--------+--------+--------+--------+---------+-----------+
| 0 | NULL | NULL | NULL | NULL | NULL |
+--------+--------+--------+--------+---------+-----------+
| 1 | NULL | NULL | NULL | NULL | NULL |
st8.executeUpdate("UPDATE `table` SET " + metadata.getColumnName(o) + "='" + splits[m] + "' WHERE Sno='"+q+"'");