在java的函数中用,synchronized限定的函数与能够保证该函数内的sql完整执行?前提在不出错的情况下。
例如:
synchronized void testSql()
{
    执行sql语句1;
    执行sql语句2;
    ...
}
void testSql()
{
    开始事务
    执行sql语句1;
    执行sql语句2;
    ...
    提交事务
}

解决方案 »

  1.   

    不明白LZ啥意思,不过synchronized只是在并发情况下使用,和LZ讲的场景不太符合
      

  2.   

    不加同步关键字在一个方法中也会全部执行的啊,如果没有其他 return、异常等情况,绝对不可能走了一半下面就不走了。另外,同步关键字也不是这样用的,synchronized 是用于对并发访问共享变量将当前对象作为同步锁进行锁定,防止多个线程同时操作共享变量,与全部执行什么的没有关系。
      

  3.   

    看不明白楼主的意思,synchronized是并发处理用的,只要进入synchronized就和普通的块执行语句是一样的啊,synchronized的作用是限制并发的线程同一时间只能有一条线程进入该块,其他线程会被阻塞在外面直到在synchronized修饰的块里面的线程执行完该块的代码释放掉锁之后才能进入,而且依然只能是一条线程
    另外也要看sql用什么东西写,JDBC的话事务提交是由JDBC维护的如果写成这样的话就比较容易理解了 synchronized void testSql1(){
    执行sql语句1;
    执行sql语句2;
    ...
    } void testSql(){
    开始事务
    执行sql语句1;
    执行sql语句2;
    testSql1();
    ...
       提交事务
    }
      

  4.   

    这里是两个一样的方法名,没有重载哦,不是一个同一个类的方法,里面的sql语句到底是什么也没说
    可能压根上面那个块里面就不要提交事务,仅仅是select呢-。-?