xuekang
2024-05-11 bac0878349a1db23e7b420ea164e22fb9db73a99
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
package com.nuvole.util;
 
/**
 * @Description:
 * @Company: TOO (ps:公司名称)
 * @author: 唐
 * @date: 2020/2/18 下午12:49
 * @version: V1.0.0
 */
public class PageUtils {
 
    public static String orderParser(String sortName, String sortOrder, String... prefix) {
 
        // Determine sortOrder equals 'asc' or 'desc'
        if (!(sortOrder.equals("asc") || sortOrder.equals("desc"))) {
            throw new IllegalArgumentException("Illegal sortOrder parameter");
        }
 
        // 判断列名称的合法性,防止SQL注入。只能是【字母,数字,下划线】
        if (!sortName.matches("[A-Za-z0-9_]+")) {
            throw new IllegalArgumentException("Illegal sortName parameter");
        }
 
        StringBuilder sb = new StringBuilder();
        // 存在前缀
        if (prefix.length != 0) {
            sb.append(prefix[0] + ".");
        }
 
        sb.append(CommonUtil.camel2Underline("`" + sortName + "`") + " " + sortOrder);
 
        return sb.toString();
    }
 
    public static void main(String[] args) {
//        System.out.println(orderParser("createTime", "asc"));
//        System.out.println(orderParser("createTime", "asc", "abc"));
//        System.out.println(orderParser("createTime,if((1=1),sleep(1),sleep(0))", "asc", "abc"));
        System.out.println(orderParser("createTime", "asc,if((1=1),sleep(1),sleep(0))", "abc"));
    }
}