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
你还需要知道的是:
- 你设置的字段名,是 java 的字段名 -- 如果 Entity 里有,那么会被转换成数据库字段名
- 如果你设置的是 entity 中不存在的 java 字段名,则被认为是数据库字段名,将直接使用
- 你的值,如果是字符串,或者其他类字符串对象(某种 CharSequence),那么在转换成 SQL 时,会正确被单引号包裹
- 你的值如果是不可理解的自定义对象,会被转化成字符串处理
- 作者:
- zozoh(zozohtnt@gmail.com)
- 另请参见:
Condition
方法摘要 |
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的值为先