Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
javalover123888
SkyWalking
提交
9aa957c4
S
SkyWalking
项目概览
javalover123888
/
SkyWalking
与 Fork 源项目一致
Fork自
山不在高_有仙则灵 / SkyWalking
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
SkyWalking
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
9aa957c4
编写于
3月 16, 2016
作者:
wu-sheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
1.恢复jdbc-plugin,使用代码替换的模式实现oracle-plugin,代码过于复杂和笨重。
2.移除jdbc-plugin,对于connection.nativeSQL的追踪。
上级
a2e7b56c
变更
13
展开全部
隐藏空白更改
内联
并排
Showing
13 changed file
with
2549 addition
and
2 deletion
+2549
-2
skywalking-sdk-plugin/jdbc-plugin/pom.xml
skywalking-sdk-plugin/jdbc-plugin/pom.xml
+64
-0
skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/JDBCBuriedPointType.java
.../ai/cloud/skywalking/plugin/jdbc/JDBCBuriedPointType.java
+32
-0
skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/SWCallableStatement.java
.../ai/cloud/skywalking/plugin/jdbc/SWCallableStatement.java
+1058
-0
skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/SWConnection.java
...ava/com/ai/cloud/skywalking/plugin/jdbc/SWConnection.java
+326
-0
skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/SWPreparedStatement.java
.../ai/cloud/skywalking/plugin/jdbc/SWPreparedStatement.java
+537
-0
skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/SWStatement.java
...java/com/ai/cloud/skywalking/plugin/jdbc/SWStatement.java
+254
-0
skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/TracingDriver.java
...va/com/ai/cloud/skywalking/plugin/jdbc/TracingDriver.java
+72
-0
skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/mysql/MySQLTracingDriver.java
...loud/skywalking/plugin/jdbc/mysql/MySQLTracingDriver.java
+31
-0
skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/tracing/CallableStatementTracing.java
...walking/plugin/jdbc/tracing/CallableStatementTracing.java
+43
-0
skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/tracing/ConnectionTracing.java
...oud/skywalking/plugin/jdbc/tracing/ConnectionTracing.java
+43
-0
skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/tracing/PreparedStatementTracing.java
...walking/plugin/jdbc/tracing/PreparedStatementTracing.java
+43
-0
skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/tracing/StatementTracing.java
...loud/skywalking/plugin/jdbc/tracing/StatementTracing.java
+42
-0
skywalking-sdk-plugin/pom.xml
skywalking-sdk-plugin/pom.xml
+4
-2
未找到文件。
skywalking-sdk-plugin/jdbc-plugin/pom.xml
0 → 100755
浏览文件 @
9aa957c4
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<parent>
<artifactId>
skywalking-sdk-plugin
</artifactId>
<groupId>
com.ai.cloud
</groupId>
<version>
1.0-SNAPSHOT
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
skywalking-jdbc-plugin
</artifactId>
<packaging>
jar
</packaging>
<name>
jdbc-plugin
</name>
<url>
http://maven.apache.org
</url>
<properties>
<project.build.sourceEncoding>
UTF-8
</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>
com.ai.cloud
</groupId>
<artifactId>
skywalking-api
</artifactId>
<version>
${project.version}
</version>
</dependency>
<dependency>
<groupId>
mysql
</groupId>
<artifactId>
mysql-connector-java
</artifactId>
<version>
5.1.36
</version>
<scope>
compile
</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>
maven-compiler-plugin
</artifactId>
<configuration>
<source>
1.7
</source>
<target>
1.7
</target>
<encoding>
${project.build.sourceEncoding}
</encoding>
</configuration>
</plugin>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-deploy-plugin
</artifactId>
</plugin>
<plugin>
<!-- 源码插件 -->
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-source-plugin
</artifactId>
<!-- 发布时自动将源码同时发布的配置 -->
<executions>
<execution>
<id>
attach-sources
</id>
<goals>
<goal>
jar
</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/JDBCBuriedPointType.java
0 → 100755
浏览文件 @
9aa957c4
package
com.ai.cloud.skywalking.plugin.jdbc
;
import
com.ai.cloud.skywalking.api.IBuriedPointType
;
import
com.ai.cloud.skywalking.protocol.CallType
;
public
class
JDBCBuriedPointType
implements
IBuriedPointType
{
private
static
JDBCBuriedPointType
jdbcBuriedPointType
;
public
static
IBuriedPointType
instance
()
{
if
(
jdbcBuriedPointType
==
null
)
{
jdbcBuriedPointType
=
new
JDBCBuriedPointType
();
}
return
jdbcBuriedPointType
;
}
@Override
public
String
getTypeName
()
{
return
"J"
;
}
@Override
public
CallType
getCallType
()
{
return
CallType
.
LOCAL
;
}
private
JDBCBuriedPointType
(){
//Non
}
}
skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/SWCallableStatement.java
0 → 100755
浏览文件 @
9aa957c4
此差异已折叠。
点击以展开。
skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/SWConnection.java
0 → 100755
浏览文件 @
9aa957c4
package
com.ai.cloud.skywalking.plugin.jdbc
;
import
java.sql.Array
;
import
java.sql.Blob
;
import
java.sql.CallableStatement
;
import
java.sql.Clob
;
import
java.sql.DatabaseMetaData
;
import
java.sql.NClob
;
import
java.sql.PreparedStatement
;
import
java.sql.SQLClientInfoException
;
import
java.sql.SQLException
;
import
java.sql.SQLWarning
;
import
java.sql.SQLXML
;
import
java.sql.Savepoint
;
import
java.sql.Statement
;
import
java.sql.Struct
;
import
java.util.Map
;
import
java.util.Properties
;
import
java.util.concurrent.Executor
;
import
com.ai.cloud.skywalking.plugin.jdbc.tracing.ConnectionTracing
;
import
com.ai.cloud.skywalking.plugin.jdbc.tracing.ConnectionTracing.Executable
;
public
class
SWConnection
implements
java
.
sql
.
Connection
{
private
String
connectInfo
;
private
final
java
.
sql
.
Connection
realConnection
;
public
SWConnection
(
String
url
,
Properties
info
,
java
.
sql
.
Connection
realConnection
)
{
super
();
this
.
connectInfo
=
url
+
"("
+
info
.
getProperty
(
"user"
)
+
")"
;
this
.
realConnection
=
realConnection
;
}
public
<
T
>
T
unwrap
(
Class
<
T
>
iface
)
throws
SQLException
{
return
realConnection
.
unwrap
(
iface
);
}
public
boolean
isWrapperFor
(
Class
<?>
iface
)
throws
SQLException
{
return
realConnection
.
isWrapperFor
(
iface
);
}
public
Statement
createStatement
()
throws
SQLException
{
return
new
SWStatement
(
this
,
realConnection
.
createStatement
(),
this
.
connectInfo
);
}
public
PreparedStatement
prepareStatement
(
String
sql
)
throws
SQLException
{
return
new
SWPreparedStatement
(
this
,
realConnection
.
prepareStatement
(
sql
),
this
.
connectInfo
,
sql
);
}
public
CallableStatement
prepareCall
(
String
sql
)
throws
SQLException
{
return
new
SWCallableStatement
(
this
,
realConnection
.
prepareCall
(
sql
),
this
.
connectInfo
,
sql
);
}
public
String
nativeSQL
(
String
sql
)
throws
SQLException
{
return
ConnectionTracing
.
execute
(
realConnection
,
connectInfo
,
"nativeSQL"
,
sql
,
new
Executable
<
String
>()
{
public
String
exe
(
java
.
sql
.
Connection
realConnection
,
String
sql
)
throws
SQLException
{
return
realConnection
.
nativeSQL
(
sql
);
}
});
}
public
void
setAutoCommit
(
boolean
autoCommit
)
throws
SQLException
{
realConnection
.
setAutoCommit
(
autoCommit
);
}
public
boolean
getAutoCommit
()
throws
SQLException
{
return
realConnection
.
getAutoCommit
();
}
public
void
commit
()
throws
SQLException
{
ConnectionTracing
.
execute
(
realConnection
,
connectInfo
,
"commit"
,
""
,
new
Executable
<
String
>()
{
public
String
exe
(
java
.
sql
.
Connection
realConnection
,
String
sql
)
throws
SQLException
{
realConnection
.
commit
();
return
null
;
}
});
}
public
void
rollback
()
throws
SQLException
{
ConnectionTracing
.
execute
(
realConnection
,
connectInfo
,
"rollback"
,
""
,
new
Executable
<
String
>()
{
public
String
exe
(
java
.
sql
.
Connection
realConnection
,
String
sql
)
throws
SQLException
{
realConnection
.
rollback
();
return
null
;
}
});
}
public
void
close
()
throws
SQLException
{
ConnectionTracing
.
execute
(
realConnection
,
connectInfo
,
"close"
,
""
,
new
Executable
<
String
>()
{
public
String
exe
(
java
.
sql
.
Connection
realConnection
,
String
sql
)
throws
SQLException
{
realConnection
.
close
();
return
null
;
}
});
}
public
boolean
isClosed
()
throws
SQLException
{
return
realConnection
.
isClosed
();
}
public
DatabaseMetaData
getMetaData
()
throws
SQLException
{
return
realConnection
.
getMetaData
();
}
public
void
setReadOnly
(
boolean
readOnly
)
throws
SQLException
{
realConnection
.
setReadOnly
(
readOnly
);
}
public
boolean
isReadOnly
()
throws
SQLException
{
return
realConnection
.
isReadOnly
();
}
public
void
setCatalog
(
String
catalog
)
throws
SQLException
{
realConnection
.
setCatalog
(
catalog
);
}
public
String
getCatalog
()
throws
SQLException
{
return
realConnection
.
getCatalog
();
}
public
void
setTransactionIsolation
(
int
level
)
throws
SQLException
{
realConnection
.
setTransactionIsolation
(
level
);
}
public
int
getTransactionIsolation
()
throws
SQLException
{
return
realConnection
.
getTransactionIsolation
();
}
public
SQLWarning
getWarnings
()
throws
SQLException
{
return
realConnection
.
getWarnings
();
}
public
void
clearWarnings
()
throws
SQLException
{
realConnection
.
clearWarnings
();
}
public
Statement
createStatement
(
int
resultSetType
,
int
resultSetConcurrency
)
throws
SQLException
{
return
new
SWStatement
(
this
,
realConnection
.
createStatement
(
resultSetType
,
resultSetConcurrency
),
this
.
connectInfo
);
}
public
PreparedStatement
prepareStatement
(
String
sql
,
int
resultSetType
,
int
resultSetConcurrency
)
throws
SQLException
{
return
new
SWPreparedStatement
(
this
,
realConnection
.
prepareStatement
(
sql
,
resultSetType
,
resultSetConcurrency
),
this
.
connectInfo
,
sql
);
}
public
CallableStatement
prepareCall
(
String
sql
,
int
resultSetType
,
int
resultSetConcurrency
)
throws
SQLException
{
return
new
SWCallableStatement
(
this
,
realConnection
.
prepareCall
(
sql
,
resultSetType
,
resultSetConcurrency
),
this
.
connectInfo
,
sql
);
}
public
Map
<
String
,
Class
<?>>
getTypeMap
()
throws
SQLException
{
return
realConnection
.
getTypeMap
();
}
public
void
setTypeMap
(
Map
<
String
,
Class
<?>>
map
)
throws
SQLException
{
realConnection
.
setTypeMap
(
map
);
}
public
void
setHoldability
(
int
holdability
)
throws
SQLException
{
realConnection
.
setHoldability
(
holdability
);
}
public
int
getHoldability
()
throws
SQLException
{
return
realConnection
.
getHoldability
();
}
public
Savepoint
setSavepoint
()
throws
SQLException
{
return
realConnection
.
setSavepoint
();
}
public
Savepoint
setSavepoint
(
String
name
)
throws
SQLException
{
return
realConnection
.
setSavepoint
(
name
);
}
public
void
rollback
(
final
Savepoint
savepoint
)
throws
SQLException
{
ConnectionTracing
.
execute
(
realConnection
,
connectInfo
,
"rollback to savepoint"
,
""
,
new
Executable
<
String
>()
{
public
String
exe
(
java
.
sql
.
Connection
realConnection
,
String
sql
)
throws
SQLException
{
realConnection
.
rollback
(
savepoint
);
return
null
;
}
});
}
public
void
releaseSavepoint
(
final
Savepoint
savepoint
)
throws
SQLException
{
ConnectionTracing
.
execute
(
realConnection
,
connectInfo
,
"releaseSavepoint savepoint"
,
""
,
new
Executable
<
String
>()
{
public
String
exe
(
java
.
sql
.
Connection
realConnection
,
String
sql
)
throws
SQLException
{
realConnection
.
releaseSavepoint
(
savepoint
);
return
null
;
}
});
}
public
Statement
createStatement
(
int
resultSetType
,
int
resultSetConcurrency
,
int
resultSetHoldability
)
throws
SQLException
{
return
new
SWStatement
(
this
,
realConnection
.
createStatement
(
resultSetType
,
resultSetConcurrency
,
resultSetHoldability
),
this
.
connectInfo
);
}
public
PreparedStatement
prepareStatement
(
String
sql
,
int
resultSetType
,
int
resultSetConcurrency
,
int
resultSetHoldability
)
throws
SQLException
{
return
new
SWPreparedStatement
(
this
,
realConnection
.
prepareStatement
(
sql
,
resultSetType
,
resultSetConcurrency
,
resultSetHoldability
),
this
.
connectInfo
,
sql
);
}
public
CallableStatement
prepareCall
(
String
sql
,
int
resultSetType
,
int
resultSetConcurrency
,
int
resultSetHoldability
)
throws
SQLException
{
return
new
SWCallableStatement
(
this
,
realConnection
.
prepareCall
(
sql
,
resultSetType
,
resultSetConcurrency
,
resultSetHoldability
),
this
.
connectInfo
,
sql
);
}
public
PreparedStatement
prepareStatement
(
String
sql
,
int
autoGeneratedKeys
)
throws
SQLException
{
return
new
SWPreparedStatement
(
this
,
realConnection
.
prepareStatement
(
sql
,
autoGeneratedKeys
),
this
.
connectInfo
,
sql
);
}
public
PreparedStatement
prepareStatement
(
String
sql
,
int
[]
columnIndexes
)
throws
SQLException
{
return
new
SWPreparedStatement
(
this
,
realConnection
.
prepareStatement
(
sql
,
columnIndexes
),
this
.
connectInfo
,
sql
);
}
public
PreparedStatement
prepareStatement
(
String
sql
,
String
[]
columnNames
)
throws
SQLException
{
return
new
SWPreparedStatement
(
this
,
realConnection
.
prepareStatement
(
sql
,
columnNames
),
this
.
connectInfo
,
sql
);
}
public
Clob
createClob
()
throws
SQLException
{
return
realConnection
.
createClob
();
}
public
Blob
createBlob
()
throws
SQLException
{
return
realConnection
.
createBlob
();
}
public
NClob
createNClob
()
throws
SQLException
{
return
realConnection
.
createNClob
();
}
public
SQLXML
createSQLXML
()
throws
SQLException
{
return
realConnection
.
createSQLXML
();
}
public
boolean
isValid
(
int
timeout
)
throws
SQLException
{
return
realConnection
.
isValid
(
timeout
);
}
public
void
setClientInfo
(
String
name
,
String
value
)
throws
SQLClientInfoException
{
realConnection
.
setClientInfo
(
name
,
value
);
}
public
void
setClientInfo
(
Properties
properties
)
throws
SQLClientInfoException
{
realConnection
.
setClientInfo
(
properties
);
}
public
String
getClientInfo
(
String
name
)
throws
SQLException
{
return
realConnection
.
getClientInfo
(
name
);
}
public
Properties
getClientInfo
()
throws
SQLException
{
return
realConnection
.
getClientInfo
();
}
public
Array
createArrayOf
(
String
typeName
,
Object
[]
elements
)
throws
SQLException
{
return
realConnection
.
createArrayOf
(
typeName
,
elements
);
}
public
Struct
createStruct
(
String
typeName
,
Object
[]
attributes
)
throws
SQLException
{
return
realConnection
.
createStruct
(
typeName
,
attributes
);
}
public
void
setSchema
(
String
schema
)
throws
SQLException
{
realConnection
.
setSchema
(
schema
);
}
public
String
getSchema
()
throws
SQLException
{
return
realConnection
.
getSchema
();
}
public
void
abort
(
Executor
executor
)
throws
SQLException
{
realConnection
.
abort
(
executor
);
}
public
void
setNetworkTimeout
(
Executor
executor
,
int
milliseconds
)
throws
SQLException
{
realConnection
.
setNetworkTimeout
(
executor
,
milliseconds
);
}
public
int
getNetworkTimeout
()
throws
SQLException
{
return
realConnection
.
getNetworkTimeout
();
}
}
skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/SWPreparedStatement.java
0 → 100755
浏览文件 @
9aa957c4
package
com.ai.cloud.skywalking.plugin.jdbc
;
import
java.io.InputStream
;
import
java.io.Reader
;
import
java.math.BigDecimal
;
import
java.net.URL
;
import
java.sql.Array
;
import
java.sql.Blob
;
import
java.sql.Clob
;
import
java.sql.Connection
;
import
java.sql.Date
;
import
java.sql.NClob
;
import
java.sql.ParameterMetaData
;
import
java.sql.PreparedStatement
;
import
java.sql.Ref
;
import
java.sql.ResultSet
;
import
java.sql.ResultSetMetaData
;
import
java.sql.RowId
;
import
java.sql.SQLException
;
import
java.sql.SQLWarning
;
import
java.sql.SQLXML
;
import
java.sql.Time
;
import
java.sql.Timestamp
;
import
java.util.Calendar
;
import
com.ai.cloud.skywalking.plugin.jdbc.tracing.PreparedStatementTracing
;
import
com.ai.cloud.skywalking.plugin.jdbc.tracing.PreparedStatementTracing.Executable
;
public
class
SWPreparedStatement
implements
PreparedStatement
{
private
SWConnection
realConnection
;
private
java
.
sql
.
PreparedStatement
realStatement
;
private
String
connectInfo
;
private
String
sql
;
SWPreparedStatement
(
SWConnection
realConnection
,
java
.
sql
.
PreparedStatement
realStatement
,
String
connectInfo
,
String
sql
)
{
this
.
realConnection
=
realConnection
;
this
.
realStatement
=
realStatement
;
this
.
connectInfo
=
connectInfo
;
this
.
sql
=
sql
;
}
public
ResultSet
executeQuery
(
String
sql
)
throws
SQLException
{
return
PreparedStatementTracing
.
execute
(
realStatement
,
connectInfo
,
"executeQuery"
,
sql
,
new
Executable
<
ResultSet
>()
{
public
ResultSet
exe
(
java
.
sql
.
PreparedStatement
realStatement
,
String
sql
)
throws
SQLException
{
return
realStatement
.
executeQuery
(
sql
);
}
});
}
public
int
executeUpdate
(
String
sql
)
throws
SQLException
{
return
PreparedStatementTracing
.
execute
(
realStatement
,
connectInfo
,
"executeUpdate"
,
sql
,
new
Executable
<
Integer
>()
{
public
Integer
exe
(
java
.
sql
.
PreparedStatement
realStatement
,
String
sql
)
throws
SQLException
{
return
realStatement
.
executeUpdate
(
sql
);
}
});
}
public
void
close
()
throws
SQLException
{
realStatement
.
close
();
}
public
int
getMaxFieldSize
()
throws
SQLException
{
return
realStatement
.
getMaxFieldSize
();
}
public
void
setMaxFieldSize
(
int
max
)
throws
SQLException
{
realStatement
.
setMaxFieldSize
(
max
);
}
public
int
getMaxRows
()
throws
SQLException
{
return
realStatement
.
getMaxRows
();
}
public
void
setMaxRows
(
int
max
)
throws
SQLException
{
realStatement
.
setMaxRows
(
max
);
}
public
void
setEscapeProcessing
(
boolean
enable
)
throws
SQLException
{
realStatement
.
setEscapeProcessing
(
enable
);
}
public
int
getQueryTimeout
()
throws
SQLException
{
return
realStatement
.
getQueryTimeout
();
}
public
void
setQueryTimeout
(
int
seconds
)
throws
SQLException
{
realStatement
.
setQueryTimeout
(
seconds
);
}
public
void
cancel
()
throws
SQLException
{
realStatement
.
cancel
();
}
public
SQLWarning
getWarnings
()
throws
SQLException
{
return
realStatement
.
getWarnings
();
}
public
void
clearWarnings
()
throws
SQLException
{
realStatement
.
clearWarnings
();
}
public
void
setCursorName
(
String
name
)
throws
SQLException
{
realStatement
.
setCursorName
(
name
);
}
public
boolean
execute
(
String
sql
)
throws
SQLException
{
return
PreparedStatementTracing
.
execute
(
realStatement
,
connectInfo
,
"execute"
,
sql
,
new
Executable
<
Boolean
>()
{
public
Boolean
exe
(
java
.
sql
.
PreparedStatement
realStatement
,
String
sql
)
throws
SQLException
{
return
realStatement
.
execute
(
sql
);
}
});
}
public
ResultSet
getResultSet
()
throws
SQLException
{
return
realStatement
.
getResultSet
();
}
public
int
getUpdateCount
()
throws
SQLException
{
return
realStatement
.
getUpdateCount
();
}
public
boolean
getMoreResults
()
throws
SQLException
{
return
realStatement
.
getMoreResults
();
}
public
void
setFetchDirection
(
int
direction
)
throws
SQLException
{
realStatement
.
setFetchDirection
(
direction
);
}
public
int
getFetchDirection
()
throws
SQLException
{
return
realStatement
.
getFetchDirection
();
}
public
void
setFetchSize
(
int
rows
)
throws
SQLException
{
realStatement
.
setFetchSize
(
rows
);
}
public
int
getFetchSize
()
throws
SQLException
{
return
realStatement
.
getFetchSize
();
}
public
int
getResultSetConcurrency
()
throws
SQLException
{
return
realStatement
.
getResultSetConcurrency
();
}
public
int
getResultSetType
()
throws
SQLException
{
return
realStatement
.
getResultSetType
();
}
public
void
addBatch
(
String
sql
)
throws
SQLException
{
realStatement
.
addBatch
(
sql
);
}
public
void
clearBatch
()
throws
SQLException
{
realStatement
.
clearBatch
();
}
public
int
[]
executeBatch
()
throws
SQLException
{
return
PreparedStatementTracing
.
execute
(
realStatement
,
connectInfo
,
"executeBatch"
,
""
,
new
Executable
<
int
[]>()
{
public
int
[]
exe
(
java
.
sql
.
PreparedStatement
realStatement
,
String
sql
)
throws
SQLException
{
return
realStatement
.
executeBatch
();
}
});
}
public
Connection
getConnection
()
throws
SQLException
{
return
realConnection
;
}
public
boolean
getMoreResults
(
int
current
)
throws
SQLException
{
return
realStatement
.
getMoreResults
(
current
);
}
public
ResultSet
getGeneratedKeys
()
throws
SQLException
{
return
realStatement
.
getGeneratedKeys
();
}
public
int
executeUpdate
(
String
sql
,
final
int
autoGeneratedKeys
)
throws
SQLException
{
return
PreparedStatementTracing
.
execute
(
realStatement
,
connectInfo
,
"executeUpdate"
,
sql
,
new
Executable
<
Integer
>()
{
public
Integer
exe
(
java
.
sql
.
PreparedStatement
realStatement
,
String
sql
)
throws
SQLException
{
return
realStatement
.
executeUpdate
(
sql
,
autoGeneratedKeys
);
}
});
}
public
int
executeUpdate
(
String
sql
,
final
int
[]
columnIndexes
)
throws
SQLException
{
return
PreparedStatementTracing
.
execute
(
realStatement
,
connectInfo
,
"executeUpdate"
,
sql
,
new
Executable
<
Integer
>()
{
public
Integer
exe
(
java
.
sql
.
PreparedStatement
realStatement
,
String
sql
)
throws
SQLException
{
return
realStatement
.
executeUpdate
(
sql
,
columnIndexes
);
}
});
}
public
int
executeUpdate
(
String
sql
,
final
String
[]
columnNames
)
throws
SQLException
{
return
PreparedStatementTracing
.
execute
(
realStatement
,
connectInfo
,
"executeUpdate"
,
sql
,
new
Executable
<
Integer
>()
{
public
Integer
exe
(
java
.
sql
.
PreparedStatement
realStatement
,
String
sql
)
throws
SQLException
{
return
realStatement
.
executeUpdate
(
sql
,
columnNames
);
}
});
}
public
boolean
execute
(
String
sql
,
final
int
autoGeneratedKeys
)
throws
SQLException
{
return
PreparedStatementTracing
.
execute
(
realStatement
,
connectInfo
,
"execute"
,
sql
,
new
Executable
<
Boolean
>()
{
public
Boolean
exe
(
java
.
sql
.
PreparedStatement
realStatement
,
String
sql
)
throws
SQLException
{
return
realStatement
.
execute
(
sql
,
autoGeneratedKeys
);
}
});
}
public
boolean
execute
(
String
sql
,
final
int
[]
columnIndexes
)
throws
SQLException
{
return
PreparedStatementTracing
.
execute
(
realStatement
,
connectInfo
,
"execute"
,
sql
,
new
Executable
<
Boolean
>()
{
public
Boolean
exe
(
java
.
sql
.
PreparedStatement
realStatement
,
String
sql
)
throws
SQLException
{
return
realStatement
.
execute
(
sql
,
columnIndexes
);
}
});
}
public
boolean
execute
(
String
sql
,
final
String
[]
columnNames
)
throws
SQLException
{
return
PreparedStatementTracing
.
execute
(
realStatement
,
connectInfo
,
"execute"
,
sql
,
new
Executable
<
Boolean
>()
{
public
Boolean
exe
(
java
.
sql
.
PreparedStatement
realStatement
,
String
sql
)
throws
SQLException
{
return
realStatement
.
execute
(
sql
,
columnNames
);
}
});
}
public
int
getResultSetHoldability
()
throws
SQLException
{
return
realStatement
.
getResultSetHoldability
();
}
public
boolean
isClosed
()
throws
SQLException
{
return
realStatement
.
isClosed
();
}
public
void
setPoolable
(
boolean
poolable
)
throws
SQLException
{
realStatement
.
setPoolable
(
poolable
);
}
public
boolean
isPoolable
()
throws
SQLException
{
return
realStatement
.
isPoolable
();
}
public
void
closeOnCompletion
()
throws
SQLException
{
realStatement
.
closeOnCompletion
();
}
public
boolean
isCloseOnCompletion
()
throws
SQLException
{
return
realStatement
.
isCloseOnCompletion
();
}
public
<
T
>
T
unwrap
(
Class
<
T
>
iface
)
throws
SQLException
{
return
realStatement
.
unwrap
(
iface
);
}
public
boolean
isWrapperFor
(
Class
<?>
iface
)
throws
SQLException
{
return
realStatement
.
isWrapperFor
(
iface
);
}
public
ResultSet
executeQuery
()
throws
SQLException
{
return
PreparedStatementTracing
.
execute
(
realStatement
,
connectInfo
,
"executeQuery"
,
sql
,
new
Executable
<
ResultSet
>()
{
public
ResultSet
exe
(
java
.
sql
.
PreparedStatement
realStatement
,
String
sql
)
throws
SQLException
{
return
realStatement
.
executeQuery
();
}
});
}
public
int
executeUpdate
()
throws
SQLException
{
return
PreparedStatementTracing
.
execute
(
realStatement
,
connectInfo
,
"executeUpdate"
,
sql
,
new
Executable
<
Integer
>()
{
public
Integer
exe
(
java
.
sql
.
PreparedStatement
realStatement
,
String
sql
)
throws
SQLException
{
return
realStatement
.
executeUpdate
();
}
});
}
public
void
setNull
(
int
parameterIndex
,
int
sqlType
)
throws
SQLException
{
realStatement
.
setNull
(
parameterIndex
,
sqlType
);
}
public
void
setBoolean
(
int
parameterIndex
,
boolean
x
)
throws
SQLException
{
realStatement
.
setBoolean
(
parameterIndex
,
x
);
}
public
void
setByte
(
int
parameterIndex
,
byte
x
)
throws
SQLException
{
realStatement
.
setByte
(
parameterIndex
,
x
);
}
public
void
setShort
(
int
parameterIndex
,
short
x
)
throws
SQLException
{
realStatement
.
setShort
(
parameterIndex
,
x
);
}
public
void
setInt
(
int
parameterIndex
,
int
x
)
throws
SQLException
{
realStatement
.
setInt
(
parameterIndex
,
x
);
}
public
void
setLong
(
int
parameterIndex
,
long
x
)
throws
SQLException
{
realStatement
.
setLong
(
parameterIndex
,
x
);
}
public
void
setFloat
(
int
parameterIndex
,
float
x
)
throws
SQLException
{
realStatement
.
setFloat
(
parameterIndex
,
x
);
}
public
void
setDouble
(
int
parameterIndex
,
double
x
)
throws
SQLException
{
realStatement
.
setDouble
(
parameterIndex
,
x
);
}
public
void
setBigDecimal
(
int
parameterIndex
,
BigDecimal
x
)
throws
SQLException
{
realStatement
.
setBigDecimal
(
parameterIndex
,
x
);
}
public
void
setString
(
int
parameterIndex
,
String
x
)
throws
SQLException
{
realStatement
.
setString
(
parameterIndex
,
x
);
}
public
void
setBytes
(
int
parameterIndex
,
byte
[]
x
)
throws
SQLException
{
realStatement
.
setBytes
(
parameterIndex
,
x
);
}
public
void
setDate
(
int
parameterIndex
,
Date
x
)
throws
SQLException
{
realStatement
.
setDate
(
parameterIndex
,
x
);
}
public
void
setTime
(
int
parameterIndex
,
Time
x
)
throws
SQLException
{
realStatement
.
setTime
(
parameterIndex
,
x
);
}
public
void
setTimestamp
(
int
parameterIndex
,
Timestamp
x
)
throws
SQLException
{
realStatement
.
setTimestamp
(
parameterIndex
,
x
);
}
public
void
setAsciiStream
(
int
parameterIndex
,
InputStream
x
,
int
length
)
throws
SQLException
{
realStatement
.
setAsciiStream
(
parameterIndex
,
x
,
length
);
}
@Deprecated
public
void
setUnicodeStream
(
int
parameterIndex
,
InputStream
x
,
int
length
)
throws
SQLException
{
realStatement
.
setUnicodeStream
(
parameterIndex
,
x
,
length
);
}
public
void
setBinaryStream
(
int
parameterIndex
,
InputStream
x
,
int
length
)
throws
SQLException
{
realStatement
.
setBinaryStream
(
parameterIndex
,
x
,
length
);
}
public
void
clearParameters
()
throws
SQLException
{
realStatement
.
clearParameters
();
}
public
void
setObject
(
int
parameterIndex
,
Object
x
,
int
targetSqlType
)
throws
SQLException
{
realStatement
.
setObject
(
parameterIndex
,
x
,
targetSqlType
);
}
public
void
setObject
(
int
parameterIndex
,
Object
x
)
throws
SQLException
{
realStatement
.
setObject
(
parameterIndex
,
x
);
}
public
boolean
execute
()
throws
SQLException
{
return
PreparedStatementTracing
.
execute
(
realStatement
,
connectInfo
,
"executeUpdate"
,
sql
,
new
Executable
<
Boolean
>()
{
public
Boolean
exe
(
java
.
sql
.
PreparedStatement
realStatement
,
String
sql
)
throws
SQLException
{
return
realStatement
.
execute
();
}
});
}
public
void
addBatch
()
throws
SQLException
{
realStatement
.
addBatch
();
}
public
void
setCharacterStream
(
int
parameterIndex
,
Reader
reader
,
int
length
)
throws
SQLException
{
realStatement
.
setCharacterStream
(
parameterIndex
,
reader
,
length
);
}
public
void
setRef
(
int
parameterIndex
,
Ref
x
)
throws
SQLException
{
realStatement
.
setRef
(
parameterIndex
,
x
);
}
public
void
setBlob
(
int
parameterIndex
,
Blob
x
)
throws
SQLException
{
realStatement
.
setBlob
(
parameterIndex
,
x
);
}
public
void
setClob
(
int
parameterIndex
,
Clob
x
)
throws
SQLException
{
realStatement
.
setClob
(
parameterIndex
,
x
);
}
public
void
setArray
(
int
parameterIndex
,
Array
x
)
throws
SQLException
{
realStatement
.
setArray
(
parameterIndex
,
x
);
}
public
ResultSetMetaData
getMetaData
()
throws
SQLException
{
return
realStatement
.
getMetaData
();
}
public
void
setDate
(
int
parameterIndex
,
Date
x
,
Calendar
cal
)
throws
SQLException
{
realStatement
.
setDate
(
parameterIndex
,
x
,
cal
);
}
public
void
setTime
(
int
parameterIndex
,
Time
x
,
Calendar
cal
)
throws
SQLException
{
realStatement
.
setTime
(
parameterIndex
,
x
,
cal
);
}
public
void
setTimestamp
(
int
parameterIndex
,
Timestamp
x
,
Calendar
cal
)
throws
SQLException
{
realStatement
.
setTimestamp
(
parameterIndex
,
x
,
cal
);
}
public
void
setNull
(
int
parameterIndex
,
int
sqlType
,
String
typeName
)
throws
SQLException
{
realStatement
.
setNull
(
parameterIndex
,
sqlType
,
typeName
);
}
public
void
setURL
(
int
parameterIndex
,
URL
x
)
throws
SQLException
{
realStatement
.
setURL
(
parameterIndex
,
x
);
}
public
ParameterMetaData
getParameterMetaData
()
throws
SQLException
{
return
realStatement
.
getParameterMetaData
();
}
public
void
setRowId
(
int
parameterIndex
,
RowId
x
)
throws
SQLException
{
realStatement
.
setRowId
(
parameterIndex
,
x
);
}
public
void
setNString
(
int
parameterIndex
,
String
value
)
throws
SQLException
{
realStatement
.
setNString
(
parameterIndex
,
value
);
}
public
void
setNCharacterStream
(
int
parameterIndex
,
Reader
value
,
long
length
)
throws
SQLException
{
realStatement
.
setNCharacterStream
(
parameterIndex
,
value
,
length
);
}
public
void
setNClob
(
int
parameterIndex
,
NClob
value
)
throws
SQLException
{
realStatement
.
setNClob
(
parameterIndex
,
value
);
}
public
void
setClob
(
int
parameterIndex
,
Reader
reader
,
long
length
)
throws
SQLException
{
realStatement
.
setClob
(
parameterIndex
,
reader
,
length
);
}
public
void
setBlob
(
int
parameterIndex
,
InputStream
inputStream
,
long
length
)
throws
SQLException
{
realStatement
.
setBlob
(
parameterIndex
,
inputStream
,
length
);
}
public
void
setNClob
(
int
parameterIndex
,
Reader
reader
,
long
length
)
throws
SQLException
{
realStatement
.
setNClob
(
parameterIndex
,
reader
,
length
);
}
public
void
setSQLXML
(
int
parameterIndex
,
SQLXML
xmlObject
)
throws
SQLException
{
realStatement
.
setSQLXML
(
parameterIndex
,
xmlObject
);
}
public
void
setObject
(
int
parameterIndex
,
Object
x
,
int
targetSqlType
,
int
scaleOrLength
)
throws
SQLException
{
realStatement
.
setObject
(
parameterIndex
,
x
,
targetSqlType
,
scaleOrLength
);
}
public
void
setAsciiStream
(
int
parameterIndex
,
InputStream
x
,
long
length
)
throws
SQLException
{
realStatement
.
setAsciiStream
(
parameterIndex
,
x
,
length
);
}
public
void
setBinaryStream
(
int
parameterIndex
,
InputStream
x
,
long
length
)
throws
SQLException
{
realStatement
.
setBinaryStream
(
parameterIndex
,
x
,
length
);
}
public
void
setCharacterStream
(
int
parameterIndex
,
Reader
reader
,
long
length
)
throws
SQLException
{
realStatement
.
setCharacterStream
(
parameterIndex
,
reader
,
length
);
}
public
void
setAsciiStream
(
int
parameterIndex
,
InputStream
x
)
throws
SQLException
{
realStatement
.
setAsciiStream
(
parameterIndex
,
x
);
}
public
void
setBinaryStream
(
int
parameterIndex
,
InputStream
x
)
throws
SQLException
{
realStatement
.
setBinaryStream
(
parameterIndex
,
x
);
}
public
void
setCharacterStream
(
int
parameterIndex
,
Reader
reader
)
throws
SQLException
{
realStatement
.
setCharacterStream
(
parameterIndex
,
reader
);
}
public
void
setNCharacterStream
(
int
parameterIndex
,
Reader
value
)
throws
SQLException
{
realStatement
.
setNCharacterStream
(
parameterIndex
,
value
);
}
public
void
setClob
(
int
parameterIndex
,
Reader
reader
)
throws
SQLException
{
realStatement
.
setClob
(
parameterIndex
,
reader
);
}
public
void
setBlob
(
int
parameterIndex
,
InputStream
inputStream
)
throws
SQLException
{
realStatement
.
setBlob
(
parameterIndex
,
inputStream
);
}
public
void
setNClob
(
int
parameterIndex
,
Reader
reader
)
throws
SQLException
{
realStatement
.
setNClob
(
parameterIndex
,
reader
);
}
}
skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/SWStatement.java
0 → 100755
浏览文件 @
9aa957c4
package
com.ai.cloud.skywalking.plugin.jdbc
;
import
java.sql.Connection
;
import
java.sql.ResultSet
;
import
java.sql.SQLException
;
import
java.sql.SQLWarning
;
import
com.ai.cloud.skywalking.plugin.jdbc.tracing.StatementTracing
;
import
com.ai.cloud.skywalking.plugin.jdbc.tracing.StatementTracing.Executable
;
public
class
SWStatement
implements
java
.
sql
.
Statement
{
private
SWConnection
realConnection
;
private
java
.
sql
.
Statement
realStatement
;
private
String
connectInfo
;
SWStatement
(
SWConnection
realConnection
,
java
.
sql
.
Statement
realStatement
,
String
connectInfo
){
this
.
realConnection
=
realConnection
;
this
.
realStatement
=
realStatement
;
this
.
connectInfo
=
connectInfo
;
}
public
<
T
>
T
unwrap
(
Class
<
T
>
iface
)
throws
SQLException
{
return
realStatement
.
unwrap
(
iface
);
}
public
boolean
isWrapperFor
(
Class
<?>
iface
)
throws
SQLException
{
return
realStatement
.
isWrapperFor
(
iface
);
}
public
ResultSet
executeQuery
(
String
sql
)
throws
SQLException
{
return
StatementTracing
.
execute
(
realStatement
,
connectInfo
,
"executeQuery"
,
sql
,
new
Executable
<
ResultSet
>()
{
public
ResultSet
exe
(
java
.
sql
.
Statement
realStatement
,
String
sql
)
throws
SQLException
{
return
realStatement
.
executeQuery
(
sql
);
}
});
}
public
int
executeUpdate
(
String
sql
)
throws
SQLException
{
return
StatementTracing
.
execute
(
realStatement
,
connectInfo
,
"executeUpdate"
,
sql
,
new
Executable
<
Integer
>()
{
public
Integer
exe
(
java
.
sql
.
Statement
realStatement
,
String
sql
)
throws
SQLException
{
return
realStatement
.
executeUpdate
(
sql
);
}
});
}
public
void
close
()
throws
SQLException
{
realStatement
.
close
();
}
public
int
getMaxFieldSize
()
throws
SQLException
{
return
realStatement
.
getMaxFieldSize
();
}
public
void
setMaxFieldSize
(
int
max
)
throws
SQLException
{
realStatement
.
setMaxFieldSize
(
max
);
}
public
int
getMaxRows
()
throws
SQLException
{
return
realStatement
.
getMaxRows
();
}
public
void
setMaxRows
(
int
max
)
throws
SQLException
{
realStatement
.
setMaxRows
(
max
);
}
public
void
setEscapeProcessing
(
boolean
enable
)
throws
SQLException
{
realStatement
.
setEscapeProcessing
(
enable
);
}
public
int
getQueryTimeout
()
throws
SQLException
{
return
realStatement
.
getQueryTimeout
();
}
public
void
setQueryTimeout
(
int
seconds
)
throws
SQLException
{
realStatement
.
setQueryTimeout
(
seconds
);
}
public
void
cancel
()
throws
SQLException
{
realStatement
.
cancel
();
}
public
SQLWarning
getWarnings
()
throws
SQLException
{
return
realStatement
.
getWarnings
();
}
public
void
clearWarnings
()
throws
SQLException
{
realStatement
.
clearWarnings
();
}
public
void
setCursorName
(
String
name
)
throws
SQLException
{
realStatement
.
setCursorName
(
name
);
}
public
boolean
execute
(
String
sql
)
throws
SQLException
{
return
StatementTracing
.
execute
(
realStatement
,
connectInfo
,
"execute"
,
sql
,
new
Executable
<
Boolean
>()
{
public
Boolean
exe
(
java
.
sql
.
Statement
realStatement
,
String
sql
)
throws
SQLException
{
return
realStatement
.
execute
(
sql
);
}
});
}
public
ResultSet
getResultSet
()
throws
SQLException
{
return
realStatement
.
getResultSet
();
}
public
int
getUpdateCount
()
throws
SQLException
{
return
realStatement
.
getUpdateCount
();
}
public
boolean
getMoreResults
()
throws
SQLException
{
return
realStatement
.
getMoreResults
();
}
public
void
setFetchDirection
(
int
direction
)
throws
SQLException
{
realStatement
.
setFetchDirection
(
direction
);
}
public
int
getFetchDirection
()
throws
SQLException
{
return
realStatement
.
getFetchDirection
();
}
public
void
setFetchSize
(
int
rows
)
throws
SQLException
{
realStatement
.
setFetchSize
(
rows
);
}
public
int
getFetchSize
()
throws
SQLException
{
return
realStatement
.
getFetchSize
();
}
public
int
getResultSetConcurrency
()
throws
SQLException
{
return
realStatement
.
getResultSetConcurrency
();
}
public
int
getResultSetType
()
throws
SQLException
{
return
realStatement
.
getResultSetType
();
}
public
void
addBatch
(
String
sql
)
throws
SQLException
{
realStatement
.
addBatch
(
sql
);
}
public
void
clearBatch
()
throws
SQLException
{
realStatement
.
clearBatch
();
}
public
int
[]
executeBatch
()
throws
SQLException
{
return
StatementTracing
.
execute
(
realStatement
,
connectInfo
,
"executeBatch"
,
""
,
new
Executable
<
int
[]>()
{
public
int
[]
exe
(
java
.
sql
.
Statement
realStatement
,
String
sql
)
throws
SQLException
{
return
realStatement
.
executeBatch
();
}
});
}
public
Connection
getConnection
()
throws
SQLException
{
return
this
.
realConnection
;
}
public
boolean
getMoreResults
(
int
current
)
throws
SQLException
{
return
realStatement
.
getMoreResults
(
current
);
}
public
ResultSet
getGeneratedKeys
()
throws
SQLException
{
return
realStatement
.
getGeneratedKeys
();
}
public
int
executeUpdate
(
String
sql
,
final
int
autoGeneratedKeys
)
throws
SQLException
{
return
StatementTracing
.
execute
(
realStatement
,
connectInfo
,
"executeUpdate"
,
sql
,
new
Executable
<
Integer
>()
{
public
Integer
exe
(
java
.
sql
.
Statement
realStatement
,
String
sql
)
throws
SQLException
{
return
realStatement
.
executeUpdate
(
sql
,
autoGeneratedKeys
);
}
});
}
public
int
executeUpdate
(
String
sql
,
final
int
[]
columnIndexes
)
throws
SQLException
{
return
StatementTracing
.
execute
(
realStatement
,
connectInfo
,
"executeUpdate"
,
sql
,
new
Executable
<
Integer
>()
{
public
Integer
exe
(
java
.
sql
.
Statement
realStatement
,
String
sql
)
throws
SQLException
{
return
realStatement
.
executeUpdate
(
sql
,
columnIndexes
);
}
});
}
public
int
executeUpdate
(
String
sql
,
final
String
[]
columnNames
)
throws
SQLException
{
return
StatementTracing
.
execute
(
realStatement
,
connectInfo
,
"executeUpdate"
,
sql
,
new
Executable
<
Integer
>()
{
public
Integer
exe
(
java
.
sql
.
Statement
realStatement
,
String
sql
)
throws
SQLException
{
return
realStatement
.
executeUpdate
(
sql
,
columnNames
);
}
});
}
public
boolean
execute
(
String
sql
,
final
int
autoGeneratedKeys
)
throws
SQLException
{
return
StatementTracing
.
execute
(
realStatement
,
connectInfo
,
"execute"
,
sql
,
new
Executable
<
Boolean
>()
{
public
Boolean
exe
(
java
.
sql
.
Statement
realStatement
,
String
sql
)
throws
SQLException
{
return
realStatement
.
execute
(
sql
,
autoGeneratedKeys
);
}
});
}
public
boolean
execute
(
String
sql
,
final
int
[]
columnIndexes
)
throws
SQLException
{
return
StatementTracing
.
execute
(
realStatement
,
connectInfo
,
"execute"
,
sql
,
new
Executable
<
Boolean
>()
{
public
Boolean
exe
(
java
.
sql
.
Statement
realStatement
,
String
sql
)
throws
SQLException
{
return
realStatement
.
execute
(
sql
,
columnIndexes
);
}
});
}
public
boolean
execute
(
String
sql
,
final
String
[]
columnNames
)
throws
SQLException
{
return
StatementTracing
.
execute
(
realStatement
,
connectInfo
,
"execute"
,
sql
,
new
Executable
<
Boolean
>()
{
public
Boolean
exe
(
java
.
sql
.
Statement
realStatement
,
String
sql
)
throws
SQLException
{
return
realStatement
.
execute
(
sql
,
columnNames
);
}
});
}
public
int
getResultSetHoldability
()
throws
SQLException
{
return
realStatement
.
getResultSetHoldability
();
}
public
boolean
isClosed
()
throws
SQLException
{
return
realStatement
.
isClosed
();
}
public
void
setPoolable
(
boolean
poolable
)
throws
SQLException
{
realStatement
.
setPoolable
(
poolable
);
}
public
boolean
isPoolable
()
throws
SQLException
{
return
realStatement
.
isPoolable
();
}
public
void
closeOnCompletion
()
throws
SQLException
{
realStatement
.
closeOnCompletion
();
}
public
boolean
isCloseOnCompletion
()
throws
SQLException
{
return
realStatement
.
isCloseOnCompletion
();
}
}
skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/TracingDriver.java
0 → 100755
浏览文件 @
9aa957c4
package
com.ai.cloud.skywalking.plugin.jdbc
;
import
java.sql.Driver
;
import
java.sql.DriverPropertyInfo
;
import
java.sql.SQLException
;
import
java.sql.SQLFeatureNotSupportedException
;
import
java.util.Properties
;
import
java.util.logging.Logger
;
import
com.ai.cloud.skywalking.conf.AuthDesc
;
public
abstract
class
TracingDriver
implements
Driver
{
private
static
final
String
TRACING_SIGN
=
"tracing:"
;
private
Driver
realDriver
;
protected
TracingDriver
()
{
this
.
realDriver
=
this
.
registerTracingDriver
();
}
protected
abstract
Driver
registerTracingDriver
();
public
java
.
sql
.
Connection
connect
(
String
url
,
Properties
info
)
throws
SQLException
{
java
.
sql
.
Connection
conn
=
this
.
realDriver
.
connect
(
this
.
getRealUrl
(
url
),
info
);
if
(!
AuthDesc
.
isAuth
()){
return
conn
;
}
else
{
return
new
SWConnection
(
url
,
info
,
conn
);
}
}
public
boolean
acceptsURL
(
String
url
)
throws
SQLException
{
return
this
.
realDriver
.
acceptsURL
(
this
.
getRealUrl
(
url
));
}
public
DriverPropertyInfo
[]
getPropertyInfo
(
String
url
,
Properties
info
)
throws
SQLException
{
return
this
.
realDriver
.
getPropertyInfo
(
this
.
getRealUrl
(
url
),
info
);
}
private
String
getRealUrl
(
String
url
)
throws
SQLException
{
if
(
url
.
toLowerCase
().
startsWith
(
TRACING_SIGN
)){
return
url
.
substring
(
TRACING_SIGN
.
length
());
}
else
{
throw
new
SQLException
(
"tracing jdbc url must start with 'tracing:'"
);
}
}
public
int
getMajorVersion
()
{
return
safeIntParse
(
"1"
);
}
public
int
getMinorVersion
()
{
return
safeIntParse
(
"0"
);
}
public
boolean
jdbcCompliant
()
{
return
false
;
}
public
Logger
getParentLogger
()
throws
SQLFeatureNotSupportedException
{
return
null
;
}
private
static
int
safeIntParse
(
String
intAsString
)
{
try
{
return
Integer
.
parseInt
(
intAsString
);
}
catch
(
NumberFormatException
nfe
)
{
}
return
0
;
}
}
skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/mysql/MySQLTracingDriver.java
0 → 100755
浏览文件 @
9aa957c4
package
com.ai.cloud.skywalking.plugin.jdbc.mysql
;
import
java.sql.Driver
;
import
java.sql.DriverManager
;
import
java.sql.SQLException
;
import
com.ai.cloud.skywalking.plugin.jdbc.TracingDriver
;
public
class
MySQLTracingDriver
extends
TracingDriver
{
static
{
try
{
DriverManager
.
registerDriver
(
new
MySQLTracingDriver
());
}
catch
(
SQLException
e
)
{
throw
new
RuntimeException
(
"register "
+
MySQLTracingDriver
.
class
.
getName
()
+
" driver failure."
);
}
}
/**
* 继承自TracingDriver,返回真实的Driver
*/
@Override
protected
Driver
registerTracingDriver
()
{
try
{
return
new
com
.
mysql
.
jdbc
.
Driver
();
}
catch
(
SQLException
e
)
{
throw
new
RuntimeException
(
"create com.mysql.jdbc.Driver failure."
);
}
}
}
skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/tracing/CallableStatementTracing.java
0 → 100755
浏览文件 @
9aa957c4
package
com.ai.cloud.skywalking.plugin.jdbc.tracing
;
import
java.sql.SQLException
;
import
com.ai.cloud.skywalking.buriedpoint.RPCBuriedPointSender
;
import
com.ai.cloud.skywalking.plugin.jdbc.JDBCBuriedPointType
;
import
com.ai.cloud.skywalking.model.Identification
;
/**
* 连接级追踪,用于追踪用于Connection的操作追踪
*
* @author wusheng
*
*/
public
class
CallableStatementTracing
{
private
static
RPCBuriedPointSender
sender
=
new
RPCBuriedPointSender
();
public
static
<
R
>
R
execute
(
java
.
sql
.
CallableStatement
realStatement
,
String
connectInfo
,
String
method
,
String
sql
,
Executable
<
R
>
exec
)
throws
SQLException
{
try
{
sender
.
beforeSend
(
Identification
.
newBuilder
()
.
viewPoint
(
connectInfo
)
.
businessKey
(
"callableStatement."
+
method
+
(
sql
==
null
||
sql
.
length
()
==
0
?
""
:
":"
+
sql
)).
spanType
(
JDBCBuriedPointType
.
instance
()).
build
());
return
exec
.
exe
(
realStatement
,
sql
);
}
catch
(
SQLException
e
)
{
sender
.
handleException
(
e
);
throw
e
;
}
finally
{
sender
.
afterSend
();
}
}
public
interface
Executable
<
R
>
{
public
R
exe
(
java
.
sql
.
CallableStatement
realConnection
,
String
sql
)
throws
SQLException
;
}
}
skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/tracing/ConnectionTracing.java
0 → 100755
浏览文件 @
9aa957c4
package
com.ai.cloud.skywalking.plugin.jdbc.tracing
;
import
java.sql.SQLException
;
import
com.ai.cloud.skywalking.buriedpoint.RPCBuriedPointSender
;
import
com.ai.cloud.skywalking.plugin.jdbc.JDBCBuriedPointType
;
import
com.ai.cloud.skywalking.model.Identification
;
/**
* 连接级追踪,用于追踪用于Connection的操作追踪
*
* @author wusheng
*
*/
public
class
ConnectionTracing
{
private
static
RPCBuriedPointSender
sender
=
new
RPCBuriedPointSender
();
public
static
<
R
>
R
execute
(
java
.
sql
.
Connection
realConnection
,
String
connectInfo
,
String
method
,
String
sql
,
Executable
<
R
>
exec
)
throws
SQLException
{
try
{
sender
.
beforeSend
(
Identification
.
newBuilder
()
.
viewPoint
(
connectInfo
)
.
businessKey
(
"connection."
+
method
+
(
sql
==
null
||
sql
.
length
()
==
0
?
""
:
":"
+
sql
)).
spanType
(
JDBCBuriedPointType
.
instance
()).
build
());
return
exec
.
exe
(
realConnection
,
sql
);
}
catch
(
SQLException
e
)
{
sender
.
handleException
(
e
);
throw
e
;
}
finally
{
sender
.
afterSend
();
}
}
public
interface
Executable
<
R
>
{
public
R
exe
(
java
.
sql
.
Connection
realConnection
,
String
sql
)
throws
SQLException
;
}
}
skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/tracing/PreparedStatementTracing.java
0 → 100755
浏览文件 @
9aa957c4
package
com.ai.cloud.skywalking.plugin.jdbc.tracing
;
import
java.sql.SQLException
;
import
com.ai.cloud.skywalking.buriedpoint.RPCBuriedPointSender
;
import
com.ai.cloud.skywalking.plugin.jdbc.JDBCBuriedPointType
;
import
com.ai.cloud.skywalking.model.Identification
;
/**
* 连接级追踪,用于追踪用于Connection的操作追踪
*
* @author wusheng
*
*/
public
class
PreparedStatementTracing
{
private
static
RPCBuriedPointSender
sender
=
new
RPCBuriedPointSender
();
public
static
<
R
>
R
execute
(
java
.
sql
.
PreparedStatement
realStatement
,
String
connectInfo
,
String
method
,
String
sql
,
Executable
<
R
>
exec
)
throws
SQLException
{
try
{
sender
.
beforeSend
(
Identification
.
newBuilder
()
.
viewPoint
(
connectInfo
)
.
businessKey
(
"preaparedStatement."
+
method
+
(
sql
==
null
||
sql
.
length
()
==
0
?
""
:
":"
+
sql
)).
spanType
(
JDBCBuriedPointType
.
instance
()).
build
());
return
exec
.
exe
(
realStatement
,
sql
);
}
catch
(
SQLException
e
)
{
sender
.
handleException
(
e
);
throw
e
;
}
finally
{
sender
.
afterSend
();
}
}
public
interface
Executable
<
R
>
{
public
R
exe
(
java
.
sql
.
PreparedStatement
realConnection
,
String
sql
)
throws
SQLException
;
}
}
skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/tracing/StatementTracing.java
0 → 100755
浏览文件 @
9aa957c4
package
com.ai.cloud.skywalking.plugin.jdbc.tracing
;
import
com.ai.cloud.skywalking.buriedpoint.RPCBuriedPointSender
;
import
com.ai.cloud.skywalking.plugin.jdbc.JDBCBuriedPointType
;
import
com.ai.cloud.skywalking.model.Identification
;
import
java.sql.SQLException
;
/**
* 连接级追踪,用于追踪用于Statement的操作追踪
*
* @author wusheng
*/
public
class
StatementTracing
{
private
static
RPCBuriedPointSender
sender
=
new
RPCBuriedPointSender
();
public
static
<
R
>
R
execute
(
java
.
sql
.
Statement
realStatement
,
String
connectInfo
,
String
method
,
String
sql
,
Executable
<
R
>
exec
)
throws
SQLException
{
try
{
sender
.
beforeSend
(
Identification
.
newBuilder
()
.
viewPoint
(
connectInfo
)
.
businessKey
(
"statement."
+
method
+
(
sql
==
null
||
sql
.
length
()
==
0
?
""
:
":"
+
sql
)).
spanType
(
JDBCBuriedPointType
.
instance
()).
build
());
return
exec
.
exe
(
realStatement
,
sql
);
}
catch
(
SQLException
e
)
{
sender
.
handleException
(
e
);
throw
e
;
}
finally
{
sender
.
afterSend
();
}
}
public
interface
Executable
<
R
>
{
public
R
exe
(
java
.
sql
.
Statement
realStatement
,
String
sql
)
throws
SQLException
;
}
}
skywalking-sdk-plugin/pom.xml
浏览文件 @
9aa957c4
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<modelVersion>
4.0.0
</modelVersion>
...
...
@@ -9,6 +10,7 @@
<module>
dubbo-plugin
</module>
<module>
spring-plugin
</module>
<module>
mysql-plugin
</module>
<module>
jdbc-plugin
</module>
<module>
web-plugin
</module>
<module>
httpclient-4.2.x-plugin
</module>
<module>
httpclient-4.3.x-plugin
</module>
...
...
@@ -52,7 +54,7 @@
</plugins>
</build>
<!--发布-->
<!--发布
-->
<distributionManagement>
<snapshotRepository>
<id>
company-private-nexus-library-snapshots
</id>
...
...
@@ -60,4 +62,4 @@
<url>
http://10.1.228.199:18081/nexus/content/repositories/snapshots/
</url>
</snapshotRepository>
</distributionManagement>
</project>
</project>
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录