为什么我的表中的数据无法更新?

时间:2010-12-07 07:40:23

标签: java database jdbc

我想使用java更新数据库中的数据。我已成功建立连接,当我更新表时,数据不会在数据库中更新。

我的SQL就像这样::

UPDATE  tbl_Bus SET Bus_locX= 520.0,Bus_locY=220.0 WHERE Bus_ID=1

当我在MS Access中直接在sql编辑器中使用它时,该语句不能更新我的表格。

我的tbl_Bus

Bus_ID,Bus_LocX,Bus_LocY,Bus_RouteID

,即使在运行我的应用程序后,相应的数据仍为1,1,1,1 ..

我的代码

public boolean update_busLoc(double x,double y,int id)
{
    String query="UPDATE  tbl_Bus SET Bus_locX= "+ x +",Bus_locY="+y + " WHERE Bus_ID="+id;
    System .out.println(query);
    if (DB_connection!=null){
            try{
                     statement.execute(query);
                     return true;

                 }
            catch(SQLException e){
                    e.printStackTrace();
                return false;
            }
    }
    else{
        System.out.println("Connection is not set up");
        return false;
    }

}

我使用MS Access 2007 我能够执行SELECT语句,它工作正常,但有更新我有问题.. 我该如何解决这个问题?

4 个答案:

答案 0 :(得分:3)

替换

stmt.execute(query);

stmt.executeUpdate(query);

答案 1 :(得分:2)

使用executeUpdate而不是执行

答案 2 :(得分:2)

您的连接是否设置为自动提交?这可能是问题

答案 3 :(得分:1)

我希望这是完整的帮助

  1. 用executeUpdate替换execute

  2. 使用preparedStatement而不是语句

    PreparedStatement pstmt = con.prepareStatement(“UPDATE tbl_Bus SET Bus_locX = ?, Bus_locY =?WHERE Bus_ID =?”);      pstmt.setDouble(1,x);      pstmt.setString(2,y);      pstmt.setInt(3,id);

     if (DB_connection!=null){
             try{
                   pstmt.executeUpdate();
                      return true;
    
    
    
              }
         catch(SQLException e){
                 e.printStackTrace();
             return false;
         }
    
    } else{ System.out.println("Connection is not set up"); return false; }