-
Notifications
You must be signed in to change notification settings - Fork 149
/
Copy pathDialect.java
51 lines (44 loc) · 1.16 KB
/
Dialect.java
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
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() {
return false;
}
/**
* @return 是否允许在 having 语句中使用别名
* @since v4.3.0
*/
default boolean allowHavingAlias() {
// MySql: true
// PostgreSql: false
// SqlServer: false
// Oracle: false
return false;
}
}