Search in sources :

Example 1 with PoolableCallableStatement

use of org.datanucleus.store.rdbms.datasource.dbcp2.PoolableCallableStatement in project datanucleus-rdbms by datanucleus.

the class PoolingConnection method makeObject.

/**
 * {@link KeyedPooledObjectFactory} method for creating {@link PoolablePreparedStatement}s or
 * {@link PoolableCallableStatement}s. The <code>stmtType</code> field in the key determines whether a
 * PoolablePreparedStatement or PoolableCallableStatement is created.
 *
 * @param key
 *            the key for the {@link PreparedStatement} to be created
 * @see #createKey(String, int, int, StatementType)
 */
@SuppressWarnings("resource")
@Override
public PooledObject<DelegatingPreparedStatement> makeObject(final PStmtKey key) throws Exception {
    if (null == key) {
        throw new IllegalArgumentException("Prepared statement key is null or invalid.");
    }
    if (key.getStmtType() == StatementType.PREPARED_STATEMENT) {
        final PreparedStatement statement = (PreparedStatement) key.createStatement(getDelegate());
        // Unable to find way to avoid this
        @SuppressWarnings({ "rawtypes", "unchecked" }) final PoolablePreparedStatement pps = new PoolablePreparedStatement(statement, key, pstmtPool, this);
        return new DefaultPooledObject<>(pps);
    }
    final CallableStatement statement = (CallableStatement) key.createStatement(getDelegate());
    final PoolableCallableStatement pcs = new PoolableCallableStatement(statement, key, pstmtPool, this);
    return new DefaultPooledObject<>(pcs);
}
Also used : DefaultPooledObject(org.datanucleus.store.rdbms.datasource.dbcp2.pool2.impl.DefaultPooledObject) CallableStatement(java.sql.CallableStatement) PreparedStatement(java.sql.PreparedStatement)

Example 2 with PoolableCallableStatement

use of org.datanucleus.store.rdbms.datasource.dbcp2.PoolableCallableStatement in project datanucleus-rdbms by datanucleus.

the class PooledConnectionImpl method makeObject.

/**
 * My {@link KeyedPooledObjectFactory} method for creating {@link PreparedStatement}s.
 *
 * @param key
 *            The key for the {@link PreparedStatement} to be created.
 */
@SuppressWarnings("resource")
@Override
public PooledObject<DelegatingPreparedStatement> makeObject(final PStmtKey key) throws Exception {
    if (null == key) {
        throw new IllegalArgumentException("Prepared statement key is null or invalid.");
    }
    if (key.getStmtType() == StatementType.PREPARED_STATEMENT) {
        final PreparedStatement statement = (PreparedStatement) key.createStatement(connection);
        // Unable to find way to avoid this
        @SuppressWarnings({ "rawtypes", "unchecked" }) final PoolablePreparedStatement pps = new PoolablePreparedStatement(statement, key, pStmtPool, delegatingConnection);
        return new DefaultPooledObject<>(pps);
    }
    final CallableStatement statement = (CallableStatement) key.createStatement(connection);
    @SuppressWarnings("unchecked") final PoolableCallableStatement pcs = new PoolableCallableStatement(statement, key, pStmtPool, (DelegatingConnection<Connection>) delegatingConnection);
    return new DefaultPooledObject<>(pcs);
}
Also used : DefaultPooledObject(org.datanucleus.store.rdbms.datasource.dbcp2.pool2.impl.DefaultPooledObject) PoolableCallableStatement(org.datanucleus.store.rdbms.datasource.dbcp2.PoolableCallableStatement) CallableStatement(java.sql.CallableStatement) Connection(java.sql.Connection) PooledConnection(javax.sql.PooledConnection) DelegatingConnection(org.datanucleus.store.rdbms.datasource.dbcp2.DelegatingConnection) PreparedStatement(java.sql.PreparedStatement) DelegatingPreparedStatement(org.datanucleus.store.rdbms.datasource.dbcp2.DelegatingPreparedStatement) PoolablePreparedStatement(org.datanucleus.store.rdbms.datasource.dbcp2.PoolablePreparedStatement) PoolableCallableStatement(org.datanucleus.store.rdbms.datasource.dbcp2.PoolableCallableStatement) PoolablePreparedStatement(org.datanucleus.store.rdbms.datasource.dbcp2.PoolablePreparedStatement)

