From e885e93b72a9422212202be7808b0229a6187112 Mon Sep 17 00:00:00 2001 From: ascrutae Date: Tue, 14 Jun 2016 13:46:33 +0800 Subject: [PATCH] =?UTF-8?q?1=E6=8F=90=E4=BA=A4Oracle=E9=A9=B1=E5=8A=A8?= =?UTF-8?q?=E8=B0=83=E7=94=A8=E4=B9=8B=E5=89=8D=E5=8A=A0=E8=BD=BD=E8=87=AA?= =?UTF-8?q?=E5=AE=9A=E4=B9=89=E7=9A=84=E9=A9=B1=E5=8A=A8=E7=9A=84=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E7=94=A8=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- skywalking-sdk-plugin/jdbc-plugin/pom.xml | 6 ++ .../skywalking/plugin/oracle/MyDriver.java | 71 +++++++++++++++++++ .../plugin/oracle/TestMyDriver.java | 25 +++++++ 3 files changed, 102 insertions(+) create mode 100644 skywalking-sdk-plugin/jdbc-plugin/src/test/java/test/ai/cloud/skywalking/plugin/oracle/MyDriver.java create mode 100644 skywalking-sdk-plugin/jdbc-plugin/src/test/java/test/ai/cloud/skywalking/plugin/oracle/TestMyDriver.java diff --git a/skywalking-sdk-plugin/jdbc-plugin/pom.xml b/skywalking-sdk-plugin/jdbc-plugin/pom.xml index b1b19415a..b59608cb4 100755 --- a/skywalking-sdk-plugin/jdbc-plugin/pom.xml +++ b/skywalking-sdk-plugin/jdbc-plugin/pom.xml @@ -29,6 +29,12 @@ 5.1.36 compile + + com.oracle + ojdbc14 + 10.2.0.4.0 + test + diff --git a/skywalking-sdk-plugin/jdbc-plugin/src/test/java/test/ai/cloud/skywalking/plugin/oracle/MyDriver.java b/skywalking-sdk-plugin/jdbc-plugin/src/test/java/test/ai/cloud/skywalking/plugin/oracle/MyDriver.java new file mode 100644 index 000000000..13bb53706 --- /dev/null +++ b/skywalking-sdk-plugin/jdbc-plugin/src/test/java/test/ai/cloud/skywalking/plugin/oracle/MyDriver.java @@ -0,0 +1,71 @@ +package test.ai.cloud.skywalking.plugin.oracle; + +import java.sql.*; +import java.util.Properties; +import java.util.logging.Logger; + +public class MyDriver implements Driver { + + private Driver realDriver; + + static { + try { + DriverManager.registerDriver(new MyDriver()); + } catch (SQLException e) { + e.printStackTrace(); + } + } + + public MyDriver() { + + } + + public Driver buildOracleDriver() { + if (realDriver == null) + realDriver = new oracle.jdbc.OracleDriver(); + + return realDriver; + } + + @Override + public Connection connect(String url, Properties info) throws SQLException { + System.out.println("MyDriver connect(String url, Properties info)"); + return buildOracleDriver().connect(url, info); + } + + @Override + public boolean acceptsURL(String url) throws SQLException { + System.out.println("MyDriver acceptsURL(String url)"); + return buildOracleDriver().acceptsURL(url); + } + + @Override + public DriverPropertyInfo[] getPropertyInfo(String url, Properties info) throws SQLException { + System.out.println("MyDriver getPropertyInfo(String url, Properties info)"); + return buildOracleDriver().getPropertyInfo(url, info); + } + + @Override + public int getMajorVersion() { + System.out.println("MyDriver getMajorVersion()"); + return buildOracleDriver().getMajorVersion(); + } + + @Override + public int getMinorVersion() { + System.out.println("MyDriver getMinorVersion()"); + return buildOracleDriver().getMajorVersion(); + } + + @Override + public boolean jdbcCompliant() { + System.out.println("MyDriver jdbcCompliant()"); + return realDriver.jdbcCompliant(); + } + + @Override + public Logger getParentLogger() throws SQLFeatureNotSupportedException { + System.out.println("MyDriver getParentLogger()"); + return realDriver.getParentLogger(); + } +} diff --git a/skywalking-sdk-plugin/jdbc-plugin/src/test/java/test/ai/cloud/skywalking/plugin/oracle/TestMyDriver.java b/skywalking-sdk-plugin/jdbc-plugin/src/test/java/test/ai/cloud/skywalking/plugin/oracle/TestMyDriver.java new file mode 100644 index 000000000..7afec5d2f --- /dev/null +++ b/skywalking-sdk-plugin/jdbc-plugin/src/test/java/test/ai/cloud/skywalking/plugin/oracle/TestMyDriver.java @@ -0,0 +1,25 @@ +package test.ai.cloud.skywalking.plugin.oracle; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.SQLException; + +/** + * Created by xin on 16-6-14. + */ +public class TestMyDriver { + public static void main(String[] args) throws ClassNotFoundException, SQLException { + Class.forName("test.ai.cloud.skywalking.plugin.oracle.MyDriver"); + String url = "jdbc:oracle:thin:@10.1.130.239:1521:ora"; + Connection con = DriverManager.getConnection(url, "edc_export", "edc_export"); + con.setAutoCommit(false); + + PreparedStatement p0 = con.prepareStatement("select 1 from dual where 1=?"); + p0.setInt(1, 1); + p0.execute(); + con.commit(); + con.close(); + + } +}