ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

JDBC默认的事务机制

2021-07-08 16:31:35  阅读:163  来源: 互联网

标签:ps 事务 JDBC 10000 String 默认 bundle sql import


JDBC事务机制

jdbc中的事务是默认提交的。

运行前的数据库数据:

代码:

package com.happy.lesson1;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.util.ResourceBundle;

public class JDBCTest10 {
    public static void main(String[] args) throws Exception {
        ResourceBundle bundle = ResourceBundle.getBundle("JDBC");
        String driver = bundle.getString("driver");
        String url = bundle.getString("url");
        String user = bundle.getString("user");
        String password = bundle.getString("password");
        //1.注册驱动
        Class.forName(driver);

        //2.获取连接
        Connection conn = DriverManager.getConnection(url,user,password);

        //3.获取数据库操作对象
        String sql = "update t_act set balance = ? where actno = ?";//处理sql语句
        PreparedStatement ps = conn.prepareStatement(sql);

        //传值
        //111转账10000元给222
        ps.setDouble(1,10000);
        ps.setInt(2,111);
        //4.1执行sql
        int count = ps.executeUpdate();

        //发生异常
        int e = 1/0;

        //222收到转账10000元
        ps.setDouble(1,10000);
        ps.setInt(2,222);
        //4.2执行sql
        count += ps.executeUpdate();

        //5.处理结果集
        System.out.println((count==2)?"转账成功":"转账失败");
        //6.关闭资源
        ps.close();
        conn.close();
    }
}

运行后的数据库数据:

运行有异常,然而数据库数据发生了变化,111丢失了10000元,但是222却没收到钱。

标签:ps,事务,JDBC,10000,String,默认,bundle,sql,import
来源: https://www.cnblogs.com/happy-lin/p/14986661.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有