DataSet查询及性能

最后更新:2024-05-10 05:30:13 | 状态:未完成
有些情况下从数据库中查出结果集后还需要经过多次过滤,用来避免多次查询给数据库造成不必要的压力
DataSet类似sql的查询
DataSet set = new DataSet();
以DataSet result = set.select.equals("AGE","20", "NAME","张%")的方式调用
需要注意几十几百行数据时可以这样,但几万行数据中几千万次的查询务必不能这样查询
通过我们会从一个集合中根据ID查询一行,这种情况可以通过Map<String,DataRow> map = set.map("ID");后续查询再根据map.get("C123456")这样查询
如果还要再快并且ID是数字类型的话可以先排序再实现一次二分查询(真到这一步的话应该考虑换语言或服务器了)
/**
 * 是否忽略NULL 如果设置成true 在执行equal notEqual like contains进 null与null比较返回false
 * 左右出现NULL时直接返回false
 * true会导致一行数据 equal notEqual都筛选不到
 */
private boolean ignoreNull = true;
public DataSet setIgnoreCase(boolean bol)
public DataSet setIgnoreNull(boolean bol)

/**
 * 筛选key=value的子集
 *
 * @param key   key
 * @param value value
 * @return DataSet
 */
public DataSet equals(String key, String value)

/**
 * 筛选key != value的子集
 *
 * @param key   key
 * @param value value
 * @return DataSet
 */
public DataSet notEquals(String key, String value)

/**
 * 筛选key列的值是否包含value的子集
 *
 * @param key   key
 * @param value value
 * @return DataSet
 */
public DataSet contains(String key, String value)

/**
 * 筛选key列的值like pattern的子集,pattern遵循sql通配符的规则,%表示任意个字符,_表示一个字符
 *
 * @param key     列
 * @param pattern 表达式
 * @return DataSet
 */
public DataSet like(String key, String pattern)
public DataSet notLike(String key, String pattern)

public DataSet startWith(String key, String prefix)
public DataSet endWith(String key, String suffix)
public <T> DataSet in(String key, T... values)
public <T> DataSet in(String key, Collection<T> values)
public <T> DataSet notIn(String key, T... values) 
public <T> DataSet notIn(String key, Collection<T> values)
public DataSet isNull(String... keys)
public DataSet null(String... keys)
public DataSet isNotNull(String... keys)
public DataSet isEmpty(String... keys)
public DataSet empty(String... keys)
public DataSet isNotEmpty(String... keys)
public DataSet notEmpty(String... keys)
public <T> DataSet less(String key, T value)
public <T> DataSet lessEqual(String key, T value)
public <T> DataSet greater(String key, T value)
public <T> DataSet greaterEqual(String key, T value)
public <T> DataSet between(String key, T min, T max)

最近更新 搜索 提交