我想使用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语句,它工作正常,但有更新我有问题.. 我该如何解决这个问题?
答案 0 :(得分:3)
替换
stmt.execute(query);
带
stmt.executeUpdate(query);
答案 1 :(得分:2)
使用executeUpdate而不是执行
答案 2 :(得分:2)
您的连接是否设置为自动提交?这可能是问题
答案 3 :(得分:1)
我希望这是完整的帮助
用executeUpdate替换execute
使用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;
}