opt:sql添加数据库地址

This commit is contained in:
zhangzq
2025-02-17 15:03:12 +08:00
parent 6d5b6ead05
commit 16e1e8eabc

View File

@@ -17,6 +17,8 @@ import java.sql.SQLException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/* /*
* @author ZZQ * @author ZZQ
@@ -25,6 +27,9 @@ import java.util.List;
@Slf4j @Slf4j
public class DruidFilter extends FilterEventAdapter { public class DruidFilter extends FilterEventAdapter {
private static final Pattern GENERIC_HOST_PTRN = Pattern.compile("(?<scheme>[\\w\\+:%]+)\\s*" // scheme: required; alphanumeric, plus, colon or percent
+ "(?://(?<host>[^:/?#]*)).*");
@Override @Override
public int preparedStatement_executeUpdate(FilterChain chain, PreparedStatementProxy statement) throws SQLException { public int preparedStatement_executeUpdate(FilterChain chain, PreparedStatementProxy statement) throws SQLException {
@@ -39,6 +44,16 @@ public class DruidFilter extends FilterEventAdapter {
@Override @Override
protected void statementExecuteAfter(StatementProxy statement, String sql, boolean result) { protected void statementExecuteAfter(StatementProxy statement, String sql, boolean result) {
String database="";
try {
ConnectionImpl connection = (ConnectionImpl)statement.getConnection();
String url = connection.getURL();
Matcher matcher = GENERIC_HOST_PTRN.matcher(url);
if (matcher.matches()){
database = matcher.group("host");
}
}catch (Exception ex){
}
int size = statement.getParametersSize(); int size = statement.getParametersSize();
String executeSql = sql; String executeSql = sql;
int count = 0; int count = 0;
@@ -55,7 +70,7 @@ public class DruidFilter extends FilterEventAdapter {
} }
executeSql = SQLUtils.format(executeSql, JdbcUtils.MYSQL, params); executeSql = SQLUtils.format(executeSql, JdbcUtils.MYSQL, params);
} }
log.info("[----SQL----][update][ SQL: {} ]", executeSql); log.info("[----SQL----][update][数据库:{}][ SQL: {} ]",database, executeSql);
} }
super.statementExecuteAfter(statement, sql, result); super.statementExecuteAfter(statement, sql, result);
} }
@@ -64,6 +79,16 @@ public class DruidFilter extends FilterEventAdapter {
public ResultSetProxy statement_getResultSet(FilterChain chain, StatementProxy statement) throws SQLException { public ResultSetProxy statement_getResultSet(FilterChain chain, StatementProxy statement) throws SQLException {
ResultSetProxy rs = super.statement_getResultSet(chain, statement); ResultSetProxy rs = super.statement_getResultSet(chain, statement);
String executeSql = statement.getLastExecuteSql(); String executeSql = statement.getLastExecuteSql();
String database="";
try {
ConnectionImpl connection = (ConnectionImpl)statement.getConnection();
String url = connection.getURL();
Matcher matcher = GENERIC_HOST_PTRN.matcher(url);
if (matcher.matches()){
database = matcher.group("host");
}
}catch (Exception ex){
}
int result = 0; int result = 0;
if (rs != null) { if (rs != null) {
ResultSetImpl rss = rs.getResultSetRaw().unwrap(ResultSetImpl.class); ResultSetImpl rss = rs.getResultSetRaw().unwrap(ResultSetImpl.class);
@@ -82,7 +107,7 @@ public class DruidFilter extends FilterEventAdapter {
} catch (Exception ex) { } catch (Exception ex) {
log.warn("[-SQL解析异常-][{}]", ex.getMessage()); log.warn("[-SQL解析异常-][{}]", ex.getMessage());
} }
log.info("[----SQL----][select][执行结果:{}][ SQL: {} ]", result, executeSql); log.info("[----SQL----][select][执行结果:{}][数据库:{}][ SQL: {} ]", result,database, executeSql);
return rs; return rs;
} }