`
sugongqing
  • 浏览: 77406 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

JDBC

    博客分类:
  • java
阅读更多

关键字: jdbc 学习笔记(四)

JDBC 学习笔记(四)

 

五、JDBC中使用Transaction编程事务编程

1. 事务是具备以下特征(ACID)的工作单元:

Ø         原子性(Atomicity)—— 如果因故障而中断,则所有结果均被撤消;

Ø         一致性(Consistency)—— 事务的结果保留不变;

Ø         孤立性Isolation)—— 中间状态对其它事务是不可见的;

Ø         持久性Durability)—— 已完成的事务结果上持久的。

原子操作,也就是不可分割的操作,必须一起成功一起失败

 

2. 事务处理三步曲:(事务是一个边界)

connection.setAutoCommit(false);       //把自动提交关闭

正常的DB操作                     //若有一条SQL语句失败了,自动回滚

connection.commit()           //主动提交

connection.rollback()       //主动回滚

 

Java代码 复制代码
  1. //完整的代码片段:   
  2. try{   
  3.     con.setAutoCommit(false);   //step① 把自动提交关闭   
  4.     Statement stm = con.createStatement();   
  5.     stm.executeUpdate("insert into person(id, name, age) values(520, 'X-Man', 18)");   
  6.     stm.executeUpdate("insert into Person(id, name, age) values(521, 'Super', 19)");   
  7.     //step② 正常的DB操作   
  8.     con.commit();                         //step③ 成功主动提交   
  9. catch(SQLException e){   
  10.     try{   
  11.         con.rollback();   
  12.     } catch(Exception e){ e.printStackTrace(); }    //step③ 失败则主动回滚   
  13. }  
//完整的代码片段:
try{
	con.setAutoCommit(false);   //step① 把自动提交关闭
	Statement stm = con.createStatement();
	stm.executeUpdate("insert into person(id, name, age) values(520, 'X-Man', 18)");
	stm.executeUpdate("insert into Person(id, name, age) values(521, 'Super', 19)");
	//step② 正常的DB操作
	con.commit();                         //step③ 成功主动提交
} catch(SQLException e){
	try{
		con.rollback();
	} catch(Exception e){ e.printStackTrace(); }    //step③ 失败则主动回滚
}

 

 

 

 

 

 

 

 

 

 

 

  try   {
            con   =   ConnectionManager.getConnction();
            con.setAutoCommit(false);//false是什么意思
   ....
            pStatement.executeUpdate();
            con.commit();//commit是什么意思
            con.setAutoCommit(true);//这里又来个true又是什么意思

        }   catch   (SQLException   sqlE)   {
            sqlE.printStackTrace();
            try   {
                con.rollback();//是不是当操作失败的时就回滚呀

            }   catch   (Exception   e)   {
                e.printStackTrace();
            }
        }   finally   {
            try   {
                    pStatement.close();
                  con.close();
            }   catch   (SQLException   e)   {
                e.printStackTrace();
            }

        }       } 
  try   {
            con   =   ConnectionManager.getConnction();
            con.setAutoCommit(false);//false是什么意思
   ....
            pStatement.executeUpdate();
            con.commit();//commit是什么意思
            con.setAutoCommit(true);//这里又来个true又是什么意思

        }   catch   (SQLException   sqlE)   {
            sqlE.printStackTrace();
            try   {
                con.rollback();//是不是当操作失败的时就回滚呀

            }   catch   (Exception   e)   {
                e.printStackTrace();
            }
        }   finally   {
            try   {
                    pStatement.close();
                  con.close();
            }   catch   (SQLException   e)   {
                e.printStackTrace();
            }

        }       }

 

 

 

 

 

 

  try   {
            con   =   ConnectionManager.getConnction();
            con.setAutoCommit(false);//false是什么意思
   ....
            pStatement.executeUpdate();
            con.commit();//commit是什么意思
            con.setAutoCommit(true);//这里又来个true又是什么意思

        }   catch   (SQLException   sqlE)   {
            sqlE.printStackTrace();
            try   {
                con.rollback();//是不是当操作失败的时就回滚呀

            }   catch   (Exception   e)   {
                e.printStackTrace();
            }
        }   finally   {
            try   {
                    pStatement.close();
                  con.close();
            }   catch   (SQLException   e)   {
                e.printStackTrace();
            }

        }       }

分享到:
| JXL
评论

相关推荐

    JDBC简单写法JDBC简单写法JDBC简单写法

    JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单...

    Spring Data JDBC与JDBC的区别

    JDBC规范   java.sql和javax.sql两个包中的类与接口(天龙八部):  DataSource:数据源  DriverManager:驱动管理  Driver:JDBC驱动  Connection:数据库连接  Statement:语句,执行SQL  PrepareStatement:...

    sqlite-jdbc-3.15.1-API文档-中文版.zip

    赠送jar包:sqlite-jdbc-3.15.1.jar; 赠送原API文档:sqlite-jdbc-3.15.1-javadoc.jar; 赠送源代码:sqlite-jdbc-3.15.1-sources.jar; 赠送Maven依赖信息文件:sqlite-jdbc-3.15.1.pom; 包含翻译后的API文档:...

    Java连接达梦数据库驱动dm_jdbc

    Java连接达梦数据库驱动dm_jdbc: dm_jdbc\com.dameng.floader.jar dm_jdbc\com.dameng.impexp.jar dm_jdbc\Dm7Dictionary.jar dm_jdbc\Dm7JdbcDriver14.jar dm_jdbc\Dm7JdbcDriver15.jar dm_jdbc\Dm7JdbcDriver16....

    sqlite-jdbc-3.34.0-API文档-中文版.zip

    赠送jar包:sqlite-jdbc-3.34.0.jar; 赠送原API文档:sqlite-jdbc-3.34.0-javadoc.jar; 赠送源代码:sqlite-jdbc-3.34.0-sources.jar; 赠送Maven依赖信息文件:sqlite-jdbc-3.34.0.pom; 包含翻译后的API文档:...

    log4jdbc监控sql及执行时间

    1、在应用中jdbc url最前面添加jdbc:log4;比如oracle的url就变成了jdbc:log4jdbc:oracle:thin:@x.x.x.x:1521:dbname; 2、在日志系统中设置jdbc.sqlonly、jdbc.sqltiming等日志级别,可直接将log4jdbc doc中的日志...

    jdbc jdbc jdbc

    jdbc jdbc jdbc jdbc jdbc jdbc jdbc jdbc

    适用于 SQL Server 2014、2012、2008R2的JDBC Drivers 4.1

    它属于 Type 4 JDBC 驱动程序,通过 Java 平台(企业版 5、6 和 7)中可用的标准 JDBC 应用程序接口 (API) 提供数据连接。 适用于 SQL Server 的 Microsoft JDBC Driver 4.1(预览版)与 JDBC 4.0 兼容,并且可以在...

    sqljdbc4.jar和sqljdbc.jar下载

    sqljdbc.jar 类库提供对 JDBC 3.0 的支持。 sqljdbc.jar 类库要求使用 5.0 版的 Java 运行时环境 (JRE)。连接到数据库时,在 JRE 6.0 上使用 sqljdbc.jar 会引发异常。 注意: JDBC Driver 2.0 不支持 JRE 1.4。...

    JDBC-ODBC BRIDGE PATCH for JDK 1.6/1.7 64bit

    SUN JDK 1.6/1.7 64bit的JDBC-ODBC Bridge有个缺陷:会随机抛出异常如下,在所有的ODBC Driver上。 java.sql.SQLException: [Microsoft][ODBC Driver Manager] Invalid string or buffer length at sun.jdbc.odbc....

    hive-jdbc hive jdbc驱动

    hive-jdbc

    sqlserver驱动包 jdbc驱动 sqljdbc.jar和sqljdbc4.jar

    sqlserver驱动包 jdbc驱动 sqljdbc.jar sqljdbc4.jar jdbc连接sqlserver数据库驱动, sqljdbc.jar和sqljdbc4.jar均有

    Microsoft SQL Server 2008 JDBC 3.0(微软官网下载)

    SQL Server JDBC Driver 3.0,这是一个 Type 4 JDBC 驱动程序,它通过 Java Platform, Enterprise Edition 5 及更高版本中可用的标准 JDBC 应用程序编程接口 (API) 提供数据库连接。 系统要求: •支持的操作系统:...

    JDBCDriver3.0.rar_jdbc driver 3.0_sql jdbc 3.0_sql server jdbc_s

    Microsoft SQL Server JDBC Driver 3.0.JSP驱动。

    SpringBoot中封装jdbc工具类

    现在的数据层的开发,大多会使用...但是在一些极端的场景下往往原生的jdbc方式操作数据库更灵活,性能更高。由于部分场景下MyBatis或JPA之类无法满足我的需求,所以我打算自己封装一套查数据库的工具类。 文章地址: ...

    JDBC 解析JDBC中文API

    JDBC 解析JDBC中文API各种数据库之间的链接问题,网络编程

    logstash-output-jdbc.zip

    ./logstash-plugin prepare-offline-pack --overwrite --output logstash-input-jdbc.zip logstash-input-jdbc 最后成功会出现以下信息 You can install it with this command `bin/logstash-plugin install file...

    JDBC代码JDBC代码JDBC代码

    JDBC代码 JDBC代码JDBC代码 JDBC代码

    sap JDBC数据源配置

    sap JDBC数据源配置sap JDBC数据源配置sap JDBC数据源配置

    JavaEE源代码 jdbc2_0-stdext

    JavaEE源代码 jdbc2_0-stdextJavaEE源代码 jdbc2_0-stdextJavaEE源代码 jdbc2_0-stdextJavaEE源代码 jdbc2_0-stdextJavaEE源代码 jdbc2_0-stdextJavaEE源代码 jdbc2_0-stdextJavaEE源代码 jdbc2_0-stdextJavaEE源...

Global site tag (gtag.js) - Google Analytics