的中覆盖

服装加工设备2021年09月06日

开始再看这个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
友情链接