回到目录
Lesson 5:使用SmartList和BaseEntity
SmartList
SmartList是daas框架中对JDK list 的一种增强包装,方便在业务处理过程中,能够处理相关数据。daas中所有批量查询的接口,默认都是返回SmartList<T>。
SmartList的代码位于 :
xxx_core_src/<项目包路径,例如com/demo/bank>/SmartList.java
通常情况下,将它当做普通list使用就可以。
在需要分页的情况下,需要使用到以下接口
int page = rList.getCurrentPageNumber();
int pageSize = rList.getRowsPerPage();
int totalCount = rList.getTotalCount();
另外还提供了一个快捷方法,可以获得list中所有成员的ID列表:
String[] ids = rList.idArray();
以及一个 list 转 map 的方法:
Map<String, ChangeRequest> objMap = rList.mapWithId();
了解BaseEntity
dass会为xml中定义的每个模型,生成对应的实体类。
所有这些实体类都是继承自 BaseEntity的。
BaseEntity是对java Object 的一种增强, 并通过它来保证daas生成的应用中,所有实体类,在特性上保持一致。
BaseEntity的代码位于 :
xxx_core_src/<项目包路径,例如com/demo/bank>/BaseEntity.java
序列化基础实现
BaseEntity提供了所有实体类的序列化基础实现。
实体类XXX会有对应的序列化类 XXXSerializer.java.
daas使用com.fasterxml.jackson完成序列化。需要使用到实体类的
public List<KeyValuePair> keyValuePairOf()
protected void appendKeyValuePair(List<KeyValuePair> list, String key, Object value)
工具类方法
例如:public String maskChinaMobileNumber(String chinaMobileNumber)
public String getInternalType() // 返回短类名
public Object propertyOf(String propertyName)
public void setPropertyOf(String propertyName, Object value)
public void incVersion() // version 用于乐观锁
public int nextVersion()
// 下面这两个用于添加|获取临时附加数据到实体中
public <T> void addItemToValueMap(String key, T item)
public Object valueByKey(String key)
// 数据复制
public BaseEntity copyTo(BaseEntity dest)
更多细节,您可以查看它的源代码(是的,您有所有的源代码)。