public class Param extends Object implements Serializable
请通过SqlParam类的静态方法取得本类对象。
本类保存了有in或not int所需得集合参数,或者双/三目运算符所需的参数,参数会经过SqlParam严格验证后才会创建本类对象。 如果value、column为null,或者集合长度为0,那么都不会产生本类对象。
| 限定符和类型 | 方法和说明 |
|---|---|
protected String |
foreach(Collection<?> collection,
Map<String,Object> param,
NameGenerator ng,
com.gframework.sqlparam.StringWrapper stringWrapper)
in和not in语句循环生成操作.
|
protected String |
foreach(Object array,
Map<String,Object> param,
NameGenerator ng,
com.gframework.sqlparam.StringWrapper stringWrapper)
in和not in语句循环生成操作.
|
String |
getColumn() |
String |
getOperator() |
String |
getSql(Map<String,Object> param,
NameGenerator ng)
按照mybatis风格取得当前条件的sql语句.
|
String |
getSql(Map<String,Object> param,
NameGenerator ng,
com.gframework.sqlparam.StringWrapper stringWrapper)
取得当前条件的sql语句.
|
int |
getType() |
Object |
getValue() |
String |
toString() |
@Nullable public String getSql(@Nullable Map<String,Object> param, @Nullable NameGenerator ng, com.gframework.sqlparam.StringWrapper stringWrapper)
例如key=#{value},这种最直接的条件语句。 其他返回值范例:
需要注意的时,你需要尽量在外部维护一个NameGenerator生成器。 如果你单独使用Param类并且只有一个本类对象参与运算的时候,名称生成器时多余的,你可以传null。 但是如果你使用了多个Param,那么就可能出现预编译名称冲突问题,尤其是在in或not in语句生成的时候,必须依赖一个NameGenerator, 如果没有传递,则会自己实例化一个全新的NameGenerator接口对象,如果你用了两个Param,而且都有in或notin,那么就会出现问题。
param - 存放编译参数值得集合,如果为null则不存放。ng - where条件预编译参数名称生成器stringWrapper - sql语句中的参数包装器,例如mybatis在sql语句中参数前后需要加上"#{}或${}",但是在map中的参数名是不能够包含这些的,同时jdbc更不需要这些,为了兼容这些情况而需要此类对象NameGenerator@Nullable public String getSql(@Nullable Map<String,Object> param, @Nullable NameGenerator ng)
例如key=#{value},这种最直接的条件语句。 其他返回值范例:
需要注意的时,你需要尽量在外部维护一个NameGenerator生成器。 如果你单独使用Param类并且只有一个本类对象参与运算的时候,名称生成器时多余的,你可以传null。 但是如果你使用了多个Param,那么就可能出现预编译名称冲突问题,尤其是在in或not in语句生成的时候,必须依赖一个NameGenerator, 如果没有传递,则会自己实例化一个全新的NameGenerator接口对象,如果你用了两个Param,而且都有in或notin,那么就会出现问题。
param - 存放编译参数值得集合,如果为null则不存放。ng - where条件预编译参数名称生成器getSql(Map, NameGenerator, StringWrapper),
NameGeneratorprotected String foreach(@Nullable Collection<?> collection, @Nullable Map<String,Object> param, NameGenerator ng, com.gframework.sqlparam.StringWrapper stringWrapper)
返回值范例:(#{id1},#{id2},...)
忽略null值protected String foreach(@Nullable Object array, @Nullable Map<String,Object> param, NameGenerator ng, com.gframework.sqlparam.StringWrapper stringWrapper)
返回值范例:(#{id1},#{id2},...)
忽略null值public String getOperator()
public String getColumn()
public Object getValue()
public int getType()
Copyright © 2020 Pivotal Software, Inc.. All rights reserved.