Posted on 2008-09-08 17:59
追風(fēng)舞者 閱讀(1233)
評(píng)論(0) 編輯 收藏 所屬分類:
OfBiz
1.OfBiz中利用delegator訪問(wèn)數(shù)據(jù)庫(kù)
1)創(chuàng)建GenericDelegator對(duì)象
1.1 service中
public static Map createHelloPerson(DispatchContext dctx, Map context) {
GenericDelegator delegator = dctx.getDelegator();
...
}
1.2手工建立GenericDelegator對(duì)象
GenericDelegator delegator = GenericDelegator.getGenericDelegator("default");
2)Insert a record
通過(guò)調(diào)用delegator對(duì)象的getNextSeqId(), makeValue(String entityName, Map fields)和create()方法。
例如:
String helloPersonId = delegator.getNextSeqId("HelloPerson");
GenericValue helloPerson = delegator.makeValue("HelloPerson",
UtilMisc.toMap("helloPersonId", helloPersonId)); // create a GenericValue from ID we just got
helloPerson.setNonPKFields(context); // move non-primary key fields from input parameters to GenericValue
delegator.create(helloPerson); // store the generic value, ie persists it
3)Remove a record
delegator.removeByAnd(String entityName, Map fields);
4)Strore a record
例如:
Map pk = UtilMisc.toMap("attribute1", attribute1Value, "attribute2", attribute2Value);//pk中存儲(chǔ)了查詢條件
GenericValue obj = delegator.findByPrimaryKey("ClassName", pk);
obj.setNonPKFields(context);//contex為Map類型,存儲(chǔ)了要更新的字段
obj.store();
5)Store records
List resultList = delegator.findAll(String entityName, List orderBy);
List toStore = new ArrayList();
toStore.addAll(resultList);
delegator.storeAll(toStore);
6)Look for record/records
findByAnd,findByCondition、findByLike、findByOr、findByPrimaryKey、
findListIteratorByCondition、 findall、findAllByPrimaryKeys
2) 依據(jù)數(shù)值對(duì)象進(jìn)行訪問(wèn)
在現(xiàn)有的數(shù)值對(duì)象(GenericValue類型)上可以進(jìn)行下列操作:
根據(jù)關(guān)系查找關(guān)聯(lián)信息getRelated,包括getRelated、getRelatedByAnd、getRelatedDummyPK、getRelatedMulti、getRelatedOrderBy。
刷新本數(shù)值對(duì)象refresh
保存本數(shù)值對(duì)象store,主要用于修改后的保存
刪除數(shù)值對(duì)象remove,包括刪除本數(shù)值對(duì)象remove和刪除某個(gè)關(guān)聯(lián)的數(shù)值對(duì)象removeRelated
在現(xiàn)有數(shù)值對(duì)象上的操作是通過(guò)調(diào)用
更加具體的信息可參考:http://www.opentaps.org/javadocs/release-1.0.1/framework/api/