package org.nutz.dao.util.cri; import org.nutz.dao.entity.Entity; import org.nutz.dao.entity.MappingField; import org.nutz.dao.jdbc.Jdbcs; import org.nutz.dao.jdbc.ValueAdaptor; /** * between ? and ? * @author wendal(wendal1985@gmail.com) * */ public class BetweenExpression extends AbstractSqlExpression { private static final long serialVersionUID = 1L; private Object min; private Object max; public BetweenExpression(String name, Object min, Object max) { super(name); this.min = min; this.max = max; } public void joinSql(Entity<?> en, StringBuilder sb) { if (not) sb.append(" NOT "); sb.append(_fmtcol(en)).append(' ').append("BETWEEN").append(' ').append('?').append(" AND ").append('?'); } public int joinAdaptor(Entity<?> en, ValueAdaptor[] adaptors, int off) { MappingField mf = _field(en); if (null != mf) { adaptors[off++] = mf.getAdaptor(); adaptors[off++] = mf.getAdaptor(); } else { adaptors[off++] = Jdbcs.getAdaptorBy(min); adaptors[off++] = Jdbcs.getAdaptorBy(max); } return off; } public int joinParams(Entity<?> en, Object obj, Object[] params, int off) { params[off++] = min; params[off++] = max; return off; } public int paramCount(Entity<?> en) { return 2; } }