public class DbExpr
Db表达式
1 带别名
2 控制是否转义
用来在 DbQueryBuilder 的select/insert/update语句中,添加不转义的字段值,表示要保存的字段值是一个sql表达式,如 now() / column1 + 1, 如
// SELECT COUNT(id) AS total_posts, username FROM posts
DbQueryBuilder().select("username", DbExpr("COUNT(id)", "total_posts", false)).from("posts")
// UPDATE user SET login_count = login_count + 1 WHERE id = 45
DbQueryBuilder().table("user").set("login_count", DbExpr("login_count + 1", false)).where("id", "=", 45).update();
3 CharSequence接口
为了适配 DbQueryBuilder 中的查询方法的查询参数类型, 如 select() / where()
否则要重载很多方法来接收 DbExpr 参数
| 限定符和类型 | 类和说明 |
|---|---|
static class |
DbExpr.Companion |
| 限定符和类型 | 字段和说明 |
|---|---|
static DbExpr.Companion |
Companion |
| 构造器和说明 |
|---|
DbExpr(java.lang.CharSequence exp,
java.lang.String alias,
boolean expQuoting)
Db表达式
1 带别名
2 控制是否转义
用来在 DbQueryBuilder 的select/insert/update语句中,添加不转义的字段值,表示要保存的字段值是一个sql表达式,如 now() / column1 + 1, 如
// SELECT COUNT(
id) AS total_posts, username FROM posts
DbQueryBuilder().select("username", DbExpr("COUNT(id)", "total_posts", false)).from("posts")
// UPDATE user SET login_count = login_count + 1 WHERE id = 45
DbQueryBuilder().table("user").set("login_count", DbExpr("login_count + 1", false)).where("id", "=", 45).update();
3 CharSequence接口
为了适配 DbQueryBuilder 中的查询方法的查询参数类型, 如 select() / where()
否则要重载很多方法来接收 DbExpr 参数 |
DbExpr(java.lang.CharSequence exp,
boolean quoting) |
| 限定符和类型 | 方法和说明 |
|---|---|
char |
charAt(int p) |
java.lang.CharSequence |
component1() |
java.lang.String |
component2() |
boolean |
component3() |
DbExpr |
copy(java.lang.CharSequence exp,
java.lang.String alias,
boolean expQuoting)
Db表达式
1 带别名
2 控制是否转义
用来在 DbQueryBuilder 的select/insert/update语句中,添加不转义的字段值,表示要保存的字段值是一个sql表达式,如 now() / column1 + 1, 如
// SELECT COUNT(
id) AS total_posts, username FROM posts
DbQueryBuilder().select("username", DbExpr("COUNT(id)", "total_posts", false)).from("posts")
// UPDATE user SET login_count = login_count + 1 WHERE id = 45
DbQueryBuilder().table("user").set("login_count", DbExpr("login_count + 1", false)).where("id", "=", 45).update();
3 CharSequence接口
为了适配 DbQueryBuilder 中的查询方法的查询参数类型, 如 select() / where()
否则要重载很多方法来接收 DbExpr 参数 |
boolean |
equals(java.lang.Object p) |
char |
get(int index) |
java.lang.String |
getAlias() |
java.lang.CharSequence |
getExp() |
boolean |
getExpQuoting() |
int |
getLength() |
int |
hashCode() |
int |
length() |
java.lang.String |
quoteAlias(IDbIdentifierQuoter quoter)
转义别名
如果没别名, 则转义表达式
|
java.lang.String |
quoteIdentifier(IDbIdentifierQuoter quoter)
转义整体
mysql为
xxx
oracle为"xxx"
sql server为"xxx" xxx |
java.lang.CharSequence |
subSequence(int startIndex,
int endIndex) |
java.lang.String |
toString()
转字符串
因为在 RelatedSelectColumnList#name 中用来记录关系名+别名, 因此 toString() 直接返回 exp 来方便引用关系名
|
public static DbExpr.Companion Companion
public DbExpr(java.lang.CharSequence exp,
java.lang.String alias,
boolean expQuoting)
Db表达式
1 带别名
2 控制是否转义
用来在 DbQueryBuilder 的select/insert/update语句中,添加不转义的字段值,表示要保存的字段值是一个sql表达式,如 now() / column1 + 1, 如
// SELECT COUNT(id) AS total_posts, username FROM posts
DbQueryBuilder().select("username", DbExpr("COUNT(id)", "total_posts", false)).from("posts")
// UPDATE user SET login_count = login_count + 1 WHERE id = 45
DbQueryBuilder().table("user").set("login_count", DbExpr("login_count + 1", false)).where("id", "=", 45).update();
3 CharSequence接口
为了适配 DbQueryBuilder 中的查询方法的查询参数类型, 如 select() / where()
否则要重载很多方法来接收 DbExpr 参数
public DbExpr(java.lang.CharSequence exp,
boolean quoting)
public java.lang.String toString()
转字符串 因为在 RelatedSelectColumnList#name 中用来记录关系名+别名, 因此 toString() 直接返回 exp 来方便引用关系名
public java.lang.String quoteIdentifier(IDbIdentifierQuoter quoter)
转义整体
mysql为xxx
oracle为"xxx"
sql server为"xxx" xxx
public java.lang.String quoteAlias(IDbIdentifierQuoter quoter)
转义别名 如果没别名, 则转义表达式
public java.lang.CharSequence getExp()
public java.lang.String getAlias()
public boolean getExpQuoting()
public int getLength()
public int length()
public char get(int index)
public char charAt(int p)
public java.lang.CharSequence subSequence(int startIndex,
int endIndex)
public java.lang.CharSequence component1()
public java.lang.String component2()
public boolean component3()
public DbExpr copy(java.lang.CharSequence exp, java.lang.String alias, boolean expQuoting)
Db表达式
1 带别名
2 控制是否转义
用来在 DbQueryBuilder 的select/insert/update语句中,添加不转义的字段值,表示要保存的字段值是一个sql表达式,如 now() / column1 + 1, 如
// SELECT COUNT(id) AS total_posts, username FROM posts
DbQueryBuilder().select("username", DbExpr("COUNT(id)", "total_posts", false)).from("posts")
// UPDATE user SET login_count = login_count + 1 WHERE id = 45
DbQueryBuilder().table("user").set("login_count", DbExpr("login_count + 1", false)).where("id", "=", 45).update();
3 CharSequence接口
为了适配 DbQueryBuilder 中的查询方法的查询参数类型, 如 select() / where()
否则要重载很多方法来接收 DbExpr 参数
public int hashCode()
public boolean equals(java.lang.Object p)