ChenJiaHe
2020-10-16 9338de936e527c7c8399e5225583745f76c6f441
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
155
156
157
158
159
160
161
162
163
164
package com.hx.mybatisTool;
 
import com.hx.exception.TipsException;
import com.hx.util.SimpleTool;
import com.hx.util.StringUtils;
 
import java.util.Map;
 
/**
 * mybatis 自定义处理sql语句
 * @author chenjiahe
 * @Data: 2020-06-08
 */
public class SqlSentence {
 
    private String sqlSentence;
 
    private Map<String,Object> m;
    /**排序*/
    private String orderBy;
    /**开始页数*/
    private Integer startPage = 0;
    /**每页数量*/
    private Integer pageNum = 0;
 
    //////////////////////////////////////////////////////////////
 
    /********************mother****************************/
 
    public SqlSentence()
    {
 
    }
 
    public SqlSentence(Class c, String where, Map<String, Object> values)
    {
        if(StringUtils.isEmpty(where))
        {
            throw new TipsException("sql is null");
        }
 
        if(values == null)
        {
            throw new TipsException("values is null");
        }
 
        sqlSentence = "select * from " + c.getSimpleName()+ " where " + where;
        m = values;
    }
 
    public SqlSentence(String where, Map<String, Object> values)
    {
        if(StringUtils.isEmpty(where))
        {
            throw new TipsException("sql is null");
        }
 
        if(values == null)
        {
            throw new TipsException("values is null");
        }
 
        sqlSentence = where;
        m = values;
    }
 
 
    /**
     * sql整条语句
     * @param sql 如:select * from user Where name = #{m.userName} order by age desc
     * @param values 存放的值如:values.put("userName","ChenJiaHe")
     */
    public void sqlSentence(String sql,Map<String,Object> values) {
        if(StringUtils.isEmpty(sql))
        {
            throw new TipsException("sql is null");
        }
 
        if(values == null)
        {
            throw new TipsException("values is null");
        }
 
        sqlSentence = sql;
        m = values;
    }
 
    /**
     * 查询的语句
     * @param sql 如:id = #{m.userId} order by age DESC
     * @param values 存放的值如:values.put("userId","123456")
     */
    public void sqlWhere(String sql,Map<String,Object> values) {
        if(!SimpleTool.checkNotNull(values)){
            throw new TipsException("values is null");
        }
        if(!SimpleTool.checkNotNull(sql)) {
            sql = "1=1";
        }
        sqlSentence = sql;
        m = values;
    }
 
    /**
     * 更新语句的语句
     * @param sql 如:name = #{m.name},age = ? WHERE id = #{m.id}
     * @param values 存放的值
     */
    public void sqlUpdate(String sql,Map<String,Object> values) {
        if(!SimpleTool.checkNotNull(values)){
            throw new TipsException("values is null");
        }
        m = values;
        sqlSentence = sql;
    }
 
    
    /************************************************************************/
 
    public Map<String, Object> getM() {
        return m;
    }
 
    public void setM(Map<String, Object> m) {
        this.m = m;
    }
 
    public String getSqlSentence() {
        return sqlSentence;
    }
 
    public void setSqlSentence(String sqlSentence) {
        this.sqlSentence = sqlSentence;
    }
 
    public String getOrderBy() {
        return orderBy;
    }
 
    public void setOrderBy(String orderBy) {
        this.orderBy = orderBy;
    }
 
    public Integer getStartPage() {
        return startPage;
    }
 
    public void setStartPage(Integer startPage) {
        this.startPage = startPage;
    }
 
    public Integer getPageNum() {
        return pageNum;
    }
 
    public void setPageNum(Integer pageNum) {
        this.pageNum = pageNum;
    }
 
    public Integer getStartIndex()
    {
        return (startPage - 1) * pageNum;
    }
}