public class Columns extends Object implements Serializable
| 限定符和类型 | 字段和说明 |
|---|---|
private List<Column> |
cols |
static Columns |
EMPTY |
private static char |
SQL_CACHE_SEPARATOR |
private boolean |
useSafeMode
在很多场景下,只会根据字段来查询,如果字段值为 null 的情况,Columns 会直接忽略 null 值,此时会造成结果不准确的情况
比如 :
```
public ShopInfo findFirstByAccountId(BigInteger accountId) {
return findFirstByColumns(Columns.create("account_id", accountId));
}
```
根据账户 id 来查询该账户对应的 ShopInfo,此时 如果传入 null 值,则返回了 第一个 ShopInfo,这个 ShopInfo 可能并不是该账户的。
|
| 构造器和说明 |
|---|
Columns() |
| 限定符和类型 | 方法和说明 |
|---|---|
Columns |
add(Column column)
add new column in Columns
|
Columns |
add(Columns columns)
add Columns
|
Columns |
addToFirst(Column column)
add new column in Columns
|
Columns |
addToFirst(Columns columns)
add Columns To First
|
Columns |
append(Columns columns)
追加 新的 columns
|
Columns |
appendIf(Columns columns,
Boolean condition)
追加 新的 columns
|
Columns |
between(String name,
Object start,
Object end)
between
|
private void |
buildCacheKey(StringBuilder s,
List<Column> columns) |
boolean |
containsName(String name) |
static Columns |
create() |
static Columns |
create(Column column) |
static Columns |
create(List<Column> columns) |
static Columns |
create(String name,
Object value) |
Columns |
eq(String name,
Object value)
equals
|
Columns |
ge(String name,
Object value)
大于等于 great or equal
|
String |
getCacheKey() |
List<Column> |
getList() |
private static String |
getLogicString(String logic) |
Object[] |
getValueArray() |
Columns |
group(Columns columns)
group
|
Columns |
groupBy(String name) |
Columns |
groupIf(Columns columns,
Boolean condition) |
Columns |
gt(String name,
Object value)
大于 great than
|
Columns |
having(Columns columns) |
Columns |
having(String name) |
Columns |
having(String sql,
Object... paras) |
Columns |
in(String name,
Collection<?> collection)
in Collection
|
Columns |
in(String name,
Object... arrays)
in arrays
|
boolean |
isEmpty() |
Columns |
isNotNull(String name)
IS NOT NULL
|
Columns |
isNotNullIf(String name,
Boolean condition)
IS NOT NULL
|
Columns |
isNull(String name)
IS NULL
|
Columns |
isNullIf(String name,
Boolean condition) |
boolean |
isUseSafeMode() |
Columns |
le(String name,
Object value)
小于等于 less or equal
|
Columns |
like(String name,
Object value)
like
|
Columns |
likeAppendPercent(String name,
Object value)
自动添加两边 % 的like
|
Columns |
lt(String name,
Object value)
小于 less than
|
static void |
main(String[] args) |
Columns |
ne(String name,
Object value)
not equals !
|
Columns |
notBetween(String name,
Object start,
Object end)
not between
|
Columns |
notIn(String name,
Collection<?> collection)
not in Collection
|
Columns |
notIn(String name,
Object... arrays)
not int arrays
|
Columns |
or() |
Columns |
orEqs(String name,
Object... values) |
Columns |
ors(String name,
String logic,
Object... values) |
static Columns |
safeCreate(String name,
Object value) |
static Columns |
safeMode() |
Columns |
sqlPart(String sql)
customize string sql
|
Columns |
sqlPart(String sql,
Object... paras)
customize string sql
|
Columns |
sqlPartIf(String sql,
Boolean condition)
customize string sql
|
Columns |
sqlPartIf(String sql,
Boolean condition,
Object... paras)
customize string sql
|
Columns |
sqlPartWithoutLink(String sql)
customize string sql
|
Columns |
sqlPartWithoutLink(String sql,
Object... paras)
customize string sql
|
Columns |
sqlPartWithoutLinkIf(String sql,
Boolean condition)
customize string sql
|
Columns |
sqlPartWithoutLinkIf(String sql,
Boolean condition,
Object... paras)
customize string sql
|
private String |
toMysqlSql()
这个只是用于调试
|
private String |
toSqlServerSql()
这个只是用于调试
|
String |
toString() |
String |
toWherePartSql()
输出 where 后面的 sql 部分,风格是 mysql 的风格 SQL
|
String |
toWherePartSql(boolean withWhereKeyword)
输出 where 后面的 sql 部分,风格是 mysql 的风格 SQL
|
String |
toWherePartSql(char separator,
boolean withWhereKeyword)
输出 where 部分的 sql
|
Columns |
unUseSafeMode() |
Columns |
useSafeMode() |
private boolean useSafeMode
比如 : ``` public ShopInfo findFirstByAccountId(BigInteger accountId) { return findFirstByColumns(Columns.create("account_id", accountId)); } ``` 根据账户 id 来查询该账户对应的 ShopInfo,此时 如果传入 null 值,则返回了 第一个 ShopInfo,这个 ShopInfo 可能并不是该账户的。
在这种场景下,我们就不应该允许用户传入 null 值进行查询,当传入 null 的时候直接抛出异常即可 。
此时,我们可以使用如下代码进行查询。
``` public ShopInfo findFirstByAccountId(BigInteger accountId) { return findFirstByColumns(Columns.safeMode().eq("account_id", accountId)); } ```
private static final char SQL_CACHE_SEPARATOR
public Columns()
public static Columns safeCreate(String name, Object value)
public Columns addToFirst(Column column)
column - public Columns addToFirst(Columns columns)
columns - public Columns likeAppendPercent(String name, Object value)
name - value - public Columns isNotNullIf(String name, Boolean condition)
name - condition - public Columns in(String name, Collection<?> collection)
name - collection - public Columns notIn(String name, Collection<?> collection)
name - collection - public Columns between(String name, Object start, Object end)
name - start - end - public Columns notBetween(String name, Object start, Object end)
name - start - end - public Columns sqlPart(String sql, Object... paras)
sql - paras - public Columns sqlPartIf(String sql, Boolean condition)
sql - condition - public Columns sqlPartIf(String sql, Boolean condition, Object... paras)
sql - condition - paras - public Columns sqlPartWithoutLink(String sql)
sql - public Columns sqlPartWithoutLink(String sql, Object... paras)
sql - paras - public Columns sqlPartWithoutLinkIf(String sql, Boolean condition)
sql - condition - public Columns sqlPartWithoutLinkIf(String sql, Boolean condition, Object... paras)
sql - condition - paras - public Columns appendIf(Columns columns, Boolean condition)
columns - public boolean isUseSafeMode()
public Columns useSafeMode()
public Columns unUseSafeMode()
public boolean isEmpty()
public Object[] getValueArray()
public boolean containsName(String name)
public String getCacheKey()
private void buildCacheKey(StringBuilder s, List<Column> columns)
private static String getLogicString(String logic)
logic - public String toWherePartSql()
public String toWherePartSql(boolean withWhereKeyword)
withWhereKeyword - 是否带上 where 关键字public String toWherePartSql(char separator, boolean withWhereKeyword)
separator - 字段分隔符withWhereKeyword - 是否带上 "where 关键字"private String toMysqlSql()
private String toSqlServerSql()
Copyright © 2024. All rights reserved.