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(); + + } +}