From 8ab2ad5580212b91df848e4c127f2a682485fde3 Mon Sep 17 00:00:00 2001 From: zhouxiang <zhouxiang> Date: 星期一, 25 四月 2022 01:49:15 +0800 Subject: [PATCH] 修改common --- src/main/java/com/hx/mybatis/aes/springbean/SqlUtils.java | 33 ++++++++++++++++++++++++++------- 1 files changed, 26 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/hx/mybatis/aes/springbean/SqlUtils.java b/src/main/java/com/hx/mybatis/aes/springbean/SqlUtils.java index 597aa0e..e92cd8c 100644 --- a/src/main/java/com/hx/mybatis/aes/springbean/SqlUtils.java +++ b/src/main/java/com/hx/mybatis/aes/springbean/SqlUtils.java @@ -15,6 +15,8 @@ import com.alibaba.druid.util.JdbcConstants; import com.alibaba.druid.util.JdbcUtils; import com.hx.util.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.ArrayList; import java.util.Collection; @@ -26,6 +28,9 @@ * @author CJH 2022-01-12 */ public class SqlUtils { + //log4j鏃ュ織 + private static Logger logger = LoggerFactory.getLogger(SqlUtils.class.getName()); + /**鏌ヨ鍔犲瘑鏁版嵁澶勭悊锛屽彧瀵规煡璇㈠仛澶勭悊锛宻elect杩斿洖涓嶅仛澶勭悊 * @param sql sql璇彞 @@ -39,10 +44,24 @@ //鑾峰彇鏍煎紡鍖栫殑slq璇彞 sql = sqlStatement.toString(); + + //瑙f瀽select鏌ヨ //SQLSelect sqlSelect = sqlStatement.getSelect() //鑾峰彇sql鏌ヨ鍧� - SQLSelectQueryBlock sqlSelectQuery = (SQLSelectQueryBlock)sqlStatement.getSelect().getQuery() ; + SQLSelectQueryBlock sqlSelectQuery = null; + boolean b = true; + try{ + sqlSelectQuery = (SQLSelectQueryBlock)sqlStatement.getSelect().getQuery() ; + }catch (Exception e){ + b = false; + logger.error("瑙f瀽sql鎶ラ敊锛�"+e.getMessage()); + } + + if(!b){ + return "err"; + } + StringBuffer out = new StringBuffer() ; //鍒涘缓sql瑙f瀽鐨勬爣鍑嗗寲杈撳嚭 SQLASTOutputVisitor sqlastOutputVisitor = SQLUtils.createFormatOutputVisitor(out , null , JdbcUtils.MYSQL) ; @@ -138,7 +157,7 @@ }else{ tableAl = column.getName(); } - sql = sql.replaceAll("\\b"+tableAl+"\\b","AES_DECRYPT(UNHEX("+tableAl+"),'"+aeskey+"')"); + sql = sql.replaceAll("((?<!\\.)\\b"+tableAl+"\\b(?!\\.))","AES_DECRYPT(UNHEX("+tableAl+"),'"+aeskey+"')"); } } return sqlSelect.toString()+sql; @@ -247,7 +266,7 @@ }else{ tableAl = column.getName(); } - sql = sql.replaceAll("\\b"+tableAl+"\\b","AES_DECRYPT(UNHEX("+tableAl+"),'"+aeskey+"')"); + sql = sql.replaceAll("((?<!\\.)\\b"+tableAl+"\\b(?!\\.))","AES_DECRYPT(UNHEX("+tableAl+"),'"+aeskey+"')"); } } return sqlSelect.toString()+sql; @@ -411,11 +430,11 @@ }else{ tableAl = column.getName(); } - sqlWhere = sqlWhere.replaceAll("\\b"+tableAl+"\\b","AES_DECRYPT(UNHEX("+tableAl+"),'"+aeskey+"')"); + sqlWhere = sqlWhere.replaceAll("((?<!\\.)\\b"+tableAl+"\\b(?!\\.))","AES_DECRYPT(UNHEX("+tableAl+"),'"+aeskey+"')"); } } - splicingSql.append(sqlWhere.toString()); + splicingSql.append(sqlWhere); return splicingSql.toString(); } @@ -489,11 +508,11 @@ }else{ tableAl = column.getName(); } - sqlWhere = sqlWhere.replaceAll("\\b"+tableAl+"\\b","AES_DECRYPT(UNHEX("+tableAl+"),'"+aeskey+"')"); + sqlWhere = sqlWhere.replaceAll("((?<!\\.)\\b"+tableAl+"\\b(?!\\.))","AES_DECRYPT(UNHEX("+tableAl+"),'"+aeskey+"')"); } } - splicingSql.append(sqlWhere.toString()); + splicingSql.append(sqlWhere); return splicingSql.toString(); } -- Gitblit v1.8.0