sql语句有问题,运行下来没问题,但好像pstmt.executeUpdate();不执行

Fetaib 2018-02-06 06:02:04
public void UpOperator(operator operator){ //修改操作员信息
try{
conn = DBConn.getConnection();
String sql="update operator set opName=?,opTName=?,opPass=?,sex=?,opPhone=?,remak=? where opId=?";
pstmt =conn.prepareStatement(sql);
pstmt.setString(1, operator.getOpName());
pstmt.setString(2, operator.getOpTName());
pstmt.setString(3, operator.getOpPass());
pstmt.setString(4, operator.getSex());
pstmt.setInt(5, operator.getOpPhone());
pstmt.setString(6, operator.getRemak());
pstmt.setInt(7,operator.getOpId());
//operator.getOpName()这些测试过都已经是修改以后的数值了
int a= pstmt.executeUpdate();
if(a>0){
JOptionPane.showMessageDialog(null, "修改成功!");
}else{
JOptionPane.showMessageDialog(null, "修改失败!");
}
}catch(Exception e){
e.printStackTrace();
}

}

myeclipse没有报错
...全文
541 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
a15917579239 2018-02-07
  • 打赏
  • 举报
回复
你用DEBUG走一下走到executeUpdate(); 如果这句没报错 就是你where 后面的ID对不上数据库那边需要修改的列
喜氏天狼 2018-02-07
  • 打赏
  • 举报
回复
引用 6 楼 我纯洁全身都纯洁的回复:
第一,可能你where后面的ID没对上,第二可能修改前和修改后的数据一样
有道理。虽然前面已经找到原因。
亲爱的Joe 2018-02-07
  • 打赏
  • 举报
回复
不知道你用的是什么框架,给你两个思路: 1.添加日志,看看有没有打印多余信息 2.查看下真正执行的sql语句,很可能是你的占位符替换失败了,导致sql语句执行不了
  • 打赏
  • 举报
回复
第一,可能你where后面的ID没对上,第二可能修改前和修改后的数据一样
licip 2018-02-06
  • 打赏
  • 举报
回复
pstmt.setInt(7,operator.getOpId()); 没有报错,说明有执行过了,只是可能没有匹配到的数据记录。你看看上面那句的id号,与数据库中记录有没有对应的。
Fetaib 2018-02-06
  • 打赏
  • 举报
回复
引用 4 楼 licip 的回复:
pstmt.setInt(7,operator.getOpId()); 没有报错,说明有执行过了,只是可能没有匹配到的数据记录。你看看上面那句的id号,与数据库中记录有没有对应的。
真的是前面ID弄错了,所以没有修改到
Fetaib 2018-02-06
  • 打赏
  • 举报
回复
我打印过了,发现前面的都是修改后的了,说明pstmt.executeUpdate();没有执行
火老鼠 2018-02-06
  • 打赏
  • 举报
回复
没报错就应该执行了 把 或者在引用它的前面打印一下 把
Fetaib 2018-02-06
  • 打赏
  • 举报
回复
自己顶一下!!!!

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