所以就是这样,我正在尝试更新我的表格,更新用户输入exam
值的student
标记。
所以我正在使用此查询。
updateExamMark = connection.prepareStatement("UPDATE Results SET exam= ? WHERE student = ?");
这是我的方法(不是完整的代码)
public List< Results > updateExamMark( int exam, String student )
{
List< Results > results = null;
ResultSet resultSet = null;
try
{
updateExamMark.setInt(1, exam );
updateExamMark.setString(2, student);
// executeQuery returns ResultSet containing matching entries
resultSet = updateExamMark.executeQuery();
results = new ArrayList< Results >();
我收到此错误&#34;执行查询方法无法用于更新&#34;
我的查询有什么问题?
答案 0 :(得分:1)
执行查询方法不能用于更新
resultSet = updateExamMark.executeQuery();
更改为
int r = updateExamMark.executeUpdate();
您应该使用executeUpdate()
执行非选择查询。
答案 1 :(得分:0)
您需要将executeQuery()
更改为executeUpdate()
,因为第一种方法用于执行SELECT
次查询。当您需要更新(INSERT
,DELETE
,UPDATE
...)时,您必须使用第二个。
所以声明
resultSet = updateExamMark.executeQuery();
会将SELECT
语句的所有结果都返回resultSet
。将此声明更改为
int rowsAffected = updateExamMark.executeUpdate();
将返回受更新影响的行数。