DataSet查询及性能
最后更新:2024-09-07 05:30:00
|
状态:未完成
有些情况下从数据库中查出结果集后还需要经过多次过滤,用来避免多次查询给数据库造成不必要的压力
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是数字类型的话可以先排序再实现一次二分查询(真到这一步的话应该考虑换语言或服务器了)
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)