`
ry.china
  • 浏览: 139862 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

Mybatis版PropertyFilter实现2

 
阅读更多
import java.util.List;

public class Criterion {
  private String condition;

  private Object value;

  private Object secondValue;

  private boolean noValue;

  private boolean singleValue;

  private boolean betweenValue;

  private boolean listValue;

  private String typeHandler;

  public String getCondition() {
    return condition;
  }

  public Object getValue() {
    return value;
  }

  public Object getSecondValue() {
    return secondValue;
  }

  public boolean isNoValue() {
    return noValue;
  }

  public boolean isSingleValue() {
    return singleValue;
  }

  public boolean isBetweenValue() {
    return betweenValue;
  }

  public boolean isListValue() {
    return listValue;
  }

  public String getTypeHandler() {
    return typeHandler;
  }

  protected Criterion(String condition){
    super();
    this.condition = condition;
    this.typeHandler = null;
    this.noValue = true;
  }

  protected Criterion(String condition, Object value, String typeHandler){
    super();
    this.condition = condition;
    this.value = value;
    this.typeHandler = typeHandler;
    if(value instanceof List<?>) {
      this.listValue = true;
    }
    else if(value instanceof Object[]) {
      this.listValue = true;
    }
    else {
      this.singleValue = true;
    }
  }

  protected Criterion(String condition, Object value){
    this(condition, value, null);
  }

  protected Criterion(String condition, Object value, Object secondValue, String typeHandler){
    super();
    this.condition = condition;
    this.value = value;
    this.secondValue = secondValue;
    this.typeHandler = typeHandler;
    this.betweenValue = true;
  }

  protected Criterion(String condition, Object value, Object secondValue){
    this(condition, value, secondValue, null);
  }
  
  
}

 

import java.util.ArrayList;
import java.util.List;

public class Criteria {
  protected List<Criterion> criteria;

  protected Criteria() {
    super();
    criteria = new ArrayList<Criterion>();
  }

  public boolean isValid() {
    return criteria.size() > 0;
  }

  public List<Criterion> getAllCriteria() {
    return criteria;
  }

  public List<Criterion> getCriteria() {
    return criteria;
  }

  protected void addCriterion(String condition) {
    if(condition == null) {
      throw new RuntimeException("Value for condition cannot be null");
    }
    criteria.add(new Criterion(condition));
  }

  protected void addCriterion(String condition, Object value, String property) {
    if(value == null) {
      throw new RuntimeException("Value for " + property + " cannot be null");
    }
    criteria.add(new Criterion(condition, value));
  }

  protected void addCriterion(String condition, Object value1, Object value2, String property) {
    if(value1 == null || value2 == null) {
      throw new RuntimeException("Between values for " + property + " cannot be null");
    }
    criteria.add(new Criterion(condition, value1, value2));
  }

}

 

 

分享到:
评论

相关推荐

    比springside PropertyFilter增强灵活的FieldFilter,

    2. **需求分析**:FieldFilter出现的原因,可能是原生的PropertyFilter不能满足某些特定的过滤需求,例如处理复杂的数据结构,或者需要支持动态的过滤条件等。 3. **设计模式**:FieldFilter可能采用了哪种设计模式...

    SpringSide3的PropertyFilter条件过滤应用小结

    标题“SpringSide3的PropertyFilter条件过滤应用小结”指的是对SpringSide项目中PropertyFilter类的一个功能总结,这个类主要用于实现基于属性的条件过滤。在Java Web开发中,尤其是在使用Spring框架时,我们经常...

    Java_squigly Filter是一个Jackson JSON PropertyFilter,它使用Facebo.zip

    这种语法使得过滤规则易于理解和实现,特别适合于动态或者条件性的属性筛选。 在实际使用中,你需要首先在项目中引入Jackson库和Java_squigly Filter的相关依赖。接着,你可以创建一个`SimpleBeanPropertyFilter`...

    JSON死循环解决办法

    而对于复杂场景,可能需要使用PropertyFilter或JsonBeanProcessor来实现更灵活的控制。在选择解决方案时,还需要考虑代码的可维护性和性能影响。为了避免全局影响,通常推荐使用filter或processor,而不是直接修改...

    java与json之间的互操作.pdf

    - JSON-lib还支持自定义转换逻辑,通过实现`JsonValueProcessor`接口或使用`PropertyFilter`来定制序列化和反序列化过程。 5. XML与JSON的转换: - 使用`XMLSerializer`类,可以通过`toXML()`方法将JSON对象转换...

    改良版的json-lib2.4

    config.setJsonPropertyFilter(new PropertyFilter(){ public boolean apply(Object source, String name, Object value) { if(name.equals("parentGroup") || name.equals("childGroups")) { return true; } else {...

    json-lib 技术指南

    JSON-lib 提供了 `PropertyFilter` 接口,可以用来控制哪些 JavaBean 属性会被包含在 JSON 或 XML 中。这可以通过 `JsonConfig` 配置实现。另外,`JSONSerializer` 的 `prettyPrint()` 方法可以用于生成格式化的 ...

    Fastjson介绍

    - **自定义序列化规则**:通过实现`NameFilter`、`PropertyFilter`等接口来自定义序列化过程。 ```java public class User { @JSONField(name="ID") private int id; public int getId() { return id; } ...

    我积攒的java工具类 基本满足开发需要的工具类

    D:\002 我的工具类\011 对象\对象整体\PropertyFilter.java D:\002 我的工具类\011 对象\对象整体\valid.java D:\002 我的工具类\012 计算地球两个经纬度之间距离 D:\002 我的工具类\012 计算地球两个经纬度之间距离...

    java与json之间的互操作

    可以通过`JsonConfig`类配置转换规则,例如定义自定义的`JsonValueProcessor`来处理特定类型的字段,或者使用`PropertyFilter`来过滤JSON序列化过程中不想包含的属性。 在实际应用中,除了JSON-lib之外,还有其他的...

    Google Datastore for Java 文档摘录(一)

    最后,关于源码分析,Google Datastore 的 Java 客户端库提供了丰富的类和接口,如 `Datastore`, `Entity`, `Key`, `Query` 等,这些都是实现与 Datastore 交互的基础。深入研究这些源码可以帮助我们更好地理解其...

    java与json之间的互操作[参照].pdf

    6. **高级功能**:JSON-lib还支持更复杂的功能,例如自定义序列化和反序列化过程,通过实现`JsonValueProcessor`接口,你可以控制特定类型的对象如何被转换为JSON。另外,通过设置`JsonConfig`对象,可以指定属性...

    log4net 使用手册1

    5. PropertyFilter:当消息匹配指定的属性值时记录日志。 6. StringMathFilter:当消息包含指定字符串时记录日志。 **Layouts** Layouts决定了日志的输出格式,可以是线性的,也可以是XML。每个Appender只能有一个...

Global site tag (gtag.js) - Google Analytics