asdfa
package net.test.common.util;
import org.apache.commons.lang3.StringUtils;
import java.util.ArrayList;
import java.util.List;
/**
* sql操作工具类
*
*/
public class SqlUtil
{
/**
* 仅支持字母、数字、下划线、空格、逗号(支持多个字段排序)
*/
public static String SQL_PATTERN = "[a-zA-Z0-9_\\ \\,]+";
/**
* 将数组转换成以逗号分隔的字符串,拼成in格式
*
* @param strList 需要转换的数组
* @return 以逗号分割的字符串
*/
public static String joinWithComma(List<String> strList) {
List<String> arr = new ArrayList<>();
for (String str : strList) {
String comma = "'" + str.trim() + "'";
if (!arr.contains(comma) && StringUtils.isNotEmpty(str)) {
arr.add(comma);
}
}
return StringUtils.join(arr, ",");
}
/**
* 检查字符,防止注入绕过
*/
public static String escapeOrderBySql(String value)
{
if (StringUtils.isNotEmpty(value) && !isValidOrderBySql(value))
{
return StringUtils.EMPTY;
}
return value;
}
/**
* 验证 order by 语法是否符合规范
*/
public static boolean isValidOrderBySql(String value)
{
return value.matches(SQL_PATTERN);
}
}