org.nutz.dao
类 Cnd

java.lang.Object
  继承者 org.nutz.dao.Cnd
所有已实现的接口:
Condition, Criteria, OrderBy, PItem

public class Cnd
extends java.lang.Object
implements OrderBy, Criteria

是 Condition 的一个实现,这个类给你比较方便的方法来构建 Condition 接口的实例。

在 Dao 接口中使用


比如一个通常的查询:

List pets = dao.query(Pet.class, Cnd.where("name","LIKE","B%").asc("name"), null);

链式赋值示例


Cnd.where("id", ">", 34).and("name","LIKE","T%").asc("name");
相当于
WHERE id>34 AND name LIKE 'T%' ORDER BY name ASC

Cnd.orderBy().desc("id");
相当于
ORDER BY id DESC

你还需要知道的是:


作者:
zozoh(zozohtnt@gmail.com)
另请参见:
Condition

构造方法摘要
protected Cnd(SqlExpression exp)
           
 
方法摘要
 Cnd and(SqlExpression exp)
           
 Cnd and(java.lang.String name, java.lang.String op, java.lang.Object value)
           
 Cnd andNot(SqlExpression exp)
           
 Cnd andNot(java.lang.String name, java.lang.String op, java.lang.Object value)
           
 OrderBy asc(java.lang.String name)
           
static SimpleCriteria cri()
           
 OrderBy desc(java.lang.String name)
           
 boolean equals(java.lang.Object obj)
           
static SqlExpression exp(java.lang.String name, java.lang.String op, java.lang.Object value)
           
static SqlExpressionGroup exps(SqlExpression exp)
           
static SqlExpressionGroup exps(java.lang.String name, java.lang.String op, java.lang.Object value)
           
static Condition format(java.lang.String format, java.lang.Object... args)
           
 OrderBy getOrderBy()
           
 Pager getPager()
           
 Pojo getPojo()
           
 int joinAdaptor(Entity<?> en, ValueAdaptor[] adaptors, int off)
          根据自身的元素内容,为适配器数组填充适配器
 int joinParams(Entity<?> en, java.lang.Object obj, java.lang.Object[] params, int off)
          根据自身的元素内容,为参数数组填充参数
 void joinSql(Entity<?> en, java.lang.StringBuilder sb)
          将当前的语句组成元素输出,以便组成 PreparedStatement 语句
static Cnd limit()
           
 Cnd limit(int pageSize)
           
 Cnd limit(int pageNumber, int pageSize)
           
 Cnd limit(Pager pager)
           
static Cnd merge(Cnd first, Cnd second)
          简单合并2个Cnd,以第一个Cnd的值为先
 Cnd or(SqlExpression exp)
           
 Cnd or(java.lang.String name, java.lang.String op, java.lang.Object value)
           
static OrderBy orderBy()
           
 Cnd orNot(SqlExpression exp)
           
 Cnd orNot(java.lang.String name, java.lang.String op, java.lang.Object value)
           
 int paramCount(Entity<?> en)
           
 void setPojo(Pojo pojo)
          设置所属的 POJO 对象
 java.lang.String toSql(Entity<?> en)
          根据一个实体,你可以生成一个条件,这个条件就是 SQL 'WHERE' 关键字后面的那部分。
 java.lang.String toString()
           
 SqlExpressionGroup where()
           
static Cnd where(SqlExpression e)
           
static Cnd where(java.lang.String name, java.lang.String op, java.lang.Object value)
           
static Condition wrap(java.lang.String str)
           
static Condition wrap(java.lang.String sql, java.lang.Object value)
           
 
从类 java.lang.Object 继承的方法
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

构造方法详细信息

Cnd

protected Cnd(SqlExpression exp)
方法详细信息

format

public static Condition format(java.lang.String format,
                               java.lang.Object... args)

wrap

public static Condition wrap(java.lang.String str)

wrap

public static Condition wrap(java.lang.String sql,
                             java.lang.Object value)

exp

public static SqlExpression exp(java.lang.String name,
                                java.lang.String op,
                                java.lang.Object value)

exps

public static SqlExpressionGroup exps(java.lang.String name,
                                      java.lang.String op,
                                      java.lang.Object value)

exps

public static SqlExpressionGroup exps(SqlExpression exp)

where

public static Cnd where(java.lang.String name,
                        java.lang.String op,
                        java.lang.Object value)

