跳过导航链接
org.nutz.dao

类 Cnd

    • 构造器概要

      构造器 
      限定符 构造器和说明
      protected Cnd(SqlExpression exp) 
    • 方法概要

      所有方法 静态方法 实例方法 具体方法 已过时的方法 
      限定符和类型 方法和说明
      static boolean _ex(java.lang.Object value) 
      Cnd and(SqlExpression exp)
      Cnd.where(...).and(Cnd.exp(.........))
      Cnd and(java.lang.String name, java.lang.String op, java.lang.Object value)
      Cnd.where(...).and("age", "<", 40)
      Cnd andEX(java.lang.String name, java.lang.String op, java.lang.Object value)
      若value为null/空白字符串/空集合/空数组,则本条件不添加.
      Cnd andNot(SqlExpression exp)
      and一个条件表达式并且取非
      Cnd andNot(java.lang.String name, java.lang.String op, java.lang.Object value)
      and一个条件,并且取非
      OrderBy asc(java.lang.String name)
      按Java属性/字段属性进行升序.
      static Cnd byCri(SimpleCriteria cri)
      用SimpleCriteria生成一个Cnd实例
      static SimpleCriteria cri()
      生成一个简单条件对象
      OrderBy desc(java.lang.String name)
      按Java属性/字段属性进行降序.
      boolean equals(java.lang.Object obj)
      判断两个Cnd是否相等
      static SqlExpression exp(java.lang.String name, java.lang.String op, java.lang.Object value)
      生成一个条件表达式
      protected static SqlExpression expEX(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)
      用字符串和参数格式化出一个条件语句,注意,不会抹除特殊字符
      static Cnd from(Dao dao, java.lang.Object obj)
      用默认规则(忽略零值和空值)生成Cnd实例
      static Cnd from(Dao dao, java.lang.Object obj, FieldMatcher matcher)
      根据一个对象生成Cnd条件, FieldMatcher详细控制.
      SimpleCriteria getCri()
      获取内部的where属性
      GroupBy getGroupBy() 
      OrderBy getOrderBy()
      单独获取排序条件,建议使用asc或desc,而非直接取出排序条件.
      Pager getPager()
      获取分页对象,默认是null
      Pojo getPojo()
      获取已设置的Pojo, 默认为null
      GroupBy groupBy(java.lang.String... names)
      分组
      GroupBy having(Condition cnd)
      分组中的having条件
      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()
      已过时。 
      Since 1.b.50 不推荐使用这个函数构建 Cnd 的实例,因为看起来语意不明的样子
      Cnd limit(int pageSize)
      已过时。 
      Cnd limit(int pageNumber, int pageSize)
      分页
      Cnd limit(Pager pager)
      直接设置分页对象, 可以new Pager或dao.createPager得到
      static Cnd NEW() 
      Cnd or(SqlExpression exp)
      Cnd.where(...).or(Cnd.exp(.........))
      Cnd or(java.lang.String name, java.lang.String op, java.lang.Object value)
      Cnd.where(...).or("age", "<", 40)
      static OrderBy orderBy()
      单纯生成一个Orderby条件
      OrderBy orderBy(java.lang.String name, java.lang.String dir)
      当dir为asc时判断为升序,否则判定为降序. cnd.orderBy("age", "asc")
      Cnd orEX(java.lang.String name, java.lang.String op, java.lang.Object value)
      若value为null/空白字符串/空集合/空数组,则本条件不添加.
      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,可以用于toString时的name属性映射
      java.lang.String toSql(Entity<?> en)
      根据实体Entity将本对象转化为sql语句, 条件表达式中的name属性将转化为数据库字段名称
      java.lang.String toString()
      直接转为SQL语句, 如果setPojo未曾调用, 条件表达式中的name属性未映射为数据库字段
      SqlExpressionGroup where()
      获取Cnd中的where部分,注意,对SqlExpressionGroup的修改也会反映到Cnd中,因为是同一个对象
      static Cnd where(SqlExpression e)
      用一个条件表达式构建一个Cnd实例
      static Cnd where(java.lang.String name, java.lang.String op, java.lang.Object value)
      生成一个新的Cnd实例
      static Condition wrap(java.lang.String str)
      直接用字符串生成一个条件对象
      static Condition wrap(java.lang.String sql, java.lang.Object value)
      使用CharSegment拼装一个条件对象
      • 从类继承的方法 java.lang.Object

        clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • 字段详细资料

      • dftFromFieldMatcher

        protected static FieldMatcher dftFromFieldMatcher
    • 方法详细资料

      • format

        public static Condition format(java.lang.String format,
                                       java.lang.Object... args)
        用字符串和参数格式化出一个条件语句,注意,不会抹除特殊字符
        参数:
        format - sql条件
        args - 参数
        返回:
        条件对象
      • wrap

        public static Condition wrap(java.lang.String str)
        直接用字符串生成一个条件对象
        参数:
        str - sql条件
        返回:
        条件对象
      • wrap

        public static Condition wrap(java.lang.String sql,
                                     java.lang.Object value)
        使用CharSegment拼装一个条件对象
        参数:
        sql - sql模板
        value - 参数
        返回:
        条件对象
        另请参阅:
        CharSegment
      • exp

        public static SqlExpression exp(java.lang.String name,
                                        java.lang.String op,
                                        java.lang.Object value)
        生成一个条件表达式
        参数:
        name - Java属性或字段名称
        op - 操作符,可以是 = like 等等
        value - 参数值.
        返回:
        条件表达式
      • exps

        public static SqlExpressionGroup exps(java.lang.String name,
                                              java.lang.String op,
                                              java.lang.Object value)
        生成一个条件表达式组
        参数:
        name - Java属性或字段名称
        op - 操作符,可以是 = like 等等
        value - 参数值.
        返回:
        条件表达式组
      • exps

        public static SqlExpressionGroup exps(SqlExpression exp)
        将一个条件表达式封装为条件表达式组
        参数:
        exp - 原本的条件表达式
        返回:
        条件表达式组
      • where

        public static Cnd where(java.lang.String name,
                                java.lang.String op,
                                java.lang.Object value)
        生成一个新的Cnd实例
        参数:
        name - java属性或字段名称, 推荐用Java属性
        op - 操作符,可以是= like等等
        value - 参数值. 如果操作符是between,参数值需要是new Object[]{12,39}形式
        返回:
        Cnd实例
      • where

        public static Cnd where(SqlExpression e)
        用一个条件表达式构建一个Cnd实例
        参数:
        e - 条件表达式
        返回:
        Cnd实例
      • cri

        public static SimpleCriteria cri()
        生成一个简单条件对象
      • orderBy

        public static OrderBy orderBy()
        单纯生成一个Orderby条件
        返回:
        OrderBy实例
      • limit

        public static Cnd limit()
        已过时。 Since 1.b.50 不推荐使用这个函数构建 Cnd 的实例,因为看起来语意不明的样子
        返回:
        一个 Cnd 的实例
      • NEW

        public static Cnd NEW()
        返回:
        一个 Cnd 的实例
      • byCri

        public static Cnd byCri(SimpleCriteria cri)
        用SimpleCriteria生成一个Cnd实例
        参数:
        cri - SimpleCriteria实例
        返回:
        Cnd实例
      • getCri

        public SimpleCriteria getCri()
        获取内部的where属性
        返回:
        SimpleCriteria实例
      • asc

        public OrderBy asc(java.lang.String name)
        按Java属性/字段属性进行升序. 不进行SQL特殊字符抹除 cnd.asc("age")
        指定者:
        asc 在接口中 OrderBy
        参数:
        name - Java属性/字段属性
      • desc

        public OrderBy desc(java.lang.String name)
        按Java属性/字段属性进行降序. 不进行SQL特殊字符抹除 cnd.desc("age")
        指定者:
        desc 在接口中 OrderBy
        参数:
        name - Java属性/字段属性
      • orderBy

        public OrderBy orderBy(java.lang.String name,
                               java.lang.String dir)
        当dir为asc时判断为升序,否则判定为降序. cnd.orderBy("age", "asc")
        指定者:
        orderBy 在接口中 OrderBy
        参数:
        name - Java属性/字段属性
        dir - asc或其他
        返回:
        OrderBy实例,事实上就是当前对象
      • and

        public Cnd and(SqlExpression exp)
        Cnd.where(...).and(Cnd.exp(.........)) 或 Cnd.where(...).and(Cnd.exps(.........))
        参数:
        exp - 条件表达式
        返回:
        当前对象,用于链式调用
      • and

        public Cnd and(java.lang.String name,
                       java.lang.String op,
                       java.lang.Object value)
        Cnd.where(...).and("age", "<", 40)
        参数:
        name - Java属性或字段名称,推荐用Java属性,如果有的话
        op - 操作符,可以是 = like等
        value - 参数值, 如果是between的话需要传入new Object[]{19,28}
        返回:
        当前对象,用于链式调用
      • or

        public Cnd or(SqlExpression exp)
        Cnd.where(...).or(Cnd.exp(.........)) 或 Cnd.where(...).or(Cnd.exps(.........))
        参数:
        exp - 条件表达式
        返回:
        当前对象,用于链式调用
      • or

        public Cnd or(java.lang.String name,
                      java.lang.String op,
                      java.lang.Object value)
        Cnd.where(...).or("age", "<", 40)
        参数:
        name - Java属性或字段名称,推荐用Java属性,如果有的话
        op - 操作符,可以是 = like等
        value - 参数值, 如果是between的话需要传入new Object[]{19,28}
        返回:
        当前对象,用于链式调用
      • andNot

        public Cnd andNot(SqlExpression exp)
        and一个条件表达式并且取非
        参数:
        exp - 条件表达式
        返回:
        当前对象,用于链式调用
      • andNot

        public Cnd andNot(java.lang.String name,
                          java.lang.String op,
                          java.lang.Object value)
        and一个条件,并且取非
        参数:
        name - Java属性或字段名称,推荐用Java属性,如果有的话
        op - 操作符,可以是 = like等
        value - 参数值, 如果是between的话需要传入new Object[]{19,28}
        返回:
        当前对象,用于链式调用
      • getPager

        public Pager getPager()
        获取分页对象,默认是null
        指定者:
        getPager 在接口中 Criteria
      • toSql

        public java.lang.String toSql(Entity<?> en)
        根据实体Entity将本对象转化为sql语句, 条件表达式中的name属性将转化为数据库字段名称
        指定者:
        toSql 在接口中 Condition
        参数:
        en - 实体
        返回:
        条件字符串
      • equals

        public boolean equals(java.lang.Object obj)
        判断两个Cnd是否相等
        覆盖:
        equals 在类中 java.lang.Object
      • toString

        public java.lang.String toString()
        直接转为SQL语句, 如果setPojo未曾调用, 条件表达式中的name属性未映射为数据库字段
        指定者:
        toString 在接口中 PItem
        覆盖:
        toString 在类中 java.lang.Object
        返回:
        当前语句组成元素的日志打印字符串
      • setPojo

        public void setPojo(Pojo pojo)
        关联的Pojo,可以用于toString时的name属性映射
        指定者:
        setPojo 在接口中 PItem
        参数:
        pojo - 所属的 POJO 对象
      • getPojo

        public Pojo getPojo()
        获取已设置的Pojo, 默认为null
        指定者:
        getPojo 在接口中 PItem
        返回:
        获得所属的 POJO 语句
      • joinSql

        public void joinSql(Entity<?> en,
                            java.lang.StringBuilder sb)
        从接口复制的说明: PItem
        将当前的语句组成元素输出,以便组成 PreparedStatement 语句
        指定者:
        joinSql 在接口中 PItem
        参数:
        en - 参考的实体,如果为 null,则取当前元素所在 POJO 的关联实体
        sb - 文本缓冲
      • joinAdaptor

        public int joinAdaptor(Entity<?> en,
                               ValueAdaptor[] adaptors,
                               int off)
        从接口复制的说明: PItem
        根据自身的元素内容,为适配器数组填充适配器
        指定者:
        joinAdaptor 在接口中 PItem
        参数:
        en - 参考的实体,如果为 null,则取当前元素所在 POJO 的关联实体
        adaptors - 待填充的适配器数组
        off - 开始下标
        返回:
        结束后,下一项开始的下标
      • joinParams

        public int joinParams(Entity<?> en,
                              java.lang.Object obj,
                              java.lang.Object[] params,
                              int off)
        从接口复制的说明: PItem
        根据自身的元素内容,为参数数组填充参数
        指定者:
        joinParams 在接口中 PItem
        参数:
        en - 参考的实体,如果为 null,则取当前元素所在 POJO 的关联实体
        obj - 当前操作对象
        params - 待填充的参数数组
        off - 开始下标
        返回:
        结束后,下一项开始的下标
      • paramCount

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

        public SqlExpressionGroup where()
        获取Cnd中的where部分,注意,对SqlExpressionGroup的修改也会反映到Cnd中,因为是同一个对象
        指定者:
        where 在接口中 Criteria
      • groupBy

        public GroupBy groupBy(java.lang.String... names)
        分组
        指定者:
        groupBy 在接口中 GroupBy
        参数:
        names - java属性或数据库字段名称
      • getOrderBy

        public OrderBy getOrderBy()
        单独获取排序条件,建议使用asc或desc,而非直接取出排序条件. 取出的对象仅包含分组条件, 不包含where等部分
        指定者:
        getOrderBy 在接口中 Criteria
      • limit

        public Cnd limit(int pageNumber,
                         int pageSize)
        分页
        参数:
        pageNumber - 页数, 若小于1则代表全部记录
        pageSize - 每页数量
        返回:
        当前对象,用于链式调用
      • limit

        @Deprecated
        public Cnd limit(int pageSize)
        已过时。 
        设置每页大小,并设置页数为1
        参数:
        pageSize - 每页大小
        返回:
        当前对象,用于链式调用
      • limit

        public Cnd limit(Pager pager)
        直接设置分页对象, 可以new Pager或dao.createPager得到
        参数:
        pager - 分页对象
        返回:
        当前对象,用于链式调用
      • from

        public static Cnd from(Dao dao,
                               java.lang.Object obj)
        用默认规则(忽略零值和空值)生成Cnd实例
        参数:
        dao - Dao实例,不能为null
        obj - 对象, 若为null,则返回值为null, 不可以是Class/字符串/数值/布尔类型
        返回:
        Cnd实例
      • from

        public static Cnd from(Dao dao,
                               java.lang.Object obj,
                               FieldMatcher matcher)
        根据一个对象生成Cnd条件, FieldMatcher详细控制.

        assertEquals(" WHERE name='wendal' AND age=0", Cnd.from(dao, pet, FieldMatcher.make("age|name", null, true).setIgnoreDate(true)).toString());

        参数:
        dao - Dao实例
        obj - 基对象,不可以是Class,字符串,数值和Boolean
        matcher - 过滤字段属性, 可配置哪些字段可用/不可用/是否忽略空值/是否忽略0值/是否忽略java.util.Date类及其子类的对象/是否忽略@Id所标注的主键属性/是否忽略 \@Name 所标注的主键属性/是否忽略 \@Pk 所引用的复合主键
        返回:
        Cnd条件
      • andEX

        public Cnd andEX(java.lang.String name,
                         java.lang.String op,
                         java.lang.Object value)
        若value为null/空白字符串/空集合/空数组,则本条件不添加.
        另请参阅:
        and(String, String, Object)
      • orEX

        public Cnd orEX(java.lang.String name,
                        java.lang.String op,
                        java.lang.Object value)
        若value为null/空白字符串/空集合/空数组,则本条件不添加.
        另请参阅:
        or(String, String, Object)
      • expEX

        protected static SqlExpression expEX(java.lang.String name,
                                             java.lang.String op,
                                             java.lang.Object value)
      • _ex

        public static boolean _ex(java.lang.Object value)