希望哪位高手给一个简单的示例!!!

解决方案 »

  1.   

    使用spring配置实现
    // 事务要有选择性的,有UPDATE的操作才需要。看怎么办吧。
    // 开启事务
    PlatformTransactionManager tm = (PlatformTransactionManager) Framework.getDaoFactory().getBean(
    "transactionManager");
    DefaultTransactionDefinition def = new DefaultTransactionDefinition();
    def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
    TransactionStatus status = tm.getTransaction(def); String result = null;
    try {
    result = invocation.invoke();
    } catch (Exception e) {
    // 回滚事务
    status.setRollbackOnly();
    throw e;
    } finally {
    // 提交或回滚事务
    tm.commit(status);
    }
      

  2.   


    Transaction tran = conn.getTransaction();  //事务是否是从conn里头获得记不太清楚了
    try{
    .....do some database operation
    } catch(Exception e) {
      tran.rollback();
    }
    tran.commit();
      

  3.   

    如果你简单的操作mysql的话
    connection.setAutoCommit(false);/就是不自动提交
    这里是执行代码块1
    这里是执行代码块1
    这里是执行代码块1
    这里是执行代码块1
    connection.commit()//统一提交。
      

  4.   

    事务就是要么全做 要么全不做
    一般在更新操作采用倒
    try{
    搞个连接conn
    conn.setAutoCommit(false);/就是不自动提交 
    这里是执行代码块1 
    这里是执行代码块1 几条更新语句操作
    这里是执行代码块1 
    这里是执行代码块1 
    connection.commit()//统一提交。
    }catch(....){
    conn.rollback();
    }//批量操作:批量操作用事务进行控制!要么全部执行,要么全不执行!
    public int[] executeMultiple(Connection conn,String sql,Object[][]params) throws SQLException{
    PreparedStatement prest=null;
    int[]count=null;
    prest=conn.prepareStatement(sql);
    for(int i=0;i<params.length;i++){
    for(int j=0;j<params[i].length;j++){
    prest.setObject(j+1, params[i][j]);
    }
    prest.addBatch();
    }
    try{
    conn.setAutoCommit(false);//设置关闭自动提交
    count=prest.executeBatch();
    conn.commit();//提交
    }catch(SQLException e){
    conn.rollback();
    e.printStackTrace();
    }finally{
    closeStatement(prest);
    //closeConnection(conn);
    }
    return count;
    }
      

  5.   

    1.连接数据库时 设置 conn.setAutoCommit(false);2.数据层  连接对象应为由外界注入,三种方式:a.接口注入  b.setter注入(推荐)  c.构造函数注入3.业务层  首先注入连接  
                  业务逻辑代码
                      完成:conn.commit()  异常:conn.rollback();