如果数据库支持你可以用select ... for update,这样是可以锁定相应的记录的

解决方案 »

  1.   

    我用 synchronized 锁定方法,但是这样只是控制只有一个人在减或者在加啊
      

  2.   

    我的意思是说:比如我先读出来是是5然后我+1,然后往数据库里写6,那么这时在我读的时候,他给减了1成4了,这时不就会有错误了吗?
    ====================
    那用这个 ..不是正好解决你的问题嘛Synchronized(同步)......不是正好解决你的问题嘛!!
      

  3.   

    哦,你的意思是两个人同一时间读出了数据库里的东西,然后一个人操作+1,一个人操作-1。这样当两个人再去update数据库的时候就出了问题。
    这个可以用lastUpdateTime来解决。你在表里面增加一个last update time的字段,记录最后一次记录修改的时间。
    比如A和B都同时读了一个5,并且附带了last update time:x。这时候A先+1提交,察看A提交时lastUpdateTime是否等于数据库中的x,等于的话last update time修改成y,B再-1提交的时候一样检查,x!=y说明另外一个人已经修改过了,返回错误信息
      

  4.   

    to  happyegg(想转型的程序员) 是一种思路,谢了!