业务是这样的,输入用户名,判断用户不存在就添加,存在就不添加。service层代码如下(简化了):
public Object ut() {
// 判断用户db是否存在
User u = userDao.findByUserName("db");
if(u != null) {// 存在就返回1
System.out.println();
System.out.println("【有】");
System.out.println();
return 1;
}else {// 不存在就添加
u = new User();
u.setUserName("db");
u.setPassword(System.currentTimeMillis()+"");
userDao.save(u);
System.out.println("【无此用户】");
}
for(long i = 0;i<88888888L;i++) {// 模拟service执行了3-5秒
String a = ""+i;
}
return 0;
}
在for循环那里,我特地让这个方法执行3-5秒才能完成,那么问题来了,接口来了10个并发时
(数据库里没有db这个用户),控制台都是打印【无此用户】,然后就添加了10条记db用户的记录,而我想要的只有一条db用户记录,这种情况怎么解决,一开始我在controller层加上同步是可以,但是同步就慢了,,,请问这个情况怎么才能让数据里只有一条db用户的信息