Example 3 with PoolableCallableStatement

use of org.datanucleus.store.rdbms.datasource.dbcp2.PoolableCallableStatement in project tomcat by apache.

the class PooledConnectionImpl method makeObject.

/**
 * My {@link KeyedPooledObjectFactory} method for creating {@link PreparedStatement}s.
 *
 * @param key
 *            The key for the {@link PreparedStatement} to be created.
 */
@Override
public PooledObject<DelegatingPreparedStatement> makeObject(final PStmtKey key) throws Exception {
    if (null == key) {
        throw new IllegalArgumentException("Prepared statement key is null or invalid.");
    }
    if (key.getStmtType() == StatementType.PREPARED_STATEMENT) {
        final PreparedStatement statement = (PreparedStatement) key.createStatement(connection);
        // Unable to find way to avoid this
        @SuppressWarnings({ "rawtypes", "unchecked" }) final PoolablePreparedStatement pps = new PoolablePreparedStatement(statement, key, pStmtPool, delegatingConnection);
        return new DefaultPooledObject<>(pps);
    }
    final CallableStatement statement = (CallableStatement) key.createStatement(connection);
    @SuppressWarnings("unchecked") final PoolableCallableStatement pcs = new PoolableCallableStatement(statement, key, pStmtPool, (DelegatingConnection<Connection>) delegatingConnection);
    return new DefaultPooledObject<>(pcs);
}
Also used : DefaultPooledObject(org.apache.tomcat.dbcp.pool2.impl.DefaultPooledObject) PoolableCallableStatement(org.apache.tomcat.dbcp.dbcp2.PoolableCallableStatement) CallableStatement(java.sql.CallableStatement) Connection(java.sql.Connection) PooledConnection(javax.sql.PooledConnection) DelegatingConnection(org.apache.tomcat.dbcp.dbcp2.DelegatingConnection) DelegatingPreparedStatement(org.apache.tomcat.dbcp.dbcp2.DelegatingPreparedStatement) PreparedStatement(java.sql.PreparedStatement) PoolablePreparedStatement(org.apache.tomcat.dbcp.dbcp2.PoolablePreparedStatement) PoolableCallableStatement(org.apache.tomcat.dbcp.dbcp2.PoolableCallableStatement) PoolablePreparedStatement(org.apache.tomcat.dbcp.dbcp2.PoolablePreparedStatement)

Aggregations

CallableStatement (java.sql.CallableStatement)3 PreparedStatement (java.sql.PreparedStatement)3 Connection (java.sql.Connection)2 PooledConnection (javax.sql.PooledConnection)2 DefaultPooledObject (org.datanucleus.store.rdbms.datasource.dbcp2.pool2.impl.DefaultPooledObject)2 DelegatingConnection (org.apache.tomcat.dbcp.dbcp2.DelegatingConnection)1 DelegatingPreparedStatement (org.apache.tomcat.dbcp.dbcp2.DelegatingPreparedStatement)1 PoolableCallableStatement (org.apache.tomcat.dbcp.dbcp2.PoolableCallableStatement)1 PoolablePreparedStatement (org.apache.tomcat.dbcp.dbcp2.PoolablePreparedStatement)1 DefaultPooledObject (org.apache.tomcat.dbcp.pool2.impl.DefaultPooledObject)1 DelegatingConnection (org.datanucleus.store.rdbms.datasource.dbcp2.DelegatingConnection)1 DelegatingPreparedStatement (org.datanucleus.store.rdbms.datasource.dbcp2.DelegatingPreparedStatement)1 PoolableCallableStatement (org.datanucleus.store.rdbms.datasource.dbcp2.PoolableCallableStatement)1 PoolablePreparedStatement (org.datanucleus.store.rdbms.datasource.dbcp2.PoolablePreparedStatement)1