为什么会这样?(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();能在数据库中被执行?

...全文
85 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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
应该要提交
回复
相关推荐
发帖
Java EE
创建于2007-09-28

6.6w+

社区成员

J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
申请成为版主
帖子事件
创建了帖子
2005-02-28 02:54
社区公告
暂无公告