的中覆盖
开始再看这个crud示例时,居然发现我没有准备数据库信息及数据也可以运行成功,后来看了实现才明白,该示例使用了Map模拟数据库存储操作数据,不过struts2的实现还是又可以观飨的地方,下面就看看它的实现。
首先,定义持久类存储接口Storage:
publicinterfaceStorageextendsSerializable...{
IdEntityget(ClassentityClass,Serializableid);
Serializablecreate(IdEntityobject)throwsCreateException;
IdEntityupdate(IdEntityobject)throwsUpdateException;
Serializablemerge(IdEntityobject)throwsStorageException;
intdelete(ClassentityClass,Serializableid)throwsCreateException;
intdelete(IdEntityobject)throwsCreateException;
CollectionfindAll(ClassentityClass);
}
很明了,定义了操作数据的几种的方法,然后实现了一种使用map存储数据的方式(当然你可以使用自己存储数据的方式实现,比如xml等等)代码如下: publicclassMemoryStorageimplementsStorage...{
privatestaticfinallongserialVersionUID=L;
privateMapmemory=newHashMap();
privateMapgetEntityMap(ClassentityClass)...{
if(entityClass!=null)...{
MaptryMap=(Map)t(entityClass);
if(tryMap==null)...{
synchronized(memory)...{
tryMap=newHashMap();
t(entityClass,tryMap);
}
}
returntryMap;
}else...{
returnnull;
}
}
privateIdEntityintStore(ClassentityClass,IdEntityobject)...{
getEntityMap(entityClass).put(tId(),object);
returnobject;
}
publicIdEntityget(ClassentityClass,Serializableid)...{
四千服以神的姿势降临 if(entityClass!=nullid!=null)...{
return(IdEntity)getEntityMap(entityClass).get(id);
}else...{
returnnull;
}
}
publicSerializablecreate(IdEntityobject)throwsCreateException...{
if(object==null)...{
thrownewCreateException(\"Eithergivenclassorobjectwasnull\");
}
if(tId()==null)...{
thrownewCreateException(\"Cannotstoreobjectwithnullid\");
}
if(get(tClass(),tId())!=null)...{
thrownewDuplicateKeyException(\"Objectwiththisidalreadyexists.\");
}
returnintStore(tClass(),object).getId();
}
publicIdEntityupdate(IdEntityobject)throwsUpdateException...{
if(object==null)...{
thrownewUpdateException(\"Cannotupdatenullobject.\");
}
if(get(tClass(),tId())==null)...{
thrownewUpdateException(\"Objecttoupdatenotfound.\");
}
returnintStore(tClass(),object);
}
publicSerializablemerge(IdEntityobject)throwsStorageException...{
if(object==null)...{
thrownewStorageException(\"Cannotmergenullobject\");
}
if(tId()==null||get(tClass(),tId())==null)...{
returncreate(object);
}else...{
returnupdate(object).getId();
}
}
publicintdelete(ClassentityClass,Serializableid)throwsCreateException...{
try...{
if(get(entityClass,id)!=null)...{
getEntityMap(entityClass).remove(id);
return1;
}else...{
return0;
}
}catch(Exceptione)...{
thrownewCreateException(e);
}
}
publicintdelete(IdEntityobject)throwsCreateException...{
if(object==null)...{
thrownewCreateException(\"Cannotdeletenullobject\");
}
returndelete(tClass(),tId());
}
publicCollectionfindAll(ClassentityClass)...{
if(entityClass!=null)...{
returngetEntityMap(entityClass).values();
}else...{
returnnewArrayList();
}
}
publicvoidreset()...{
mory=newHashMap();
}
}
查看本文来源
北京治男科医院宝宝积食怎么调理脾胃
辽源治疗白癜风哪好
-
投资者提问:请问公司目前库存情况同比和环比如何变化?对于服务业去库存情况有什...
高盛提问:却说该公司目前存量状况去年同期和环比如何波动?对于企业去存...
2023-10-03
-
新款梅赛德斯-AMG SL 63 Shooting Brake渲染三幅
月初,ADSL社从海外舆论autoevolution获取一三组新款法拉利车队-AMG SL 63 Shooting ...
2023-10-02
-
没有和领导做过这3件事,很难成为领导的心腹,说更容易,做却难!
现在的积极支持,更加偏爱任用自己的副手而不是手下的各支, 即便可能存...
2023-09-28
-
为何宇航员在太空遇难,灵柩却不能运回地球?
“节物风景秀丽不宽厚,桑田碧海须臾改。”这是唐宋诗人卢照邻写的《洛阳...
2023-09-23
-
疫情中的特殊618,“承压”的京东写进反思
作者:崔鹏志 可能:IT华尔街日报 北京非典封控已经接下来仅有两个同月,...
2023-09-22
-
后生初期|怀后生前三个月不能说?这是迷信还是另有说法?
女婴后,3个年底内很昧去找别人。这个习俗,老年代代相传,流传至今,还...
2023-09-21