java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaEE, JavaME, JavaSE)的总称。本站提供基于Java框架struts,spring,hibernate等的桌面应用、web交互及移动终端的开发技巧与资料

保持永久学习的心态,将成就一个优秀的你,来 继续搞起java知识。

需求:模拟张三将账户中的1000元转给了李四。

流程:

1.查询支出方余额。

2.查询收款方账号。

3.更新支出方的余额。

4.更新收款方的余额。

实现代码:

public void payDemo(double sum,String payId,String recId){  
	    Connection con = null;  
	    String sql;  
	    Double payBalance,recBalance;  
	    try{  
	        con = DBUtil.getConnection();  
	        sql = "SELECT * FROM accounts WHERE id=?";  
	        PreparedStatement ps = con.prepareStatement(sql);  
	        ps.setString(1,payId);  
	        ResultSet rs = ps.executeQuery();  
	        while(rs.next());  
	        {  
	            payBalance = rs.getDouble("balance");       //获取付款方余额  
	        }  
	        if(payBalance<sum)  
	        {  
	            System.out.println("余额不足!");  
	            return;  
	        }  
	  
	        ps.setString(1,"recId");  
	        ResultSet rs1 = ps.executeQuery();  
	        if(!rs1.next())  
	        {  
	            System.out.println("账户不存在");  
	            return;  
	        }  
	        recBalance = rs1.getDouble("balance");           //获取收款方余额  
	        con.setAutoCommit(false);               //禁止事务自动提交,防止业务中出现异常导致存款丢失。  
	          
	        sql = &quot;UPDATE accounts SET balance=? WHERE id=?&quot;;    //重新设置<a href="http://www.cfei.net/archives/tag/sql" title="浏览关于“SQL”的文章" target="_blank" class="tag_link">SQL</a>语句  
	        ps.setDouble(1,payBalance-sum);             //将付款方余额减去转账金额  
	        ps.setString(2,payId);  
	        ps.executeUpdate();  
	  
	        ps.setDouble(1,payBalance+sum);               
	        ps.setString(2,recId);                  //同上  
	        ps.executeUpdate();  
	  
	        con.commit();                       //最后两步都完成后,才提交事务。  
	    }catch(SQLException e){  
	        e.printStackTrace();  
	        throw new RuntimeException(&quot;转账失败&quot;,e);  
	        con.rollback();                     //发生异常,则事务回滚。  
	    }finally{  
	        DBUtil.close(con);  
	    }  
	}

java笔记jdbcsql

因为水平有限,难免有疏忽或者不准确的地方,希望大家能够直接指出来,我会及时改正。一切为了知识的分享。

后续会有更多的精彩的内容分享给大家。