为什么会这样?(oracle数据库连jdbc问题)

yumenman 2005-02-28 02:54:12
sql = "update fs_user a set a.user_name = '1' where a.user_id=?";
PreparedStatement pst = conn.prepareStatement(sql4);
int i=-1;
i = pst.setString(1, "1");
pst.executeUpdate();
System.out.println(i)//打印结果i=1

我用的是oracle的数据库。
此前因为别的原因已经conn.setAutoCommit(false)了。

现在执行后,数据库中的值却没有变。

是不是要conn.commit()?
可是会出错。

究竟该如何使得pst.executeUpdate();能在数据库中被执行?

...全文
109 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
magie16036936 2005-03-01
  • 打赏
  • 举报
回复
sql4在那里?
liuchuntao 2005-03-01
  • 打赏
  • 举报
回复
同意 eureka0891
eureka0891 2005-03-01
  • 打赏
  • 举报
回复
要commit,不然只能等你断开连接时才能提交到数据库里
dongyang3 2005-02-28
  • 打赏
  • 举报
回复
是正确的呀,说明你的SQL维护了1条数据,但是因为你设定conn.setAutoCommit(false),而你没有提交所以你的数据没有变化。如果你提交的话,这条SQL将会影响1条数据。当i<=0时说明你的SQL没有update成功需要rollback。
if (i > 0) {
con.commit();
isSuccess = true;
strResult = "数据维护成功!";
}
else {
con.rollback();
strResult = con.getErrMsg();
isSuccess = false;
strResult = "数据维护失败!失败原因是" + strResult;
}
coffeemilk 2005-02-28
  • 打赏
  • 举报
回复
应该要提交

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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