#6431·druid

[BUG] 缺少 commons-lang3 的依赖

Author: zhaoykCreated May 22, 2025Updated Aug 2, 2026

Database Type

MySQL

Database Version

8

Druid Version

1.2.24

JDK Version

openjdk8

Error SQL

SELECT b.id id
FROM my_table b
WHERE b.id = 1

Testcase Code

No response

Stacktrace Info

java.lang.NoClassDefFoundError: org/apache/commons/lang3/tuple/Pair
	at com.alibaba.druid.sql.dialect.mysql.parser.MySqlExprParser.parseSelectItemIdentifier(MySqlExprParser.java:896)
	at com.alibaba.druid.sql.parser.SQLExprParser.parseSelectItem(SQLExprParser.java:5920)
	at com.alibaba.druid.sql.parser.SQLSelectParser.parseSelectList(SQLSelectParser.java:1112)
	at com.alibaba.druid.sql.dialect.mysql.parser.MySqlSelectParser.query(MySqlSelectParser.java:225)
	at com.alibaba.druid.sql.parser.SQLSelectParser.select(SQLSelectParser.java:77)
	at com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser.parseSelect(MySqlStatementParser.java:120)
	at com.alibaba.druid.sql.parser.SQLStatementParser.parseStatementList(SQLStatementParser.java:232)
	at com.alibaba.druid.sql.parser.SQLStatementParser.parseStatementList(SQLStatementParser.java:108)
	at com.alibaba.druid.sql.visitor.ParameterizedOutputVisitorUtils.parameterize(ParameterizedOutputVisitorUtils.java:167)
	at com.alibaba.druid.sql.visitor.ParameterizedOutputVisitorUtils.parameterize(ParameterizedOutputVisitorUtils.java:138)
	at com.alibaba.druid.filter.stat.StatFilter.mergeSql(StatFilter.java:158)
	at com.alibaba.druid.filter.stat.StatFilter.createSqlStat(StatFilter.java:692)
	at com.alibaba.druid.filter.stat.StatFilter.statementPrepareAfter(StatFilter.java:339)
	at com.alibaba.druid.filter.FilterEventAdapter.connection_prepareStatement(FilterEventAdapter.java:118)
	at com.alibaba.druid.filter.FilterChainImpl.connection_prepareStatement(FilterChainImpl.java:547)
	at com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl.prepareStatement(ConnectionProxyImpl.java:328)
	at com.alibaba.druid.pool.DruidPooledConnection.prepareStatement(DruidPooledConnection.java:369)
	at org.apache.ibatis.executor.statement.PreparedStatementHandler.instantiateStatement(PreparedStatementHandler.java:88)
	at org.apache.ibatis.executor.statement.BaseStatementHandler.prepare(BaseStatementHandler.java:90)
	at org.apache.ibatis.executor.statement.RoutingStatementHandler.prepare(RoutingStatementHandler.java:60)
	at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:90)
	at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:64)
	at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)
	at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)
	at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)
	at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:90)
	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)
	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)
	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)
	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:75)

Error Info

1.2.24 版本开始依赖了 commons-lang3, 比如 https://github.com/alibaba/druid/blob/1.2.24/core/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlExprParser.java#L35 但 pom 文件没有此依赖