mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
support spring 2.0
This commit is contained in:
@@ -33,6 +33,12 @@
|
||||
<url>http://code.alibabatech.com/mvn/releases/</url>
|
||||
<layout>default</layout>
|
||||
</repository>
|
||||
|
||||
<repository>
|
||||
<id>springsource-repo</id>
|
||||
<name>SpringSource Repository</name>
|
||||
<url>http://repo.springsource.org/release</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
|
||||
<distributionManagement>
|
||||
@@ -164,12 +170,22 @@
|
||||
<version>1.1.1</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring</artifactId>
|
||||
<version>2.5.6</version>
|
||||
<version>2.0</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<!--
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-context</artifactId>
|
||||
<version>3.1.0.RELEASE</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
-->
|
||||
|
||||
<dependency>
|
||||
<groupId>log4j</groupId>
|
||||
<artifactId>log4j</artifactId>
|
||||
@@ -209,14 +225,14 @@
|
||||
<version>1.2.4</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
|
||||
<dependency>
|
||||
<groupId>postgresql</groupId>
|
||||
<artifactId>postgresql</artifactId>
|
||||
<version>9.1-901-1.jdbc4</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
|
||||
<dependency>
|
||||
<groupId>com.oracle</groupId>
|
||||
<artifactId>ojdbc5</artifactId>
|
||||
@@ -224,14 +240,8 @@
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<!--
|
||||
<dependency>
|
||||
<groupId>com.alibaba.external</groupId>
|
||||
<artifactId>jdbc.oracle</artifactId>
|
||||
<version>10.2.0.2</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
-->
|
||||
<!-- <dependency> <groupId>com.alibaba.external</groupId> <artifactId>jdbc.oracle</artifactId>
|
||||
<version>10.2.0.2</version> <scope>provided</scope> </dependency> -->
|
||||
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
|
||||
@@ -643,7 +643,7 @@ public class StatFilter extends FilterEventAdapter implements StatFilterMBean {
|
||||
return dataSource.getUrl();
|
||||
}
|
||||
|
||||
public final JdbcSqlStat createSqlStat(StatementProxy statement, String sql) {
|
||||
public JdbcSqlStat createSqlStat(StatementProxy statement, String sql) {
|
||||
final ConcurrentMap<String, JdbcSqlStat> sqlStatMap = dataSourceStat.getSqlStatMap();
|
||||
JdbcSqlStat sqlStat = sqlStatMap.get(sql);
|
||||
if (sqlStat == null) {
|
||||
|
||||
@@ -218,6 +218,9 @@ public abstract class DruidAbstractDataSource extends WrapperAdapter implements
|
||||
}
|
||||
|
||||
public void setOracle(boolean isOracle) {
|
||||
if (inited) {
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
this.isOracle = isOracle;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,33 @@
|
||||
package com.alibaba.druid.support.spring;
|
||||
|
||||
import org.springframework.jdbc.support.nativejdbc.Jdbc4NativeJdbcExtractor;
|
||||
import java.sql.CallableStatement;
|
||||
import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.sql.Statement;
|
||||
|
||||
public class DruidNativeJdbcExtractor extends Jdbc4NativeJdbcExtractor {
|
||||
import org.springframework.jdbc.support.nativejdbc.NativeJdbcExtractorAdapter;
|
||||
|
||||
public class DruidNativeJdbcExtractor extends NativeJdbcExtractorAdapter {
|
||||
|
||||
protected Connection doGetNativeConnection(Connection con) throws SQLException {
|
||||
return (Connection) con.unwrap(Connection.class);
|
||||
}
|
||||
|
||||
public Statement getNativeStatement(Statement stmt) throws SQLException {
|
||||
return (Statement) stmt.unwrap(Statement.class);
|
||||
}
|
||||
|
||||
public PreparedStatement getNativePreparedStatement(PreparedStatement ps) throws SQLException {
|
||||
return (PreparedStatement) ps.unwrap(PreparedStatement.class);
|
||||
}
|
||||
|
||||
public CallableStatement getNativeCallableStatement(CallableStatement cs) throws SQLException {
|
||||
return (CallableStatement) cs.unwrap(CallableStatement.class);
|
||||
}
|
||||
|
||||
public ResultSet getNativeResultSet(ResultSet rs) throws SQLException {
|
||||
return (ResultSet) rs.unwrap(ResultSet.class);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,8 +7,6 @@ import java.sql.Statement;
|
||||
import junit.framework.Assert;
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import org.springframework.jdbc.support.nativejdbc.Jdbc4NativeJdbcExtractor;
|
||||
|
||||
import com.alibaba.druid.mock.MockCallableStatement;
|
||||
import com.alibaba.druid.mock.MockConnection;
|
||||
import com.alibaba.druid.mock.MockPreparedStatement;
|
||||
@@ -56,7 +54,7 @@ public class DruidJdbcExtractorTest extends TestCase {
|
||||
DruidDataSource dataSource = new DruidDataSource();
|
||||
|
||||
try {
|
||||
Jdbc4NativeJdbcExtractor extractor = new Jdbc4NativeJdbcExtractor();
|
||||
DruidNativeJdbcExtractor extractor = new DruidNativeJdbcExtractor();
|
||||
|
||||
dataSource.setUrl("jdbc:mock:xx1");
|
||||
dataSource.setFilters("stat");
|
||||
|
||||
@@ -1,99 +0,0 @@
|
||||
package com.alibaba.druid.bvt.spring;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.Statement;
|
||||
|
||||
import junit.framework.Assert;
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import org.springframework.jdbc.support.nativejdbc.Jdbc4NativeJdbcExtractor;
|
||||
|
||||
import com.alibaba.druid.mock.MockCallableStatement;
|
||||
import com.alibaba.druid.mock.MockConnection;
|
||||
import com.alibaba.druid.mock.MockPreparedStatement;
|
||||
import com.alibaba.druid.mock.MockResultSet;
|
||||
import com.alibaba.druid.mock.MockStatement;
|
||||
import com.alibaba.druid.pool.DruidDataSource;
|
||||
import com.alibaba.druid.support.spring.DruidNativeJdbcExtractor;
|
||||
|
||||
public class Jdbc4ExtractorTest extends TestCase {
|
||||
|
||||
public void test_spring() throws Exception {
|
||||
DruidDataSource dataSource = new DruidDataSource();
|
||||
|
||||
try {
|
||||
Jdbc4NativeJdbcExtractor extractor = new Jdbc4NativeJdbcExtractor();
|
||||
|
||||
dataSource.setUrl("jdbc:mock:xx1");
|
||||
Connection conn = dataSource.getConnection();
|
||||
Assert.assertEquals(true, extractor.getNativeConnection(conn) instanceof MockConnection);
|
||||
|
||||
Statement stmt = conn.createStatement();
|
||||
Assert.assertEquals(true, extractor.getNativeConnectionFromStatement(stmt) instanceof MockConnection);
|
||||
Assert.assertEquals(true, extractor.getNativeStatement(stmt) instanceof MockStatement);
|
||||
|
||||
stmt.close();
|
||||
|
||||
PreparedStatement preStmt = conn.prepareStatement("select 1");
|
||||
Assert.assertEquals(true, extractor.getNativeConnectionFromStatement(preStmt) instanceof MockConnection);
|
||||
Assert.assertEquals(true, extractor.getNativeStatement(preStmt) instanceof MockPreparedStatement);
|
||||
Assert.assertEquals(true, extractor.getNativePreparedStatement(preStmt) instanceof MockPreparedStatement);
|
||||
ResultSet rs = preStmt.executeQuery();
|
||||
Assert.assertEquals(true, extractor.getNativeResultSet(rs) instanceof MockResultSet);
|
||||
rs.close();
|
||||
|
||||
preStmt.close();
|
||||
|
||||
PreparedStatement callStmt = conn.prepareCall("select 1");
|
||||
Assert.assertEquals(true, extractor.getNativeConnectionFromStatement(callStmt) instanceof MockConnection);
|
||||
Assert.assertEquals(true, extractor.getNativeStatement(callStmt) instanceof MockCallableStatement);
|
||||
Assert.assertEquals(true, extractor.getNativePreparedStatement(callStmt) instanceof MockCallableStatement);
|
||||
callStmt.close();
|
||||
|
||||
conn.close();
|
||||
} finally {
|
||||
dataSource.close();
|
||||
}
|
||||
}
|
||||
|
||||
public void test_spring_filter() throws Exception {
|
||||
DruidDataSource dataSource = new DruidDataSource();
|
||||
|
||||
try {
|
||||
DruidNativeJdbcExtractor extractor = new DruidNativeJdbcExtractor();
|
||||
|
||||
dataSource.setUrl("jdbc:mock:xx1");
|
||||
dataSource.setFilters("stat");
|
||||
Connection conn = dataSource.getConnection();
|
||||
Assert.assertEquals(true, extractor.getNativeConnection(conn) instanceof MockConnection);
|
||||
|
||||
Statement stmt = conn.createStatement();
|
||||
Assert.assertEquals(true, extractor.getNativeConnectionFromStatement(stmt) instanceof MockConnection);
|
||||
Assert.assertEquals(true, extractor.getNativeStatement(stmt) instanceof MockStatement);
|
||||
|
||||
stmt.close();
|
||||
|
||||
PreparedStatement preStmt = conn.prepareStatement("select 1");
|
||||
Assert.assertEquals(true, extractor.getNativeConnectionFromStatement(preStmt) instanceof MockConnection);
|
||||
Assert.assertEquals(true, extractor.getNativeStatement(preStmt) instanceof MockPreparedStatement);
|
||||
Assert.assertEquals(true, extractor.getNativePreparedStatement(preStmt) instanceof MockPreparedStatement);
|
||||
ResultSet rs = preStmt.executeQuery();
|
||||
Assert.assertEquals(true, extractor.getNativeResultSet(rs) instanceof MockResultSet);
|
||||
rs.close();
|
||||
|
||||
preStmt.close();
|
||||
|
||||
PreparedStatement callStmt = conn.prepareCall("select 1");
|
||||
Assert.assertEquals(true, extractor.getNativeConnectionFromStatement(callStmt) instanceof MockConnection);
|
||||
Assert.assertEquals(true, extractor.getNativeStatement(callStmt) instanceof MockCallableStatement);
|
||||
Assert.assertEquals(true, extractor.getNativePreparedStatement(callStmt) instanceof MockCallableStatement);
|
||||
callStmt.close();
|
||||
|
||||
conn.close();
|
||||
} finally {
|
||||
dataSource.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user