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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
package com.yanzuoguang.dao.impl;
import com.yanzuoguang.dao.cond.SqlCond;
import com.yanzuoguang.dao.cond.SqlCondDefault;
import com.yanzuoguang.util.helper.StringHelper;
import java.util.ArrayList;
import java.util.List;
/**
* SQL语句的字段
*
* @author 颜佐光
*/
public class SqlDataField {
/**
* 前台参数名称,当没有前台参数时,则把当前字段当常量代码片段处理
*/
private SqlCond cond = null;
/**
* 是否根据前台参数自动添加,false时保持永久添加模式,
* 1. true为条件模式,即前台不输入参数时,则不增加相关代码片段
* 2. false为敞亮模式,不管前台是否输入,该参数和片段必然会增加到后台执行语句中
*/
private boolean auto = true;
/**
* 代码片段
*/
private List<String> codes = new ArrayList<String>();
/**
* 条件对象
*/
public SqlDataField() {
}
/**
* 构造函数
*
* @param paraName 前台输入字段
*/
public SqlDataField(String paraName) {
this(paraName, StringHelper.EMPTY);
}
/**
* 构造函数
*
* @param paraName 前台输入字段
* @param condSql 条件语句
*/
public SqlDataField(String paraName, String condSql) {
this(new SqlCondDefault(paraName), condSql);
}
/**
* 条件
*
* @param cond
*/
public SqlDataField(SqlCond cond) {
this(cond, StringHelper.EMPTY);
}
/**
* 条件
*
* @param cond
* @param condSql
*/
public SqlDataField(SqlCond cond, String condSql) {
this.cond = cond;
this.add(condSql);
}
/**
* 添加条件
*
* @param condSql
* @return
*/
public SqlDataField add(String condSql) {
return this.add("{WHERE}", condSql);
}
/**
* 添加条件
*
* @param codeName 字段名称
* @param codeValue 代码内容
* @return
*/
public SqlDataField add(String codeName, String codeValue) {
if (StringHelper.isEmpty(codeValue)) {
return this;
}
this.codes.add(codeName);
this.codes.add(codeValue);
return this;
}
/**
* 复制实体
*
* @return
*/
public SqlDataField copy() {
SqlDataField to = new SqlDataField();
if (this.cond != null) {
to.cond = this.cond.copy();
}
to.auto = this.auto;
to.codes.addAll(this.codes);
return to;
}
/**
* 清除所有的代码片段
*
* @return
*/
public SqlDataField clear() {
this.codes.clear();
return this;
}
public SqlCond getCond() {
if (this.cond == null) {
this.cond = new SqlCondDefault(StringHelper.EMPTY);
}
return cond;
}
public void setCond(SqlCond cond) {
this.cond = cond;
}
public boolean isAuto() {
return auto;
}
public void setAuto(boolean auto) {
this.auto = auto;
}
public List<String> getCodes() {
return codes;
}
public void setCodes(List<String> codes) {
this.codes = codes;
}
}