Search in sources :

Example 6 with OracleConnection

use of oracle.jdbc.OracleConnection in project druid by alibaba.

the class OracleUtilsTest method test_oracle.

public void test_oracle() throws Exception {
    InvocationHandler handler = new InvocationHandler() {

        @Override
        public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
            if (method.getName().equals("pingDatabase")) {
                return 1;
            }
            return null;
        }
    };
    OracleConnection conn = (OracleConnection) Proxy.newProxyInstance(Thread.currentThread().getContextClassLoader(), new Class<?>[] { OracleConnection.class }, handler);
    Assert.assertNotNull(OracleUtils.unwrap(conn));
    Assert.assertEquals(1, OracleUtils.pingDatabase(conn));
}
Also used : Method(java.lang.reflect.Method) OracleConnection(oracle.jdbc.OracleConnection) InvocationHandler(java.lang.reflect.InvocationHandler)

Example 7 with OracleConnection

use of oracle.jdbc.OracleConnection in project druid by alibaba.

the class OracleUtils method openProxySession.

public static void openProxySession(Connection conn, int type, java.util.Properties prop) throws SQLException {
    OracleConnection oracleConn = unwrap(conn);
    oracleConn.openProxySession(type, prop);
}
Also used : OracleConnection(oracle.jdbc.OracleConnection)

Example 8 with OracleConnection

use of oracle.jdbc.OracleConnection in project druid by alibaba.

the class OracleUtils method setStatementCacheSize.

public static void setStatementCacheSize(Connection conn, int size) throws SQLException {
    OracleConnection oracleConn = unwrap(conn);
    oracleConn.setStatementCacheSize(size);
}
Also used : OracleConnection(oracle.jdbc.OracleConnection)

Example 9 with OracleConnection

use of oracle.jdbc.OracleConnection in project druid by alibaba.

the class TestOraclePrefetch method test_oracle.

public void test_oracle() throws Exception {
    String sql = "SELECT 1";
    OracleConnection oracleConn;
    OraclePreparedStatement oracleStmt;
    PreparedStatementHolder stmtHolder;
    {
        Connection conn = dataSource.getConnection();
        {
            oracleConn = conn.unwrap(OracleConnection.class);
            Assert.assertEquals(50, oracleConn.getDefaultRowPrefetch());
        }
        PreparedStatement stmt = conn.prepareStatement(sql);
        oracleStmt = stmt.unwrap(OraclePreparedStatement.class);
        Assert.assertEquals(50, oracleStmt.getRowPrefetch());
        Assert.assertTrue(stmt.isWrapperFor(PreparedStatementHolder.class));
        stmtHolder = stmt.unwrap(PreparedStatementHolder.class);
        Assert.assertNotNull(stmtHolder);
        Assert.assertEquals(0, stmtHolder.getHitCount());
        ResultSet rs = stmt.executeQuery();
        rs.next();
        rs.close();
        stmt.close();
        conn.close();
    }
    {
        Connection conn = dataSource.getConnection();
        {
            OracleConnection oracleConn2 = conn.unwrap(OracleConnection.class);
            Assert.assertEquals(50, oracleConn2.getDefaultRowPrefetch());
            Assert.assertSame(oracleConn, oracleConn2);
        }
        PreparedStatement stmt = conn.prepareStatement(sql);
        {
            PreparedStatementHolder stmtHolder2 = stmt.unwrap(PreparedStatementHolder.class);
            Assert.assertSame(stmtHolder2, stmtHolder);
            Assert.assertEquals(1, stmtHolder.getHitCount());
        }
        ResultSet rs = stmt.executeQuery();
        rs.next();
        rs.close();
        stmt.close();
        {
            OraclePreparedStatement oracleStmt2 = stmt.unwrap(OraclePreparedStatement.class);
            Assert.assertSame(oracleStmt, oracleStmt2);
            Assert.assertEquals(2, oracleStmt.getRowPrefetch());
        }
        conn.close();
    }
    Assert.assertEquals(1, dataSource.getCachedPreparedStatementCount());
}
Also used : PreparedStatementHolder(com.alibaba.druid.pool.PreparedStatementHolder) Connection(java.sql.Connection) OracleConnection(oracle.jdbc.OracleConnection) ResultSet(java.sql.ResultSet) OraclePreparedStatement(oracle.jdbc.internal.OraclePreparedStatement) OraclePreparedStatement(oracle.jdbc.internal.OraclePreparedStatement) PreparedStatement(java.sql.PreparedStatement) OracleConnection(oracle.jdbc.OracleConnection)

Aggregations

OracleConnection (oracle.jdbc.OracleConnection)9 Connection (java.sql.Connection)3 PreparedStatement (java.sql.PreparedStatement)2 ResultSet (java.sql.ResultSet)2 PreparedStatementHolder (com.alibaba.druid.pool.PreparedStatementHolder)1 InvocationHandler (java.lang.reflect.InvocationHandler)1 Method (java.lang.reflect.Method)1 OraclePreparedStatement (oracle.jdbc.OraclePreparedStatement)1 OraclePreparedStatement (oracle.jdbc.internal.OraclePreparedStatement)1