-
Notifications
You must be signed in to change notification settings - Fork 150
Expand file tree
/
Copy pathDialect.java
More file actions
70 lines (62 loc) · 1.66 KB
/
Dialect.java
File metadata and controls
70 lines (62 loc) · 1.66 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
package cn.zhxu.bs.dialect;
import cn.zhxu.bs.SqlWrapper;
import cn.zhxu.bs.param.Paging;
/**
* 数据库方言
* @author Troy.Zhou
* @since v1.0
*/
public interface Dialect {
/**
* 把字段 dbField 转换为大写
* @param builder sql builder
* @param dbField 数据库字段
*/
default void toUpperCase(StringBuilder builder, String dbField) {
builder.append("upper").append("(").append(dbField).append(")");
}
/**
* 分页
* @param fieldSelectSql 查询语句
* @param fromWhereSql 条件语句
* @param paging 分页参数(可空,为空时表示不分页)
* @return 分页 Sql
*/
SqlWrapper<Object> forPaginate(String fieldSelectSql, String fromWhereSql, Paging paging);
/**
* @return 是否支持 ilike 语法
* @since v3.7.0
*/
default boolean hasILike() {
// MySql: false
// PostgreSql: true
// SqlServer: false
// Oracle: false
return false;
}
/**
* @return 是否允许在 having 语句中使用别名
* @since v4.3.0
*/
default boolean allowHavingAlias() {
// MySql: true
// PostgreSql: false
// SqlServer: false
// Oracle: false
// DaMeng: false
return false;
}
/**
* 当不支持布尔字面量时,框架将自动把它转换为 0 / 1 的整数值
* @return 是否允许条件参数中出现布尔字面量
* @since v4.6.0
*/
default boolean allowBoolLiterals() {
// MySql: true
// PostgreSql: true
// SqlServer: false
// Oracle: false
// DaMeng: false
return true;
}
}