2 u010702093 u010702093 于 2015.06.17 14:57 提问

保存到数据库前 判断数据是否存在的问题 ,同步问题
List<GeUser> user = geUserDao.findByUserNameOrMobilePhone(m.getMobilePhone(),m.getMobilePhone());
    if(user==null || user.size()==0){
         geUserDao.save(m);
         return true;
    }else{
        return false;

8个回答

francislpx
francislpx   2015.06.17 15:18

不知道你想问什么······

u010702093
u010702093 我想问的是 如果 用户同时 访问这个方法(参数中手机号一样), 一个方法正好走到 保存前 ,一个方法正好在判断。这个时候走到判断的那个,得到的结论是手机号不存在。。最终会造成一个手机号保存了两次
2 年多之前 回复
lzp_lrp
lzp_lrp   Ds   Rxr 2015.06.17 15:23

保存到数据库前 判断数据是否存在的问题 ,同步问题

建议在保存的地方,生成update的语句的地方在where里加上相应的条件,确保数据的一致性

u010702093
u010702093 我想问的是 如果 用户同时 访问这个方法(参数中手机号一样), 一个方法正好走到 保存前 ,一个方法正好在判断。这个时候走到判断的那个,得到的结论是手机号不存在。。最终会造成一个手机号保存了两次
2 年多之前 回复
tongyi55555
tongyi55555   2015.06.17 15:44

根据你的代码不是已经判断是否存在了么?getMobilePhone用了两次,你的方法应该是传入用户名和电话吧?

frank_20080215
frank_20080215   2015.06.17 16:08

判断有问题,应该判断用户名是否相同

u012006909
u012006909   2015.06.17 16:11

要是为了同步,你给方法的外面加个:synchronized,另外参数应该是用户名和密码。

u010702093
u010702093 是为了同步。。 那是不是所有有条件的保存都要加上 同步啊
2 年多之前 回复
q3733353520
q3733353520   2015.06.17 18:09

那就可以用select * from table where phone = ""查询

wsh1992o
wsh1992o   Rxr 2015.06.17 20:51

只要在数据库中查询这个字段是否存在就可以了

u010702093
u010702093 我想问的是 如果 用户同时 访问这个方法(参数中手机号一样), 一个方法正好走到 保存前 ,一个方法正好在判断。这个时候走到判断的那个,得到的结论是手机号不存在。。最终会造成一个手机号保存了两次
2 年多之前 回复
beacon_2011
beacon_2011   Rxr 2015.06.17 21:35

select * from table where cloumn =~

Csdn user default icon
上传中...
上传图片
插入图片