设置为key,如果是银行用的你还是预查一遍比较好!

解决方案 »

  1.   

    要是插入数据之前做一次查询的话也是否会有问题?因为servlet程序是并发执行的,多人执行添加操作的话相同的数据可能会避开插入前的查询操作而被添加进数据库中。 
    原来我想通过设置数据库中唯一约束来实现,可是这样的话当用户输入了已经存在的值时程序会抛出异常的。我本可以捕捉异常,然后用自己的话来表达出错原因,而不是直接将Java的异常信息个用户看。但是我如何判断这个异常类型是什么,是数据库连接异常呢还是sql语法异常还是unique字段插入了相同数据而抛出的异常,这让我无所适从,而我们的测试一定要求不能给用户看到java抛出的异常信息,哪怕是通过ex.getMessage()抛出的异常信息。
      

  2.   

    并发执行   是否可以通过数据库的lock功能做限制
    即当一个用户在对数据库进行操作的时候 其他用户需要等待unlock状态时
    在继续?
      

  3.   

    那你在servlet里面执行数据库方法前面加上synchronized
      

  4.   

    to:dipingxian && to:cheess
    锁掉数据库和加synchronized会使程序变得很慢很慢,这样我们的测试人员又能有理由说我的程序怎么怎么不好了。to:cdk()
    能否教教我unique出错时抛出的异常是那个类嘛,能让我准确的知道是数据库的什么类型的错误,使得我能够用自己的话来表达错误给用户看!