javaoop事务提交详解

1.对于 需要 同时 进行的 sql语句,一般都会选择 使用 事务 来 进行操作

 面向 数据库层的 DBma 里面,添加一个 方法 就行了

       public int  Mytran(List<String > sqllist,List<Object[]> objslist){

      

int iline=-1;

sqlcon=GetConnection();//获取链接对象
sqlcon.setAutoCommit(false);//取消事务的自动提交功能
if(sqlList.size()>0){


        for(int i=0;i<sqlList.size();i++){

              String sql=sqlList.get(i);//获取要执行的sql语句
              Object [] objs=objsList.get(i);//获取要执行的sql语句的参数

               pst=sqlcon.prepareStatement(sql);//创建pst对象
                    if(objs!=null){//为sql语句的参数赋值
                            if(objs.length>0){// if大于 0 意思 就是 只执行一次

 
                                     int idx=1; 
                                     for(Object obj : objs){
                                     pst.setObject(idx, obj);// 给 其赋 参数值
                                      idx++;
                                                                   }

                                                        }
                                        }
                  pst.execute();//执行sql语句
          }
}
iline=1;
sqlcon.commit();//如果sql语句执行成功,则提交事务

sqlcon.rollback();//如果sql语句执行失败,则回滚事务----在 catch里面


return iline;

}

++++++++++++++++++++++++++++++++++++++++++++++++++

 调用时  就用

public static int shiwu(){
String sql1="update product set cnt-=? where gid=? ";
String sql2="update tbmenmber set salary-=? where id=? ";
List<String> sqllist=new ArrayList<String>();
sqllist.add(sql1);
sqllist.add(sql2);

把 两个 字符串数组放入到  List<String >里面

把 两个 object【】 数组 放入到 List 里面
Object [] objs1={200,4};
Object [] objss2={20,1};
List<Object[]> olist=new ArrayList<Object[]>();
olist.add(objs1);
olist.add(objss2);

Db dn=new Db();
int iiii=dn.MyTransaction(sqllist, olist);


return iiii;

}

原文地址:https://www.cnblogs.com/yyjxxd/p/5512928.html