select for updatein oracleorsynchonize

解决方案 »

  1.   

    数据库是mysql,故想用synchonize,但不知怎么写:
    String sqlstring6="insert into Flaw_info (Scan_id,Host_id,Flaw_select_id,Flaw_flag) values ('"+scanid+"','"+ipindex+"','"+select[count]+"','"+Flawflag+"')";
                    Statement stmt6=con.createStatement();
                    stmt6.executeUpdate(sqlstring6);
    stmt6.close();
    我想把Statement stmt6=con.createStatement();
                    stmt6.executeUpdate(sqlstring6);
    stmt6.close();
    这段程序锁住,该怎么写呢?谢谢!
      

  2.   

    如果你就一个实例
    那就在方法定义成synchronized
    比如public synchronized xxxx()如果有多个实例,不同实例不能干扰
    那就定义static object asynchronized(a){
    String sqlstring6="insert into Flaw_info (Scan_id,Host_id,Flaw_select_id,Flaw_flag) values ('"+scanid+"','"+ipindex+"','"+select[count]+"','"+Flawflag+"')";
                    Statement stmt6=con.createStatement();
                    stmt6.executeUpdate(sqlstring6);
    stmt6.close();
    }
      

  3.   

    我是在线程里有用到这部分的代码,不知我这样写可以吗?
    String sqlstring6="insert into Flaw_info (Scan_id,Host_id,Flaw_select_id,Flaw_flag) values ('"+scanid+"','"+ipindex+"','"+select[count]+"','"+Flawflag+"')";
                    Statement stmt6=con.createStatement();
                            synchronized (stmt6){
                              stmt6.executeUpdate(sqlstring6);
                              stmt6.close();
                            }
    这样能否达到在数据提交的时候不会被别的线程影响?