跳过导航链接
org.nutz.dao

类 Cnd

    • 字段详细资料

      • dftFromFieldMatcher

        protected static FieldMatcher dftFromFieldMatcher
    • 方法详细资料

      • format

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

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

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

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

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

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

        public static Cnd where(String name,
                                String op,
                                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(String name)
        按Java属性/字段属性进行升序. 不进行SQL特殊字符抹除 cnd.asc("age")
        指定者:
        asc 在接口中 OrderBy
        参数:
        name - Java属性/字段属性
      • desc

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

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

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

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

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

        public String toString()
        直接转为SQL语句, 如果setPojo未曾调用, 条件表达式中的name属性未映射为数据库字段
        指定者:
        toString 在接口中 PItem
        覆盖:
        toString 在类中 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,
                            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,
                              Object obj,
                              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(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,
                               Object obj)
        用默认规则(忽略零值和空值)生成Cnd实例
        参数:
        dao - Dao实例,不能为null
        obj - 对象, 若为null,则返回值为null, 不可以是Class/字符串/数值/布尔类型
        返回:
        Cnd实例
      • from

        public static Cnd from(Dao dao,
                               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条件
      • _ex

        public static boolean _ex(Object value)
      • nst

        public static Nesting nst(Dao dao)
        构造一个可嵌套条件,需要dao支持才能映射类与表和属性与列

Copyright © 2017. All rights reserved.