您的位置:首页 > 产品设计 > UI/UE

在项目中为多个模块创建uuid,以及唱票算法

2017-03-14 23:07 148 查看
我们在为项目进行用户添加时,不能让用户自行为自己添加id

我们应该在逻辑层调用某种模块来自动为添加的用户创建id

所以我们要在common包中为其创建一个uuid模块

uuid模块包括:dao,vo,constance分别为数据层,值对象,枚举类型

vo层:

public class UuidModel implements Serializable{

private String ModelName   
//模块类型名

private int currentNum  //自动分配的id

public String getModelName() {
return ModelName;
}

public void setModelName(String modelName) {
ModelName = modelName;
}

public int getCurrentNum() {
return CurrentNum;
}

public void setCurrentNum(int currentNum) {
CurrentNum = currentNum;
}

@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result
+ ((ModelName == null) ? 0 : ModelName.hashCode());
return result;
}

@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
UuidModel other = (UuidModel) obj;
if (ModelName == null) {
if (other.ModelName != null)
return false;
} else if (!ModelName.equals(other.ModelName))
return false;
return true;
}

}

dao层

impl实现类:uuidImpl

public class uuidImpl implements UuidDao{

private final String FILE_NAME:"uuid.txt";

@Override
public String getUuid(UuidModelConstance UuidEnum) {

String ModelName=UuidEnum.getModelName();

List<uuidModel> list =FileIoUtils.readFromFile(FILE_NAME);//从uuid.txt中读取该模块存入list中

for(UuidModel model:list){

if(model.getModelName.equals(ModelName)){//遍历这个list,如果匹配到相同类型名的就进行uuid的返回

int result=model.getCurrentNum();

model.setCurrentNum(result+1);//下一次同一模块来访问的时候uuid则会+1,这就是唱票算法

list.add(model);

FileIoUtils.write2File(list,FILE_NAME);

return String.valusof(result);

}
}

//遍历完后如果没有匹配到则表明文件中还没有该类型,则需要重新创建

UuidModel model=new UuidModel();

model.setModelName(ModelName);

model.setCurrentNum(2);

list.add(model);

FileIoUtils.write2File(list,FILE_NAME);

return "1";

        }

这样我们就可以在逻辑层设计在添加某模块数据时,封装uuid,然后进行添加。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