123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224 |
- package org.jeecg.modules.online.cgreport.util;
- import java.text.MessageFormat;
- import java.util.HashMap;
- import java.util.Iterator;
- import java.util.Map;
- import java.util.Map.Entry;
- import java.util.regex.Matcher;
- import java.util.regex.Pattern;
- import javax.servlet.http.HttpServletRequest;
- import org.jeecg.common.system.query.QueryGenerator;
- import org.jeecg.common.util.oConvertUtils;
- import lombok.extern.slf4j.Slf4j;
- @Slf4j
- public class SqlUtil {
- public static final String a = "select * from ( {0}) sel_tab00 limit {1},{2}";
- public static final String b = "select * from ( {0}) sel_tab00 limit {2} offset {1}";
- public static final String c = "select * from (select row_.*,rownum rownum_ from ({0}) row_ where rownum <= {1}) where rownum_>{2}";
- public static final String d = "select * from ( select row_number() over(order by tempColumn) tempRowNumber, * from (select top {1} tempColumn = 0, {0}) t ) tt where tempRowNumber > {2}";
- public static final String e = "select distinct table_name from information_schema.columns where table_schema = {0}";
- public static final String f = "SELECT distinct c.relname AS table_name FROM pg_class c";
- public static final String g = "select distinct colstable.table_name as table_name from user_tab_cols colstable";
- public static final String h = "select distinct c.name as table_name from sys.objects c";
- public static final String i = "select column_name from information_schema.columns where table_name = {0} and table_schema = {1}";
- public static final String j = "select table_name from information_schema.columns where table_name = {0}";
- public static final String k = "select column_name from all_tab_columns where table_name ={0}";
- public static final String l = "select name from syscolumns where id={0}";
- public SqlUtil() {
- }
- public static String a(String var0, Map var1) {
- StringBuilder var2 = new StringBuilder();
- var2.append("SELECT t.* FROM ( ");
- var2.append(var0 + " ");
- var2.append(") t ");
- if (var1 != null && var1.size() >= 1) {
- var2.append("WHERE 1=1 ");
- Iterator var3 = var1.keySet().iterator();
- while(var3.hasNext()) {
- String var4 = String.valueOf(var3.next());
- String var5 = String.valueOf(var1.get(var4));
- if (oConvertUtils.isNotEmpty(var5)) {
- var2.append(" AND ");
- var2.append(" " + var4 + var5);
- }
- }
- }
- return var2.toString();
- }
- public static String b(String var0, Map var1) {
- String var2 = a(var0, var1);
- var2 = "SELECT COUNT(*) COUNT FROM (" + var2 + ") t2";
- return var2;
- }
- public static String a(String var0, Map var1, int var2, int var3) {
- String var4 = "jdbc:mysql://127.0.0.1:3306/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false";
- int var5 = (var2 - 1) * var3;
- String[] var6 = new String[]{var0, var5 + "", var3 + ""};
- if (var4.indexOf("MYSQL") != -1) {
- var0 = MessageFormat.format("select * from ( {0}) sel_tab00 limit {1},{2}", var6);
- } else if (var4.indexOf("POSTGRESQL") != -1) {
- var0 = MessageFormat.format("select * from ( {0}) sel_tab00 limit {2} offset {1}", var6);
- } else {
- int var7 = (var2 - 1) * var3;
- int var8 = var7 + var3;
- var6[2] = Integer.toString(var7);
- var6[1] = Integer.toString(var8);
- if (var4.indexOf("ORACLE") != -1) {
- var0 = MessageFormat.format("select * from (select row_.*,rownum rownum_ from ({0}) row_ where rownum <= {1}) where rownum_>{2}", var6);
- } else if (var4.indexOf("SQLSERVER") != -1) {
- var6[0] = var0.substring(c(var0));
- var0 = MessageFormat.format("select * from ( select row_number() over(order by tempColumn) tempRowNumber, * from (select top {1} tempColumn = 0, {0}) t ) tt where tempRowNumber > {2}", var6);
- }
- }
- return var0;
- }
- public static String a(String var0, String var1, String var2, Map var3, int var4, int var5) {
- var2 = a(var2, var3);
- int var6 = (var4 - 1) * var5;
- String[] var7 = new String[]{var2, var6 + "", var5 + ""};
- String var8 = "";
- if ("MYSQL".equalsIgnoreCase(var8)) {
- var2 = MessageFormat.format("select * from ( {0}) sel_tab00 limit {1},{2}", var7);
- } else if ("POSTGRESQL".equalsIgnoreCase(var8)) {
- var2 = MessageFormat.format("select * from ( {0}) sel_tab00 limit {2} offset {1}", var7);
- } else {
- int var9 = (var4 - 1) * var5;
- int var10 = var9 + var5;
- var7[2] = Integer.toString(var9);
- var7[1] = Integer.toString(var10);
- if ("ORACLE".equalsIgnoreCase(var8)) {
- var2 = MessageFormat.format("select * from (select row_.*,rownum rownum_ from ({0}) row_ where rownum <= {1}) where rownum_>{2}", var7);
- } else if ("SQLSERVER".equalsIgnoreCase(var8)) {
- var7[0] = var2.substring(c(var2));
- var2 = MessageFormat.format("select * from ( select row_number() over(order by tempColumn) tempRowNumber, * from (select top {1} tempColumn = 0, {0}) t ) tt where tempRowNumber > {2}", var7);
- }
- }
- return var2;
- }
- private static int c(String var0) {
- int var1 = var0.toLowerCase().indexOf("select");
- int var2 = var0.toLowerCase().indexOf("select distinct");
- return var1 + (var2 == var1 ? 15 : 6);
- }
- public static String a(String var0, String... var1) {
- if (oConvertUtils.isNotEmpty(var0)) {
- if ("MYSQL".equals(var0)) {
- return MessageFormat.format("select distinct table_name from information_schema.columns where table_schema = {0}", var1);
- }
- if ("ORACLE".equals(var0)) {
- return "select distinct colstable.table_name as table_name from user_tab_cols colstable";
- }
- if ("POSTGRESQL".equals(var0)) {
- return "SELECT distinct c.relname AS table_name FROM pg_class c";
- }
- if ("SQLSERVER".equals(var0)) {
- return "select distinct c.name as table_name from sys.objects c";
- }
- }
- return null;
- }
- public static String b(String var0, String... var1) {
- if (oConvertUtils.isNotEmpty(var0)) {
- if ("MYSQL".equals(var0)) {
- return MessageFormat.format("select column_name from information_schema.columns where table_name = {0} and table_schema = {1}", var1);
- }
- if ("ORACLE".equals(var0)) {
- return MessageFormat.format("select column_name from all_tab_columns where table_name ={0}", var1);
- }
- if ("POSTGRESQL".equals(var0)) {
- return MessageFormat.format("select table_name from information_schema.columns where table_name = {0}", var1);
- }
- if ("SQLSERVER".equals(var0)) {
- return MessageFormat.format("select name from syscolumns where id={0}", var1);
- }
- }
- return null;
- }
- public static String a(String var0) {
- var0 = var0.toLowerCase();
- String var1 = "(\\w|\\.)+ *\\S+ *\\S*\\$\\{\\w+\\}\\S*";
- Pattern var2 = Pattern.compile(var1);
- for(Matcher var3 = var2.matcher(var0); var3.find(); log.info("${}替换后结果 ==>" + var0)) {
- String var4 = var3.group();
- log.info("${}匹配带参SQL片段 ==>" + var4);
- if (var4.indexOf("where") != -1) {
- var0 = var0.replace(var4, "where 1=1");
- } else if (var4.indexOf("and") != -1) {
- var0 = var0.replace(var4, "and 1=1");
- } else if (var4.indexOf("or") != -1) {
- var0 = var0.replace(var4, "or 1=1");
- } else {
- var0 = var0.replace(var4, "1=1");
- }
- }
- var0 = var0.replaceAll("(?i)AND *1=1", "");
- return var0;
- }
- public static void main(String[] args) {
- String var1 = "select * from sys_user where id ='${id}' and del_flag= ${flag}";
- System.out.println(a(var1));
- }
- public static Map<String, Object> getParams(HttpServletRequest request) {
- Map httpParams = request.getParameterMap();
- HashMap var2 = new HashMap();
- Iterator var3 = httpParams.entrySet().iterator();
- String var5 = "";
- String var6 = "";
- for(Object var7 = null; var3.hasNext(); var2.put(var5, var6)) {
- Entry var4 = (Entry)var3.next();
- var5 = (String)var4.getKey();
- var7 = var4.getValue();
- if (!"_t".equals(var5) && null != var7) {
- if (!(var7 instanceof String[])) {
- var6 = var7.toString();
- } else {
- String[] var8 = (String[])((String[])var7);
- for(int var9 = 0; var9 < var8.length; ++var9) {
- var6 = var8[var9] + ",";
- }
- var6 = var6.substring(0, var6.length() - 1);
- }
- } else {
- var6 = "";
- }
- }
- return var2;
- }
- public static String transSql(String cgSql) {
- String sql = QueryGenerator.convertSystemVariables(cgSql);
- String configAuth = QueryGenerator.getAllConfigAuth();
- return cgSql.toLowerCase().indexOf("where") > 0 ? sql + configAuth : sql + " where 1=1 " + configAuth;
- }
- }
|