zoukankan      html  css  js  c++  java
  • 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;

    }

  • 相关阅读:
    12月12日学习日志
    12月11日学习日志
    12月10日学习日志
    linux下安装git
    ubuntu上安装mysql
    扩展虚拟机容量
    【linux】你需要以 root 身份执行此命令
    Ubuntu新建Django工程错误:ModuleNotFoundError: No module named 'distutils.core'
    LeetCode26. 删除排序数组中的重复项
    LeetCode27. 移除元素
  • 原文地址:https://www.cnblogs.com/yyjxxd/p/5512928.html
Copyright © 2011-2022 走看看