如何使用用户的输入更新表

时间:2016-03-30 05:46:05

标签: java sql jdbc

所以就是这样,我正在尝试更新我的表格,更新用户输入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;

我的查询有什么问题?

2 个答案:

答案 0 :(得分:1)

  

执行查询方法不能用于更新

resultSet = updateExamMark.executeQuery(); 

更改为

int r = updateExamMark.executeUpdate(); 

您应该使用executeUpdate()执行非选择查询。

答案 1 :(得分:0)

您需要将executeQuery()更改为executeUpdate(),因为第一种方法用于执行SELECT次查询。当您需要更新(INSERTDELETEUPDATE ...)时,您必须使用第二个。

所以声明

resultSet = updateExamMark.executeQuery(); 

会将SELECT语句的所有结果都返回resultSet。将此声明更改为

int rowsAffected = updateExamMark.executeUpdate(); 

将返回受更新影响的行数。