where

public static Cnd where(SqlExpression e)

cri

public static SimpleCriteria cri()

orderBy

public static OrderBy orderBy()

limit

public static Cnd limit()

asc

public OrderBy asc(java.lang.String name)
指定者:
接口 OrderBy 中的 asc

desc

public OrderBy desc(java.lang.String name)
指定者:
接口 OrderBy 中的 desc

and

public Cnd and(SqlExpression exp)

and

public Cnd and(java.lang.String name,
               java.lang.String op,
               java.lang.Object value)

or

public Cnd or(SqlExpression exp)

or

public Cnd or(java.lang.String name,
              java.lang.String op,
              java.lang.Object value)

andNot

public Cnd andNot(SqlExpression exp)

andNot

public Cnd andNot(java.lang.String name,
                  java.lang.String op,
                  java.lang.Object value)

orNot

public Cnd orNot(SqlExpression exp)

orNot

public Cnd orNot(java.lang.String name,
                 java.lang.String op,
                 java.lang.Object value)

getPager

public Pager getPager()
指定者:
接口 Criteria 中的 getPager

toSql

public java.lang.String toSql(Entity<?> en)
从接口 Condition 复制的描述
根据一个实体,你可以生成一个条件,这个条件就是 SQL 'WHERE' 关键字后面的那部分。

当然你返回的字符串如果不是以 WHERE 或者 ORDER BY 开头,将会被 Nutz.Dao 加上 WHERE。

你的字符串前后的空白会被截除

指定者:
接口 Condition 中的 toSql
参数:
en - 实体
返回:
条件字符串

equals

public boolean equals(java.lang.Object obj)
覆盖:
java.lang.Object 中的 equals

toString

public java.lang.String toString()
指定者:
接口 PItem 中的 toString
覆盖:
java.lang.Object 中的 toString
返回:
当前语句组成元素的日志打印字符串

setPojo

public void setPojo(Pojo pojo)
从接口 PItem 复制的描述
设置所属的 POJO 对象

指定者:
接口 PItem 中的 setPojo
参数:
pojo - 所属的 POJO 对象

getPojo

public Pojo getPojo()
指定者:
接口 PItem 中的 getPojo
返回:
获得所属的 POJO 语句

joinSql

public void joinSql(Entity<?> en,
                    java.lang.StringBuilder sb)
从接口 PItem 复制的描述
将当前的语句组成元素输出,以便组成 PreparedStatement 语句

指定者:
接口 PItem 中的 joinSql
参数:
en - 参考的实体,如果为 null,则取当前元素所在 POJO 的关联实体
sb - 文本缓冲

joinAdaptor

public int joinAdaptor(Entity<?> en,
                       ValueAdaptor[] adaptors,
                       int off)
从接口 PItem 复制的描述
根据自身的元素内容,为适配器数组填充适配器

指定者:
接口 PItem 中的 joinAdaptor
参数:
en - 参考的实体,如果为 null,则取当前元素所在 POJO 的关联实体
adaptors - 待填充的适配器数组
off - 开始下标
返回:
结束后,下一项开始的下标

joinParams

public int joinParams(Entity<?> en,
                      java.lang.Object obj,
                      java.lang.Object[] params,
                      int off)
从接口 PItem 复制的描述
根据自身的元素内容,为参数数组填充参数

指定者:
接口 PItem 中的 joinParams
参数:
en - 参考的实体,如果为 null,则取当前元素所在 POJO 的关联实体
obj - 当前操作对象
params - 待填充的参数数组
off - 开始下标
返回:
结束后,下一项开始的下标

paramCount

public int paramCount(Entity<?> en)
指定者:
接口 PItem 中的 paramCount
参数:
en - 参考的实体,如果为 null,则取当前元素所在 POJO 的关联实体
返回:
本语句元素所包含的参数数目

where

public SqlExpressionGroup where()
指定者:
接口 Criteria 中的 where

getOrderBy

public OrderBy getOrderBy()
指定者:
接口 Criteria 中的 getOrderBy

limit

public Cnd limit(int pageNumber,
                 int pageSize)

limit

public Cnd limit(int pageSize)

limit

public Cnd limit(Pager pager)

merge

public static Cnd merge(Cnd first,
                        Cnd second)
简单合并2个Cnd,以第一个Cnd的值为先