多语言展示
当前在线:1835今日阅读:23今日分享:25

java连接数据库事务的实例

什么是事务?保证数据库中数据交易的准确性
工具/原料

my Eclipse

方法/步骤
1

什么是事务?保证数据库中数据交易的准确性     JDBC支持数据库中的事务:(mysql中只有Innodb和bdb两种存储引擎支持事务                                                            其它存储引擎不支持事务)      Mysql数据库创建库的时候,默认的存储引擎是innodb        事务的四大特性:ACID       1.原子性:保证数据修改的时候,要么全部成功,要么全部失败。       2.永久性:数据的修改,对系统的影响是永久性的。       3.一致性:事务完成时,必须保证数据的一致。       4.隔离性:并发事务修改数据时,不能与其他事务一起执行,保证数据修改的准确性

2

JDBC连接数据库,事务的提交方式默认为自动提交,在实际开发过程中大都使用    手动提交,则需要更改其提交方式:怎么更改?    通过JDBC核心API库中的Connection接口的setAutoCommit()设置,将参数改为false    即可,默认为true。    提交事务的方法: Connection.commit();    回滚事务:Connection.rollback();当提交事务之后,若事务在执行过程中出现异常,                    则将修改的数据恢复到修改之前的状态。保证数据交易的准确性。

3

try{//1.定义用在事务中执行的SQL语句String sql1= ''update account set amount= amount-'' +amount+''where id=' ''+from+'' ' '':String sq12=''update account set amount= amount+''+amount+''where id = ' '' + to +'' ' '';auto.Commit = con.getAutoCommit();   //2.获得自动提交状态

5

package com.auto.java;import java.sql.Connection;import java.sql.SQLException;import java.sql.Statement;public class Account1 { public static void Count(int from,int to , int monery){

6

Connection con=null;  try {   //数据库连接   con=DBUtil.getConnection();   //事务转账   String sql1='Update a set account-'+monery+' where id=''+from+''';   String sql2='Update a set account-'+monery+' where id=''+to+''';   Statement stmt=con.createStatement();   //事务提交方式改为手动   con.setAutoCommit(false);   stmt.executeUpdate(sql1);   stmt.executeUpdate(sql2);   con.commit();   con.setAutoCommit(true);  } catch (SQLException e) {   try {    con.rollback();   } catch (SQLException e1) {    // TODO Auto-generated catch block    e1.printStackTrace();   }  } }}

注意事项

备注:JDBC只是支持事务,其实运行原理还是数据库中的事务概念

推荐信息