`

connection的autoCommit

    博客分类:
  • DB
 
阅读更多
JDBC中的Connection的属性autocommit是默认为true的,就是说自动提交事务,当每执行一个update、delete、insert语句的时候都会自动提交到数据库,无法回滚事务。

设置connection.setAutoCommit(false),即设置autoCommit为false时,就是说这个连接不自动提交,须手动conn.commit()来提交到数据库,只有conn.commit(),才会真正提交事务,才会将先前执行的语句一起提交到数据库(即执行commit()才会提交之前所有的数据库操作),否则都不会提交,这样就实现了数据库的事务。一旦commit, 事务就会提交,就不可回滚。

所以在使用时应先调用conn.setAutoCommit(false),然后执行完所有数据库操作语句后就可以conn.commit()提交,异常时conn.rollback()回滚,用jdbc实现对事务的控制。

如果不设置autoCommit为false,后面调用con.commit()或con.rollback()方法则一定会报SQLException(报错为:已经设置了autocommit,不能再commit)。

资料:
http://blog.csdn.net/xiayimiaokuaile/article/details/6422032
http://blog.csdn.net/seablue_xj/article/details/4857273
分享到:
评论

相关推荐

    MySQLDriver.rar

    通过设置MySqlConnection的AutoCommit属性为false,可以启用手动提交或回滚事务: ```csharp connection.AutoCommit = false; try { // 执行一系列操作 connection.Commit(); // 提交事务 } catch { connection....

    常用的JDBC类与方法

    * void setAutoCommit(boolean autoCommit) throws SQLException:设定 Connection 类对象的 AutoCommit 状态 * void commit() throws SQLException:确定执行对数据库新增、删除或修改记录的操作 * void rollback()...

    hibernate.properties

    #hibernate.connection.provider_class org.hibernate.connection.DriverManagerConnectionProvider #hibernate.connection.provider_class org.hibernate.connection.DatasourceConnectionProvider #hibernate....

    hibernate保存不到数据1

    描述提到了一个具体的解决方案,即通过在`hibernate.cfg.xml`配置文件中设置`connection.autocommit`属性为`true`来解决数据无法持久化的问题。 在深入讨论这个问题之前,首先我们需要理解Hibernate是什么。...

    基于ssh的proxool连接池配置

    6. `hibernate.connection.autocommit`设置为`true`,表示每个数据库操作都在其自己的事务中自动提交。 7. `hibernate.show_sql`设置为`true`,这样Hibernate会打印出执行的SQL语句,方便调试。 8. 关键配置项`...

    oracle jdbc驱动 ojdbc14-10.2.0.4.0.jar工具

    3. **JDBC Connection Pooling**:JDBC连接池允许重用数据库连接,减少创建和关闭连接的开销。Oracle JDBC驱动支持JNDI数据源,可以通过Web服务器或应用服务器的内置连接池进行配置。 4. **DataSource接口**:通过...

    pymysql-connection-manager:pymysql连接和池管理器

    参数'autocommit'默认为True 添加了参数“时区”,默认为“ +00:00” 默认使用pymysql.cursors.DictCursor 数据库连接丢失后重新连接 添加用于创建连接,mysql警告,异常,数据库查询等的日志。 使用with ... ...

    Hibernate的配置文件

    <property name="hibernate.connection.autocommit">false ``` 3. **方言(Dialect)**:指定数据库对应的Hibernate方言,确保SQL语句与数据库兼容。例如: ```xml <property name="hibernate.dialect">org....

    JDBC连接数据库里面有各数据库的应用说明

    - 使用`Connection.setAutoCommit(boolean autoCommit)`方法可以开启或关闭自动提交模式。默认情况下,自动提交是开启的。 - 示例:`connection.setAutoCommit(false);` 2. **提交事务**: - 当关闭自动提交后,...

    Php函数索引(很全的)

    `ada_autocommit(int connection_id, int [OnOff])`,`connection_id`是数据库连接ID,`OnOff`可选,用于设置自动提交的状态。返回值表示当前自动提交的状态,打开时返回`true`,关闭时返回`false`。 5. **Ada_...

    jdbc连接数据库的方式2

    MySQL目前提供的java驱动程序为Connection/J,可以从MySQL官方网站下载,并找到mysql-connector-java-3.0.15-ga-bin.jar文件,此驱动程序为纯java驱动程序,不需做其他配置。 2、动态指定classpath 如果需要执行...

    JAVA_java数据库连接池[借鉴].pdf

    3. **事务处理**:利用Connection的AutoCommit属性,可以手动开启和提交事务,提高事务处理的灵活性和性能。 4. **空闲池管理**:为了优化连接分配和释放,可以设立一个空闲连接池,当用户请求连接时,优先从空闲池...

    Hibernate配置文件.pdf

    - `hibernate.connection.autocommit`: 设置是否开启自动提交,默认为`false`。 - `mapping resource`: 指定映射文件的位置,例如`cn/Customers.hbm.xml`。 3. **映射文件(.hbm.xml)**: - 映射文件定义了Java...

    tomcat下面配置连接池

    - **hibernate.connection.autocommit**: 自动提交模式。 - **hibernate.show_sql**: 是否显示SQL语句。 - **connection.useUnicode/connection.characterEncoding**: 字符编码。 - **hibernate.format_sql**: 格式...

    jbpm_jboss+oracle

    - 其他属性如`hibernate.connection.autocommit`、`hibernate.max_fetch_depth`、`hibernate.hbm2ddl.auto`和`hibernate.show_sql`也应根据实际需求进行调整。 接下来,需要在jbpm-installer目录下的standalone....

    常用jdbc包和面试题

    若需手动控制事务,需关闭AutoCommit,如`connection.setAutoCommit(false)`。 掌握好这些JDBC知识点和面试题,不仅能帮助你理解数据库操作的基础,还能在面试中表现出扎实的数据库编程能力。记得在实际开发中结合...

    JDBC使用指南

    `Connection`对象的`autoCommit`属性控制着事务的行为: - **`autoCommit = true`**:默认设置,表示每次执行DML(数据操纵语言,如INSERT、UPDATE、DELETE)操作后,都会立即提交事务,这意味着每个操作都是独立的...

    自己写的关于mysql链接的类,适合新手

    mysqli_autocommit($this->connection, false); } public function commit() { mysqli_commit($this->connection); } public function rollback() { mysqli_rollback($this->connection); } ``` 在实际应用中...

    java业务层框架开发ibatis(java源码)

    public void setAutoCommit(boolean autoCommit) throws SQLException { } public boolean getAutoCommit() throws SQLException { return false;} public void commit() throws SQLException { } public void ...

    java解析xml根式数据

    1. 获取 `Connection`,并设置 `autoCommit` 为 `false`。 2. 尝试执行多个 DML 语句。 3. 如果没有异常发生,则调用 `commit()` 提交事务。 4. 如果出现异常,则调用 `rollback()` 回滚事务。 ### 5. 批量操作 ...

Global site tag (gtag.js) - Google Analytics