我的软件后台有一个mysql数据库,两个不同的java程序通过jdbc来操作这个数据库。一个程序A会定期的去搜集数据并将他们存放于数据库中,这个过程也需要读取一些数据库内容,而另外一个程序B会读取数据库数据来进行业务逻辑相关的操作。想知道如何确保程序A在更新数据库内容的时候程序B无法去读这个数据?比如当B试图读取的时候失败或者阻塞。知道的朋友请指点方向,谢谢大家了!!

解决方案 »

  1.   

    在库表中设一个标志位,程序访问前先SELECT标志为,为FALSE则 SLEEP,否则访问置标志位为FALSE  这和JAVA的同步道理差不多吧
      

  2.   

    方法1)用连接池,只开一个连接,那就只有一个程序得到连接,自然实现互锁;
    方法2)只建立一个JDBC连接对象的实例,基本同1)。
    方法3)在程序B的前面加入一段判断程序A是否连接数据库的代码,是就暂挂,否就转入主程序。
      

  3.   

    和 lixiaoxue85(蛮野蛮) 想得一样,这种方法简便有效
      

  4.   

    A程序操作是就给数据上锁,B程序就不能访问操作了。直到A程序操作完毕后,解锁后B程序就可以执行了
    ORACLE里面实现。MYSQL就不知道了没用过