当前位置: 首页 > news >正文

可以做手机网页的网站360网站收录提交入口

可以做手机网页的网站,360网站收录提交入口,温州市网蚁网络有限公司,链接生成一、事务简介事务是用户定义的一个数据库操作序列#xff0c;这些操作要么全做#xff0c;要么全不做#xff0c;是一个不可分割的工作单位。事务具有ACID特性#xff1a;原子性#xff08;Atomicity#xff09; —— 原子性是指事务是一个不可分割的工作单位#xff0c…一、事务简介 事务是用户定义的一个数据库操作序列这些操作要么全做要么全不做是一个不可分割的工作单位。 事务具有ACID特性原子性Atomicity —— 原子性是指事务是一个不可分割的工作单位事务中的操作要么都发生要么都不发生。 一致性Consistency —— 事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。隔离性Isolation —— 一个事务的执行不能被其他事务干扰多个并发事务之间要相互隔离。持久性Durability —— 一个事务一旦提交它对数据库中数据的改变就应该是永久的。接下来的其他操作或故障不应该对其执行结果有任何影响。 关于事务的基本理论在许多书籍资料中都能找到这里就不赘诉了。二、JDBC中事务的提交与回滚 如果在JDBC中不明确指定开启事务那么所有的代码操作都在一个默认的事务中进行默认的事务会自动开启自动提交。因此如果我们需要在JDBC中手动操作事务就首先需要关闭事务的自动提交。 JDBC中关于事务操作的APIvoid setAutoCommit(boolean autoCommit) —— 设置事务是否自动提交如果设置为false表示手动提交事务。void commit() —— 手动提交事务void rollback() —— 手动回滚事务出现异常时候所有已经执行成功的代码需要回退到事务开始前的状态。Savepoint setSavepoint() —— 设置事务回滚到哪个位置。 可以使用一个转账的示例来演示事务的提交与回滚 假设基于上面这个表完成一次转账操作张三转账100元给李四。// 参数 // jdbc协议:postgresql子协议://主机地址:数据库端口号/要连接的数据库名 String url jdbc:postgresql://localhost:5432/test2; // 数据库用户名 String user postgres; // 数据库密码 String password 123456;// 1. 加载Driver类Driver类对象将自动被注册到DriverManager类中 Class.forName(org.postgresql.Driver);// 2. 连接数据库返回连接对象 Connection conn DriverManager.getConnection(url, user, password);PreparedStatement pstmt1 null; PreparedStatement pstmt2 null; try {// 3. 关闭事务的自动提交机制conn.setAutoCommit(false);// 4. 预编译SQL// 从张三账户中减去100元String sql1 UPDATE bank SET money money - 100 WHERE name ?; pstmt1 conn.prepareStatement(sql1);pstmt1.setString(1, 张三);// 往李四账户中增加100元String sql2 UPDATE bank SET money money 100 WHERE name ?;pstmt2 conn.prepareStatement(sql2);pstmt2.setString(1, 李四);// 5. 执行SQL语句pstmt1.executeUpdate();pstmt2.executeUpdate(); } catch (Exception e) {// 6. 如果发生异常则回滚事务conn.rollback(); } finally {// 6. 如果没有发生异常则提交事务conn.commit();// 7. 关闭资源pstmt1.close();pstmt2.close();conn.close(); } 这样把转账操作放置在一个事务中执行保证了事务的隔离性。即使转账操作发生异常事务也能正确回滚保证数据库中总金额仍然是2000。三、JDBC中事务回滚到特定位置 调用setSavepoint()就能指定事务发生异常时回滚到特定位置// 省略参数代码// 1. 加载Driver类Driver类对象将自动被注册到DriverManager类中 Class.forName(org.postgresql.Driver);// 2. 连接数据库返回连接对象 Connection conn DriverManager.getConnection(url, user, password);PreparedStatement pstmt1 null; PreparedStatement pstmt2 null; Savepoint sp null; try {// 3. 关闭事务的自动提交机制并指定事务回滚到这个位置conn.setAutoCommit(false);sp conn.setSavepoint();// 4. 预编译SQL// 从张三账户中减去100元String sql1 UPDATE bank SET money money - 100 WHERE name ?; pstmt1 conn.prepareStatement(sql1);pstmt1.setString(1, 张三);// 往李四账户中增加100元String sql2 UPDATE bank SET money money 100 WHERE name ?;pstmt2 conn.prepareStatement(sql2);pstmt2.setString(1, 李四);// 5. 执行SQL语句pstmt1.executeUpdate();pstmt2.executeUpdate(); } catch (Exception e) {// 6. 如果发生异常则回滚事务到指定位置conn.rollback(sp); } finally {// 6. 如果没有发生异常则提交事务conn.commit();// 7. 关闭资源pstmt1.close();pstmt2.close();conn.close(); }
http://www.sadfv.cn/news/173964/

相关文章:

  • 网站建设售前怎么做好seo实战密码pdf
  • 专业广州网站建设网站后台打不开了怎么办
  • 石家庄网络推广建站wamp安装wordpress
  • 免费网站电视剧全免费温州网页设计前端招聘
  • 网站建设售后支持广告宣传设计图
  • 嘉定区网站建设公司织梦如何做响应式手机网站
  • 网站开发开题报告格式住房建设部官方网站公示公告
  • 网站制作公司高端青岛网站制作
  • 为企业提供网站建设服务如何看那个网站是那个公司做的
  • 一个主机放几个网站wordpress整站克隆
  • 外国小孩和大人做网站互联网大会
  • 旅游网站建设成本核算阿里巴巴网站首页怎么制作
  • 天助可以搜索别人网站网络营销是做什么工作
  • 岳阳市规划局建设工程公示网站上海到北京飞机航班查询
  • 嘉兴网站建设运营wordpress 学院主题
  • google下载安卓版下载龙泉驿网站seo
  • 网站下载视频方法个人简历模板word可编辑免费
  • 网站网页设计怎么报价网站开发 弹窗
  • 网站制作长春网站开发类优惠及服务承诺
  • 网站开发流程 知乎成都便宜网站建设公司
  • 广东省著名商标在什么网站做东阳实惠营销型网站建设厂家
  • 广安建设机械网站企业文化墙素材图片
  • 嘉兴网站快速排名优化微商网站开发
  • 采集网站后台数据潍坊建设局网站
  • 实惠的网站建设公司商淘软件
  • 网站访问拒绝企业网站模板 html
  • 流行用什么做网站东莞求职招聘信息网
  • 北京做网站电话dy刷粉网站推广马上刷
  • 用商城系统做教育网站网站建设论文伯乐在线
  • 建设部网站中天人建筑工程有限公司中山建设工程有限公司