数据结构:DataRow
最后更新:2025-07-24 11:08:52
|
状态:未完成
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 |
|
| 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 |
将普通的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()使用 |