`
jackleechina
  • 浏览: 587529 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类

con.setAutoCommit(false)

    博客分类:
  • jdbc
 
阅读更多
一)
con.commit();是自己手动提交事务
con.setAutoCommit(true);是让JDBC自动提交事务。
con.rollback();是取消提交
如果你直接用过SQL在数据库软件中操作过数据就会明白了:
SQL语句如果不commit()的话,你看到的数据只是在缓存中被修改了并没有真正影响到储存在数据库中的数据,只有提交以后才真正改变了数据库中的数据。


二)
con.commit();是自己手动提交事务
con.setAutoCommit(true);是让JDBC自动提交事务。
con.rollback();是取消提交回滚数据

如果con.setAutoCommit(true),在对数据库操作后,数据已真实的更新到数据库里,不需要再用commit,此时调用con.rollback()也不起用了

如果设成false,那就是JDBC不自动提交,需要手动的使用commit或者rollback来进行提交或者回滚数据.

查询的时候是不需要进行事务控制的,只要在对数据库多个不同数据需要同步处理的时候才需要事务控制.比如银行取款,他必须有一个取款记录和帐户变化记录一起发生,单独发生一个是不行的,这时候就可以设成false,在两个操作都完成以后使用commit来一起提交.如果其中一个出现问题了,那就直接用rollback把两个都进行回滚,以保证数据一直性

摘自:http://topic.csdn.net/t/20060928/09/5053329.html
分享到:
评论

相关推荐

    携程网数据建表SWAP.PDF

    con.setAutoCommit(false); st=con.createStatement(); String sql="insert into dept(name) values('gaoyajun')"; int i=st.executeUpdate(sql); con.commit(); System.out.println(i); }catch...

    mySQL事务处理

    con.setAutoCommit(false); // 设置连接不自动提交,即用该连接进行的操作都不更新到数据库 sm = con.createStatement(); // 创建Statement对象 //依次执行传入的SQL语句 for (int i = 0; i < sqls.length;...

    开发中的java中的事务

    在这个示例中,首先通过`con.setAutoCommit(false)`关闭了连接的自动提交模式,这样所有后续的数据库操作都不会立即生效,而是等待事务结束时手动提交。如果执行过程中发生异常,可以通过`con.rollback()`来撤销所有...

    oracle中的Blob和Clob区别

    con.setAutoCommit(false); Statement st = con.createStatement(); // 插入空CLOB st.executeUpdate("insert into TESTCLOB(ID, NAME, CLOBATTR) values (1, 'thename', empty_clob())"); // 查询并更新...

    java操作clob

    con.setAutoCommit(false); // 创建 Statement Statement st = con.createStatement(); // 插入空 CLOB st.executeUpdate("INSERT INTO TESTCLOB (ID, NAME, CLOBATTR) VALUES (1, 'thename', EMPTY_CLOB())"); /...

    详解jdbc实现对CLOB和BLOB数据类型的操作

    con.setAutoCommit(false); Statement st = con.createStatement(); ResultSet rs = st.executeQuery("select CLOBATTR from TESTCLOB where ID=1"); if (rs.next()) { java.sql.Clob clob = rs.getClob("CLOBATTR...

    JDBC事务处理机制探秘

    con.setAutoCommit(false); dbc.executeUpdate("delete from bylaw where ID=" + sID); dbc.executeUpdate("delete from bylaw_content where ID=" + sID); dbc.executeUpdate("delete from bylaw_affix where ...

    使用java调用timesten实现Oracle入库

    con.setAutoCommit(false); // 准备执行存储过程 PreparedStatement pstmt = null; String sql = "{call p_insert(?,?)}"; pstmt = con.prepareCall(sql); // 设置参数值 pstmt.setInt(1, 1); pstmt....

    java事务处理

    con.setAutoCommit(false); // 关闭JDBC默认的自动提交模式 dbc.executeUpdate("delete from bylaw where ID=" + sID); dbc.executeUpdate("delete from bylaw_content where ID=" + sID); dbc.executeUpdate(...

    JSP 多条SQL语句同时执行的方法

    为了避免这些问题,我们可以将`con.setAutoCommit(false)`,这样可以手动控制事务的提交。在执行多条SQL语句后,使用`con.commit()`一次性提交所有操作。这样做有以下好处: 1. **事务管理**:当设置`autoCommit`为...

    JAVA设置手动提交事务,回滚事务,提交事务的操作

    con.setAutoCommit(flag); } 其中,con是数据库连接对象,flag是一个布尔值,true表示自动提交,false表示手动提交。 二、手动提交事务 手动提交事务是指在执行多个SQL语句后,才提交事务。这种方式可以确保多个...

    Java高效实现批处理Excel数据导入数据库代码.docx

    con.setAutoCommit(false); // 关闭自动提交 pst = con.prepareStatement(sql); Vector[]> v = readExcel(filePath); for (Cell[] cells : v) { int j = 0; pst.setString(++j, cells[j].getContents()); // ...

    Java基于JDBC实现事务,银行转账及货物进出库功能示例

    例如,使用con.setAutoCommit(false)方法可以关闭自动提交,通过con.commit()方法可以提交事务,通过con.rollback()方法可以回滚事务。 在银行转账和货物进出库等领域,事务操作需要满足以下要求: 1. 转账业务:...

    在Oracle下开发JAVA程序的问题解答.pdf

    con.setAutoCommit(false); stmt.executeUpdate("insert into tb_file values('aaa.gif', empty_blob())"); ResultSet rs = stmt.executeQuery("select detail from tb_file where name='aaa.gif' for update"); if ...

    在Java中如何使用事务

    con.setAutoCommit(false); // 关闭自动提交 pstmt = con.prepareStatement(selectSql); pstmt.setString(1, src.getAccount()); rs = pstmt.executeQuery(); if (!rs.next()) { throw new SQLException("源...

    ORACLE9i连接java

    con.setAutoCommit(false); // 关闭自动提交 PreparedStatement pstmt1 = con.prepareStatement(sql1); pstmt1.executeUpdate(); PreparedStatement pstmt2 = con.prepareStatement(sql2); pstmt2....

    事务处理与异常处理全面的讲解

    con.setAutoCommit(false); try { // 事务中的操作 con.commit(); } catch (Exception e) { con.rollback(); // 处理异常 } ``` 2. **JTA(Java Transaction API)事务**:适用于分布式事务处理,可以在多个...

Global site tag (gtag.js) - Google Analytics