Java中的事务处理
2007-12-23 20:17
337 查看
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()调用时得到确认。
事务是把针对数据库的操作(若干条全部做或都不做)封装,作为一个个体。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) ;
一般情况下,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) ;
相关文章推荐
- 好记性不如烂笔头26-JAVA处理文件事务(4)
- Java中事务的处理
- Java中的事务处理(1)
- 11级_Java_曹建波 9.10 JDB处理大数据&大文本&二进制数据&批处理&事务
- JavaWeb 后端 <十一> 之 DBUtils 框架 (基本使用 结果集 事务处理 对表读取)
- java--事务处理
- 用SavePoint实现事务处理(转自中国java开发论坛)
- Java中事务的处理
- java事务的处理
- java—在dbutils中处理事务与不确定条件的查询(46)
- 在java代码中使用Oracle数据库的事务处理机制
- JAVA中处理事务的程序--多条更新SQL语句的执行(包括回滚) .
- 【java基础】JDBC的事务处理
- java事务的处理
- java的事务处理
- JAVA 事务处理
- java和ibatis事务处理
- java 操作mysql 事务处理
- java事务注解处理
- Java_乔晓松_JDBC—存储过程 && 事务处理