From e03d5bfea8066f2ffa243ac72af720404dac1943 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E9=93=81?= Date: Mon, 29 Feb 2016 10:13:22 +0800 Subject: [PATCH] support odps --- .../com/alibaba/druid/util/JdbcConstants.java | 1 + .../java/com/alibaba/druid/util/JdbcUtils.java | 6 +++++- .../druid/bvt/utils/JdbcUtilsTest_for_odps.java | 17 +++++++++++++++++ 3 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 src/test/java/com/alibaba/druid/bvt/utils/JdbcUtilsTest_for_odps.java diff --git a/src/main/java/com/alibaba/druid/util/JdbcConstants.java b/src/main/java/com/alibaba/druid/util/JdbcConstants.java index b1a949d50b..cc47401dca 100644 --- a/src/main/java/com/alibaba/druid/util/JdbcConstants.java +++ b/src/main/java/com/alibaba/druid/util/JdbcConstants.java @@ -70,6 +70,7 @@ public interface JdbcConstants { * 阿里云odps */ public static final String ODPS = "odps"; + public static final String ODPS_DRIVER = "com.aliyun.odps.jdbc.OdpsDriver"; /** * Log4JDBC diff --git a/src/main/java/com/alibaba/druid/util/JdbcUtils.java b/src/main/java/com/alibaba/druid/util/JdbcUtils.java index 53c6f3dbfa..a7e5079348 100644 --- a/src/main/java/com/alibaba/druid/util/JdbcUtils.java +++ b/src/main/java/com/alibaba/druid/util/JdbcUtils.java @@ -381,7 +381,9 @@ public final class JdbcUtils implements JdbcConstants { } else if (rawUrl.startsWith("jdbc:fake:") || rawUrl.startsWith("jdbc:mock:")) { return "com.alibaba.druid.mock.MockDriver"; } else if (rawUrl.startsWith("jdbc:postgresql:")) { - return "org.postgresql.Driver"; + return POSTGRESQL_DRIVER; + } else if (rawUrl.startsWith("jdbc:odps:")) { + return ODPS_DRIVER; } else if (rawUrl.startsWith("jdbc:hsqldb:")) { return "org.hsqldb.jdbcDriver"; } else if (rawUrl.startsWith("jdbc:db2:")) { @@ -461,6 +463,8 @@ public final class JdbcUtils implements JdbcConstants { return POSTGRESQL; } else if (rawUrl.startsWith("jdbc:hsqldb:") || rawUrl.startsWith("jdbc:log4jdbc:hsqldb:")) { return HSQL; + } else if (rawUrl.startsWith("jdbc:odps:")) { + return ODPS; } else if (rawUrl.startsWith("jdbc:db2:")) { return DB2; } else if (rawUrl.startsWith("jdbc:sqlite:")) { diff --git a/src/test/java/com/alibaba/druid/bvt/utils/JdbcUtilsTest_for_odps.java b/src/test/java/com/alibaba/druid/bvt/utils/JdbcUtilsTest_for_odps.java new file mode 100644 index 0000000000..f77894eed1 --- /dev/null +++ b/src/test/java/com/alibaba/druid/bvt/utils/JdbcUtilsTest_for_odps.java @@ -0,0 +1,17 @@ +package com.alibaba.druid.bvt.utils; + +import org.junit.Assert; + +import com.alibaba.druid.util.JdbcConstants; +import com.alibaba.druid.util.JdbcUtils; + +import junit.framework.TestCase; + +public class JdbcUtilsTest_for_odps extends TestCase { + public void test_odps() throws Exception { + Assert.assertEquals(JdbcConstants.ODPS_DRIVER, JdbcUtils.getDriverClassName("jdbc:odps:")); + } + public void test_odps_dbtype() throws Exception { + Assert.assertEquals(JdbcConstants.ODPS, JdbcUtils.getDbType("jdbc:odps:", null)); + } +}