📄 preparedstatementinpool.java
字号:
/* * Licensed under the X license (see http://www.x.org/terms.htm) */package org.ofbiz.minerva.pool.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.Date;import java.sql.ParameterMetaData;import java.sql.PreparedStatement;import java.sql.Ref;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import java.sql.SQLException;import java.sql.Time;import java.sql.Timestamp;import java.util.Calendar;/** * Wrapper around a PreparedStatement that supports error-handling * and caching. * * @author Aaron Mulder ammulder@alumni.princeton.edu */public class PreparedStatementInPool extends StatementInPool implements PreparedStatement { private final static String CLOSED = "PreparedStatement has been closed!"; private PreparedStatement impl; private ConnectionWrapper con; private String sql; /** * Creates a new statement from a source statement and wrapper connection. */ public PreparedStatementInPool(PreparedStatement source, ConnectionWrapper owner, String sql) { super(source, owner); if (source == null || owner == null) throw new NullPointerException(); impl = source; con = owner; this.sql = sql; } /** * Gets a reference to the "real" Statement. This should only be used if * you need to cast that to a specific type to call a proprietary method - * you will defeat all the pooling if you use the underlying Statement * directly. */ public PreparedStatement getUnderlyingPreparedStatement() { return impl; } /** * Returns the SQL Statement string. */ public String getSql() { return sql; } // ---- Implementation of java.sql.Statement ---- public ResultSet executeQuery() throws SQLException { if (impl == null) throw new SQLException(CLOSED); try { setLastUsed(); return new ResultSetInPool(impl.executeQuery(), this); } catch (SQLException e) { setError(e); throw e; } } public int executeUpdate() throws SQLException { if (impl == null) throw new SQLException(CLOSED); try { setLastUsed(); return impl.executeUpdate(); } catch (SQLException e) { setError(e); throw e; } } public void setNull(int parameterIndex, int sqlType) throws SQLException { if (impl == null) throw new SQLException(CLOSED); try { impl.setNull(parameterIndex, sqlType); } catch (SQLException e) { setError(e); throw e; } } public void setBoolean(int parameterIndex, boolean x) throws SQLException { if (impl == null) throw new SQLException(CLOSED); try { impl.setBoolean(parameterIndex, x); } catch (SQLException e) { setError(e); throw e; } } public void setByte(int parameterIndex, byte x) throws SQLException { if (impl == null) throw new SQLException(CLOSED); try { impl.setByte(parameterIndex, x); } catch (SQLException e) { setError(e); throw e; } } public void setShort(int parameterIndex, short x) throws SQLException { if (impl == null) throw new SQLException(CLOSED); try { impl.setShort(parameterIndex, x); } catch (SQLException e) { setError(e); throw e; } } public void setInt(int parameterIndex, int x) throws SQLException { if (impl == null) throw new SQLException(CLOSED); try { impl.setInt(parameterIndex, x); } catch (SQLException e) { setError(e); throw e; } } public void setLong(int parameterIndex, long x) throws SQLException { if (impl == null) throw new SQLException(CLOSED); try { impl.setLong(parameterIndex, x); } catch (SQLException e) { setError(e); throw e; } } public void setFloat(int parameterIndex, float x) throws SQLException { if (impl == null) throw new SQLException(CLOSED); try { impl.setFloat(parameterIndex, x); } catch (SQLException e) { setError(e); throw e; } } public void setDouble(int parameterIndex, double x) throws SQLException { if (impl == null) throw new SQLException(CLOSED); try { impl.setDouble(parameterIndex, x); } catch (SQLException e) { setError(e); throw e; } } public void setBigDecimal(int parameterIndex, BigDecimal x) throws SQLException { if (impl == null) throw new SQLException(CLOSED); try { impl.setBigDecimal(parameterIndex, x); } catch (SQLException e) { setError(e); throw e; } } public void setString(int parameterIndex, String x) throws SQLException { if (impl == null) throw new SQLException(CLOSED); try { impl.setString(parameterIndex, x); } catch (SQLException e) { setError(e); throw e; } } public void setBytes(int parameterIndex, byte[] x) throws SQLException { if (impl == null) throw new SQLException(CLOSED); try { impl.setBytes(parameterIndex, x); } catch (SQLException e) { setError(e); throw e; } } public void setDate(int parameterIndex, Date x) throws SQLException { if (impl == null) throw new SQLException(CLOSED); try { impl.setDate(parameterIndex, x); } catch (SQLException e) { setError(e); throw e; } } public void setTime(int parameterIndex, Time x) throws SQLException { if (impl == null) throw new SQLException(CLOSED); try { impl.setTime(parameterIndex, x); } catch (SQLException e) { setError(e); throw e; } } public void setTimestamp(int parameterIndex, Timestamp x) throws SQLException { if (impl == null) throw new SQLException(CLOSED); try { impl.setTimestamp(parameterIndex, x); } catch (SQLException e) { setError(e); throw e; } } public void setAsciiStream(int parameterIndex, InputStream x, int length) throws SQLException { if (impl == null) throw new SQLException(CLOSED); try { impl.setAsciiStream(parameterIndex, x, length); } catch (SQLException e) { setError(e); throw e; } } public void setUnicodeStream(int parameterIndex, InputStream x, int length) throws SQLException { if (impl == null) throw new SQLException(CLOSED); try { impl.setUnicodeStream(parameterIndex, x, length); } catch (SQLException e) { setError(e); throw e; } } public void setBinaryStream(int parameterIndex, InputStream x, int length) throws SQLException { if (impl == null) throw new SQLException(CLOSED); try { impl.setBinaryStream(parameterIndex, x, length); } catch (SQLException e) { setError(e); throw e; } } public void clearParameters() throws SQLException { if (impl == null) throw new SQLException(CLOSED); try { impl.clearParameters(); } catch (SQLException e) { setError(e); throw e; } } public void setObject(int parameterIndex, Object x, int targetSqlType, int scale) throws SQLException { if (impl == null) throw new SQLException(CLOSED); try { impl.setObject(parameterIndex, x, targetSqlType, scale); } catch (SQLException e) { setError(e); throw e; } } public void setObject(int parameterIndex, Object x, int targetSqlType) throws SQLException { if (impl == null) throw new SQLException(CLOSED); try { impl.setObject(parameterIndex, x, targetSqlType); } catch (SQLException e) { setError(e); throw e; } } public void setObject(int parameterIndex, Object x) throws SQLException { if (impl == null) throw new SQLException(CLOSED); try { impl.setObject(parameterIndex, x); } catch (SQLException e) { setError(e); throw e; } } public boolean execute() throws SQLException { if (impl == null) throw new SQLException(CLOSED); try { setLastUsed(); return impl.execute(); } catch (SQLException e) { setError(e); throw e; } } public void addBatch() throws SQLException { if (impl == null) throw new SQLException(CLOSED); try { impl.addBatch(); } catch (SQLException e) { setError(e); throw e; } } public void setCharacterStream(int parameterIndex, Reader reader, int length) throws SQLException { if (impl == null) throw new SQLException(CLOSED); try { impl.setCharacterStream(parameterIndex, reader, length); } catch (SQLException e) { setError(e); throw e; } } public void setRef(int i, Ref x) throws SQLException { if (impl == null) throw new SQLException(CLOSED); try { impl.setRef(i, x); } catch (SQLException e) { setError(e); throw e; } } public void setBlob(int i, Blob x) throws SQLException { if (impl == null) throw new SQLException(CLOSED); try { impl.setBlob(i, x); } catch (SQLException e) { setError(e); throw e; } } public void setClob(int i, Clob x) throws SQLException { if (impl == null) throw new SQLException(CLOSED); try { impl.setClob(i, x); } catch (SQLException e) { setError(e); throw e; } } public void setArray(int i, Array x) throws SQLException { if (impl == null) throw new SQLException(CLOSED); try { impl.setArray(i, x); } catch (SQLException e) { setError(e); throw e; } } public ResultSetMetaData getMetaData() throws SQLException { if (impl == null) throw new SQLException(CLOSED); try { return impl.getMetaData(); } catch (SQLException e) { setError(e); throw e; } } public void setDate(int parameterIndex, Date x, Calendar cal) throws SQLException { if (impl == null) throw new SQLException(CLOSED); try { impl.setDate(parameterIndex, x, cal); } catch (SQLException e) { setError(e); throw e; } } public void setTime(int parameterIndex, Time x, Calendar cal) throws SQLException { if (impl == null) throw new SQLException(CLOSED); try { impl.setTime(parameterIndex, x, cal); } catch (SQLException e) { setError(e); throw e; } } public void setTimestamp(int parameterIndex, Timestamp x, Calendar cal) throws SQLException { if (impl == null) throw new SQLException(CLOSED); try { impl.setTimestamp(parameterIndex, x, cal); } catch (SQLException e) { setError(e); throw e; } } public void setNull(int paramIndex, int sqlType, String typeName) throws SQLException { if (impl == null) throw new SQLException(CLOSED); try { impl.setNull(paramIndex, sqlType, typeName); } catch (SQLException e) { setError(e); throw e; } } public void close() throws SQLException { if (con != null) { con.statementClosed(this); } super.clearFields(); con = null; impl = null; sql = null; } // JDK 1.4 methods /* (non-Javadoc) * @see java.sql.PreparedStatement#setURL(int, java.net.URL) */ public void setURL(int arg0, URL arg1) throws SQLException { // TODO Auto-generated method stub } /* (non-Javadoc) * @see java.sql.PreparedStatement#getParameterMetaData() */ public ParameterMetaData getParameterMetaData() throws SQLException { // TODO Auto-generated method stub return null; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -