Java中的事务处理

Java中的事务处理

  一般情况下,J2EE应用服务器支持JDBC事务、JTA(Java Transaction API)事务、容器管理事务。一般情况下,最好不要在程序中同时使用上述三种事务类型,比如在JTA事务中嵌套JDBC事务。第二方面,事务要在尽可能短的时间内完成,不要在不同方法中实现事务的使用。下面我们列举两种事务处理方式。

  1、JavaBean中使用JDBC方式进行事务处理
  在JDBC中怎样将多个SQL语句组合成一个事务呢?在JDBC中,打开一个连接对象Connection时,缺省是auto-commit模式,每个SQL语句都被当作一个事务,即每次执行一个语句,都会自动的得到事务确认。为了能将多个SQL语句组合成一个事务,要将auto-commit模式屏蔽掉。在auto-commit模式屏蔽掉之后,如果不调用commit()方法,SQL语句不会得到事务确认。在最近一次commit()方法调用之后的所有SQL会在方法commit()调用时得到确认。

public int delete(int sID) {
 dbc = new DataBaseConnection();
 Connection con = dbc.getConnection();
 try {
  con.setAutoCommit(false);// 更改JDBC事务的默认提交方式
  dbc.executeUpdate("delete from bylaw where ID=" + sID);
  dbc.executeUpdate("delete from bylaw _content where ID=" + sID);
  dbc.executeUpdate("delete from bylaw _affix where bylawid=" + sID);
  con.commit();//提交JDBC事务
  con.setAutoCommit(true);// 恢复JDBC事务的默认提交方式
  dbc.close();
  return 1;
 }
 catch (Exception exc) {
  con.rollBack();//回滚JDBC事务
  exc.printStackTrace();
  dbc.close();
  return -1;
 }
}

 

 

事务是把针对数据库的操作(若干条全部做或都不做)封装,作为一个个体。JDBC事务处理默认的是自动提交方式。
JDBC事务处理部分代码:
try{
  conn.setAutoCommit(false);  //设置不会自动提交
  stmt = conn.createStatement();
  stmt.executeQuery("SELECT * FROM temp_info");
  stmt.executeUpdate("UPDATE temp_info SET ip='***.***.***.***'");
  conn.commit();  //提交事务
  System.out.println("Ok!");
  conn.close();
}catch(SQLException e){
  try{
    conn.rollback();  // 操作不成功,回滚事务
  }catch(SQLException r){
    System.out.println(r.getMessage());
  }
  System.out.println(e.getMessage());
}

注:conn.rollback();必须对它进行异常处理。  

 

/// 四舍五入函数

 1位小数就是Math.round(XX*10)/10  
   
  2位小数就是Math.round(XX*100)/100

 

  double   d   =   123.654321;  
  java.text.DecimalFormat   df   =   new   java.text.DecimalFormat("########.0000");  
  String   s   =   new   String(df.format(d)   ;  

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值