最近在做一个激活服务,客户端访问一个url,传递udid和packname两个字符串,服务器通过这两个字符串和mysql内的进行比较,如果都相同,则更新字段,否则作为一个新的字段插入。
判断逻辑我是这样写的:
if(ClientDao.getUser(cd.getUdid(),cd.getPkgname()) == null){
//若数据库中没有唯一记录
System.out.println("*************数据库中没有唯一记录**************");
boolean result = ClientDao.creatClient(cd);
System.out.println("******result*********** : "+result);
}else{
//若已经存在
System.out.println("*************数据库中已经存在**************");
ClientDao.updateClient(cd);
}
各种getUser方法是这样的:
/**
* 获取唯一记录
* @param vendor
* @param udid
* @param pkgname
* @return
public static ClientData getUser(String udid,String pkgname){
ClientData cd = null;
Session session=SessionManager.newInstance().getSession();
String sql="from ClientData c where c.udid=? and c.pkgname = ?";
Transaction transaction = null;
try {
transaction=session.beginTransaction();
Query query =session.createQuery(sql);
query.setString(0, udid);
query.setString(1, pkgname);
cd=(ClientData)query.uniqueResult();
if(transac