数据结构:DataRow

DataRow对应数据库中的一行数据内部是一个Map结构,Map的key对应了表的列名,一般通过anyline-config.IS_UPPER_KEY=true来设置返回值以大写key存储


DataRow提供了一些默认的数据操作方法

public Object get(String key) 提取DataRow中的值
public boolean getBoolean(String key) 提取DataRow中的值并转换成Boolean值
public boolean getBoolean(String key, boolean def) 提取DataRow中的值并转换成Boolean值,如果没有值则默认为def
public Date getDate(String key, String def) 提取DataRow中的值并转换成Date类型,如果没有值则默认为def
public Date getDate(String key, Date def) 提取DataRow中的值并转换成Date类型,如果没有值则默认为def
public BigDecimal getDecimal(String key) 提取DataRow中的值并转换成BigDecimal类型
public BigDecimal getDecimal(String key, BigDecimal def) 提取DataRow中的值并转换成BigDecimal类型,如果没有值则默认为def
public BigDecimal getDecimal(String key, double def) 提取DataRow中的值并转换成BigDecimal类型,如果没有值则默认为def
public int getInt(String key) 提取DataRow中的值并转换成Int类型,如果没有值则默认为0
public int getInt(String key, int def) 提取DataRow中的值并转换成int类型,如果没有值则默认为def
public long getLong(String key) 提取DataRow中的值并转换成long类型,如果没有值则默认为0
public long getLong(String key, long def) 提取DataRow中的值并转换成long类型,如果没有值则默认为def
public DataRow getRow(String key) 获取DataRow中的值并转换成DataRow,如果值不是DataRow类型则返回null
public DataSet getSet(String key) 获取DataRow中的值并转换成DataSet,如果值不是DataSet类型则返回null
public String getPrimaryKey() 获取主键
public String getPrimaryKeys() 攻取主键列表,复合主键时使用
public DataRow addPrimaryKey(String ... pks) 添加主键,DataRow默认以ID作主键,调用以上方法可以在ID基础上添加多个主键。
在AnylineService.save(DataRow)时会根据主键来判断insert还是update
applyContainer:设置主键时,是否同时应用到父级容器DataSet上
public DataRow addPrimaryKey(boolean applyContainer, Collection pks)
public DataRow addPrimaryKey(boolean applyContainer, String ... pks)
public DataRow addAllUpdateColumns() 将所有列添加入保存范围
AnylineService.save(DataRow)如果是update操作,则只会update值修改过和列
如果要强制upate所有列,需要调用以上方法
public DataRow clearUpdateColumns() 清除所有需要更新的列(只是标记所有列不需要更新,并不清空值)
public boolean checkRequired(String ... keys) 检测指定的列中是否有空值
public DataRow clearEmpty() 删除值为空的条目,相当于调用Map.remove(key)
public DataRow clearNull() 删除值为null的条目
public boolean containsKey(String key) 是否包含指定的key
public DataRow copy(DataRow data, String ... keys) 将data中对应的key的值存入当前对象,如果有重复的key以data中的值为准
public T entity(Class clazz) 将普通的Java对象转换成DataRow
public DataRow formatDate(String format, String ... cols) 格式化指定列的日期格式
public DataRow formatNumber(String format, String ... cols) 格式化指定列的数字格式
public Object getPrimaryValue() 获取主键值
public Object getPrimaryValues() 获取主键值,复合主键时使用
public boolean hasValue(String key) return get(key) != null;
public boolean isEmpty(String key) 指定列的值是否(不)为空(null)
public boolean isNotEmpty(String key)
public boolean isNull(String key)
public boolean isNotNull(String key)
public boolean isExpire() 从创建对象到现在是否超过指定时间,配合setExpire(int millisecond)使用
public boolean isExpire(int millisecond) 从创建对象到现在是否超过指定时间
public DataRow merge(DataRow row, boolean over) 将row中的数据合并到当前DataRow
over:key相同时是否覆盖当前DataRow中的值
public DataRow merge(DataRow row
public Object put(String key, Object value) 类似于Map.put()
pk:是否将当前key作为主键
override:如果当前DataRow中已存在key值是否覆盖原来的值
public Object put(String key, Object value, boolean pk)
public Object put(String key, Object value, boolean pk, boolean override)
public void setUpdateEmptyColumn(boolean updateEmptyColumn) 设置是否更新值为空的列
public void setUpdateNullColumn(boolean updateNullColumn) 设置是否更新值为null的列
public String toJSON() 转换成json格式字符
public String toXML() 转换成xml格式字符
border:是否添加xml外层标签包裹 order:是否需要排序后转换
public String toXML(boolean border, boolean order)
public DataRow toLowerKey(String ... keys) 将指定的key转换成小(大)写,如果不指定则转换全部key
转换的是key而不是value
public DataRow toUpperKey(String ... keys)
public DataRow setExpires(int millisecond) 设置过期时间,配合isExpires()使用

其他文档