用java更新了数据库,然后查看的时候没有发生变化。然后再用sql update一下的时候,才显示出来,这是为什么

用java update的时候,我更新了5条记录,然后程序运行完,查看数据库没有变化。后来写sql 语句update的时候,就更新了一条,那其他4条才神经兮兮的反映出来,这是为什么啊,不明白。

第1个回答  2011-06-22
是不是没有提交事务啊,commit一下追问

哦 有可能的。
for(int i=bt; i<ft; i++)
{
String sql="UPDATE member SET salary=3000 WHERE ID= "+i ;
st.executeUpdate(sql);
}
就是ID从bt到ft的员工,把salary 改成3000,这样的代码,怎么加上事务的控制啊,没有经验。高手赐教

追答

conn = getConnection();//conn是数据库连接
conn.setAutoCommit(false); //取消自动提交事务.好处是中间做的事情是一个事务
...............................//做你想做的事
//做完后提交事务
conn.commit();
conn.setAutoCommit(true);//恢复原来的自动提交事务

另外,注意处理异常情况啊。出异常的话数据库连接关闭,设置还原啊.

本回答被提问者采纳

...Java里执行SQL语句更新数据,不报错,但是数据库的内容没有更新啊...
大致看了下,你是用的ss创建的update语句,但是你执行的是ps那个,就是你的update语句并没有执行啊,你应该把 tc=ps.executeQuery();改为:ss.executeUpdate();

Java代码中查出数据库中有一条记录,但是把sql拼接好去数据库里面直接查...
可能是之前对该表执行的事务未完成,导致有锁,所以用sql又查不出来,但是java代码能查出来有一条数据。建议先在数据库中查询是否有未完成的事务及是否有锁,如果有,先commit,提交,确保表没锁,这样java查出来就正常了。

为什么用java对象和数据库数据进行比较时出错?
代码看起来没有问题 你在这个数据库操作类里把传过来的个人信息类里的信息先打印出来试试 看看name什么的是不是空的 也就是验证下你设置个人信息的时候有没有成功

请问这段Update语句有什么问题? 程序执行没有任何错误,总是返回...
你在数据库上跑一下 select * from emp_test SET where empno = 你传过来的值 看看这条sql查出来是不是0条吧 你这里的意思是count为0的时候就返回flase

如何查看一个update 语句的执行情况
实验 我们先创建一个测试数据库:快速创建一些数据:连续执行同样的 SQL 数次,就可以快速构造千万级别的数据:查看一下总的行数:我们来释放一个大的 update:然后另起一个 session,观察 performance_schema 中的信息:可以看到,performance_schema 会列出当前 SQL 从引擎获取的行数。等 SQL 结束后,...

你好,java 向数据库添加大量数据时内存溢出 在不改变内存的情况下如何解...
需要注意的时候每次buffer的数据,在用outputstream写入的时候,最好flush一下,将缓冲区清空下;接下来,执行一个没有where条件的SQL,会不会将内存撑爆?是的,这个问题我们值得去思考下,通过API发现可以对SQL进行一些操作,例如,通过:PreparedStatement statement = connection.prepareStatement(sql),这...

java 向数据库添加大量数据时内存溢出 在不改变内存的情况下如何...
需要注意的时候每次buffer的数据,在用outputstream写入的时候,最好flush一下,将缓冲区清空下;接下来,执行一个没有where条件的SQL,会不会将内存撑爆?是的,这个问题我们值得去思考下,通过API发现可以对SQL进行一些操作,例如,通过:PreparedStatement statement = connection.prepareStatement(sql),这...

为啥java用executeUpdate插入数据返回为1,但数据库里没有
确认连接据库是不是你查看的数据库 确认插入表是否你查看的表。另外按照其他人提示看看吧,比如是否用事物,没有commit等等 祝好运,望采纳。

SQL 中UPDATE用法
Update是一个数据库SQL语法用语,用途是更新表中原有数据,单独使用时使用where匹配字段。语法为:UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值 例如:Update table_name Set column_name = new_value Where column_name = some_value ...

java调用mysql存储过程执行后返回了参数正确但没有插入数据也没有报错...
then insert into users values(v_account,v_password,v_sex,v_email,v_QQ);end if;flag=0就执行插入操作,否则直接跳过,不执行 ,也是不会报错的 看一下你的数据库里面是不是有满足这个SQL语句的数据:select count(password) into flag from users where account=v_account;如果有满足的话,...

相似回答