diff --git a/src/main/java/com/alibaba/druid/VERSION.java b/src/main/java/com/alibaba/druid/VERSION.java index 817c8d6ac8..073cb3b3c2 100644 --- a/src/main/java/com/alibaba/druid/VERSION.java +++ b/src/main/java/com/alibaba/druid/VERSION.java @@ -19,7 +19,7 @@ public final class VERSION { public final static int MajorVersion = 0; public final static int MinorVersion = 2; - public final static int RevisionVersion = 4; + public final static int RevisionVersion = 5; public static String getVersionNumber() { return VERSION.MajorVersion + "." + VERSION.MinorVersion + "." + VERSION.RevisionVersion; diff --git a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java index 4abb0c0c60..a4a4c06566 100644 --- a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java +++ b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java @@ -336,7 +336,7 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat this.exceptionSorter = new MockExceptionSorter(); } - dataSourceStat = new JdbcDataSourceStat(this.name, this.jdbcUrl); + dataSourceStat = new JdbcDataSourceStat(this.name, this.jdbcUrl, this.dbType); { String property = System.getProperty("druid.filters"); diff --git a/src/main/java/com/alibaba/druid/proxy/jdbc/DataSourceProxyImpl.java b/src/main/java/com/alibaba/druid/proxy/jdbc/DataSourceProxyImpl.java index 4cb9bcc901..3be9bb57e4 100644 --- a/src/main/java/com/alibaba/druid/proxy/jdbc/DataSourceProxyImpl.java +++ b/src/main/java/com/alibaba/druid/proxy/jdbc/DataSourceProxyImpl.java @@ -68,7 +68,7 @@ public class DataSourceProxyImpl implements DataSourceProxy, DataSourceProxyImpl this.rawDriver = rawDriver; this.config = config; this.dbType = JdbcUtils.getDbType(config.getRawUrl(), config.getRawDriverClassName()); - this.dataSourceStat = new JdbcDataSourceStat(config.getName(), config.getUrl()); + this.dataSourceStat = new JdbcDataSourceStat(config.getName(), config.getUrl(), dbType); } public String getDbType() { diff --git a/src/main/java/com/alibaba/druid/sql/SQLUtils.java b/src/main/java/com/alibaba/druid/sql/SQLUtils.java index 582df1148d..933ce92471 100644 --- a/src/main/java/com/alibaba/druid/sql/SQLUtils.java +++ b/src/main/java/com/alibaba/druid/sql/SQLUtils.java @@ -150,6 +150,11 @@ public class SQLUtils { if (JdbcUtils.SQL_SERVER.equals(dbType)) { return new SQLServerOutputVisitor(out); } + + + if (JdbcUtils.H2.equals(dbType)) { + return new MySqlOutputVisitor(out); + } return new SQLASTOutputVisitor(out); } diff --git a/src/main/java/com/alibaba/druid/sql/parser/SQLParserUtils.java b/src/main/java/com/alibaba/druid/sql/parser/SQLParserUtils.java index f3b8f102a7..1671c4ed06 100644 --- a/src/main/java/com/alibaba/druid/sql/parser/SQLParserUtils.java +++ b/src/main/java/com/alibaba/druid/sql/parser/SQLParserUtils.java @@ -28,6 +28,10 @@ public class SQLParserUtils { if (JdbcUtils.SQL_SERVER.equals(dbType)) { return new SQLServerStatementParser(sql); } + + if (JdbcUtils.H2.equals(dbType)) { + return new MySqlStatementParser(sql); + } return new SQLStatementParser(sql); } diff --git a/src/main/java/com/alibaba/druid/stat/JdbcDataSourceStat.java b/src/main/java/com/alibaba/druid/stat/JdbcDataSourceStat.java index 5e1d4367be..4949e7ac3a 100644 --- a/src/main/java/com/alibaba/druid/stat/JdbcDataSourceStat.java +++ b/src/main/java/com/alibaba/druid/stat/JdbcDataSourceStat.java @@ -38,6 +38,7 @@ public class JdbcDataSourceStat implements JdbcDataSourceStatMBean { private final String name; private final String url; + private String dbType; private final JdbcConnectionStat connectionStat = new JdbcConnectionStat(); private final JdbcResultSetStat resultSetStat = new JdbcResultSetStat(); @@ -63,8 +64,13 @@ public class JdbcDataSourceStat implements JdbcDataSourceStatMBean { private final ConcurrentMap connections = new ConcurrentHashMap(); public JdbcDataSourceStat(String name, String url){ + this(name, url, null); + } + + public JdbcDataSourceStat(String name, String url, String dbType){ this.name = name; this.url = url; + this.dbType = dbType; } public void reset() { @@ -211,6 +217,7 @@ public class JdbcDataSourceStat implements JdbcDataSourceStatMBean { JdbcSqlStat sqlStat = sqlStatMap.get(sql); if (sqlStat == null) { sqlStat = new JdbcSqlStat(sql); + sqlStat.setDbType(this.dbType); sqlStatMap.put(sql, sqlStat); }