做java ee程序基本上都会遇到唯一性的问题,我们通常不考虑并发性的问题的情况下的做法是:先根据条件去数据中查询是否存在,如果存在则提示不唯一,否则插入
下面是一个简单的例子, 向表t_test_curr插入数据,t_test_curr表包含两个字段,一个id(主键,自增长),一个username,要求唯一
1 不考虑并发性的做法:
public void testConcurr (String username) {
//t_test_curr并发测试表名
String uniqueSql = new StringBuilder("select 1 from t_test_curr where username = ?").toString();
List<SerializableJSONObject> uniqueList = this.baseDao.sqlQueryResult4Cache(uniqueSql, new Object[]{username});
if (uniqueList != null && uniqueList.size() > 0) {
throw new OperateFailureException("用户名重复!");
}
String saveSql = new StringBuilder("insert into t_test_curr(username) values (?)").toSt