org.apache.openjpa.jdbc.kernel
Class PreparedStatementManagerImpl

java.lang.Object
  extended by org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl
All Implemented Interfaces:
PreparedStatementManager
Direct Known Subclasses:
BatchingPreparedStatementManagerImpl

public class PreparedStatementManagerImpl
extends Object
implements PreparedStatementManager

Basic prepared statement manager implementation.

Author:
Abe White

Field Summary
protected  Connection _conn
           
protected  DBDictionary _dict
           
protected  Collection _exceptions
           
protected  Log _log
           
protected  JDBCStore _store
           
 
Constructor Summary
PreparedStatementManagerImpl(JDBCStore store, Connection conn)
          Constructor.
 
Method Summary
protected  int executeUpdate(PreparedStatement stmnt, String sql, RowImpl row)
          This method is to provide override for non-JDBC or JDBC-like implementation of executing update.
 void flush()
          This method must be called after the last row has been flushed, to flush any remaining statements.
 void flush(RowImpl row)
          Flush the given row.
protected  void flushAndUpdate(RowImpl row)
          Flush the given row immediately.
protected  void flushInternal(RowImpl row)
          Flush the given row.
protected  String[] getAutoAssignColNames(Column[] autoAssign, RowImpl row)
           
protected  Column[] getAutoAssignColumns(RowImpl row)
           
 Collection getExceptions()
          Return the exceptions encountered during all flushes.
protected  List<Object> getGeneratedKeys(PreparedStatement stmnt, DBIdentifier[] autoAssignColNames)
           
protected  List<Object> getGeneratedKeys(PreparedStatement stmnt, String[] autoAssignColNames)
          This method will only be called when the database supports getGeneratedKeys.
protected  void logSQLWarnings(PreparedStatement stmt)
          Provided the JDBC log category is logging warnings, this method will log any SQL warnings that result from the execution of a SQL statement.
protected  List<Object> populateAutoAssignCols(PreparedStatement stmnt, Column[] autoAssign, DBIdentifier[] autoAssignColNames, RowImpl row)
          This method will only be called when there is auto assign columns.
protected  List<Object> populateAutoAssignCols(PreparedStatement stmnt, Column[] autoAssign, String[] autoAssignColNames, RowImpl row)
           
protected  PreparedStatement prepareStatement(String sql)
          This method is to provide override for non-JDBC or JDBC-like implementation of preparing statement.
protected  PreparedStatement prepareStatement(String sql, String[] autoAssignColNames)
          This method is to provide override for non-JDBC or JDBC-like implementation of preparing statement.
protected  void setObjectId(List vals, Column[] autoAssign, DBIdentifier[] autoAssignColNames, RowImpl row)
           
protected  void setObjectId(List vals, Column[] autoAssign, String[] autoAssignColNames, RowImpl row)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_store

protected final JDBCStore _store

_conn

protected final Connection _conn

_dict

protected final DBDictionary _dict

_log

protected transient Log _log

_exceptions

protected final Collection _exceptions
Constructor Detail

PreparedStatementManagerImpl

public PreparedStatementManagerImpl(JDBCStore store,
                                    Connection conn)
Constructor. Supply connection.

Method Detail

getExceptions

public Collection getExceptions()
Description copied from interface: PreparedStatementManager
Return the exceptions encountered during all flushes.

Specified by:
getExceptions in interface PreparedStatementManager

flush

public void flush(RowImpl row)
Description copied from interface: PreparedStatementManager
Flush the given row.

Specified by:
flush in interface PreparedStatementManager

flushInternal

protected void flushInternal(RowImpl row)
                      throws SQLException
Flush the given row.

Throws:
SQLException

flushAndUpdate

protected void flushAndUpdate(RowImpl row)
                       throws SQLException
Flush the given row immediately.

Throws:
SQLException

populateAutoAssignCols

protected List<Object> populateAutoAssignCols(PreparedStatement stmnt,
                                              Column[] autoAssign,
                                              DBIdentifier[] autoAssignColNames,
                                              RowImpl row)
                                       throws SQLException
This method will only be called when there is auto assign columns. If database supports getGeneratedKeys, the keys will be obtained from the result set associated with the stmnt. If not, a separate sql to select the key will be issued from DBDictionary.

Throws:
SQLException

populateAutoAssignCols

protected List<Object> populateAutoAssignCols(PreparedStatement stmnt,
                                              Column[] autoAssign,
                                              String[] autoAssignColNames,
                                              RowImpl row)
                                       throws SQLException
Throws:
SQLException

setObjectId

protected void setObjectId(List vals,
                           Column[] autoAssign,
                           String[] autoAssignColNames,
                           RowImpl row)
                    throws SQLException
Throws:
SQLException

setObjectId

protected void setObjectId(List vals,
                           Column[] autoAssign,
                           DBIdentifier[] autoAssignColNames,
                           RowImpl row)
                    throws SQLException
Throws:
SQLException

getGeneratedKeys

protected List<Object> getGeneratedKeys(PreparedStatement stmnt,
                                        String[] autoAssignColNames)
                                 throws SQLException
This method will only be called when the database supports getGeneratedKeys.

Throws:
SQLException

getGeneratedKeys

protected List<Object> getGeneratedKeys(PreparedStatement stmnt,
                                        DBIdentifier[] autoAssignColNames)
                                 throws SQLException
Throws:
SQLException

getAutoAssignColumns

protected Column[] getAutoAssignColumns(RowImpl row)

getAutoAssignColNames

protected String[] getAutoAssignColNames(Column[] autoAssign,
                                         RowImpl row)

flush

public void flush()
Description copied from interface: PreparedStatementManager
This method must be called after the last row has been flushed, to flush any remaining statements.

Specified by:
flush in interface PreparedStatementManager

executeUpdate

protected int executeUpdate(PreparedStatement stmnt,
                            String sql,
                            RowImpl row)
                     throws SQLException
This method is to provide override for non-JDBC or JDBC-like implementation of executing update.

Throws:
SQLException

prepareStatement

protected PreparedStatement prepareStatement(String sql)
                                      throws SQLException
This method is to provide override for non-JDBC or JDBC-like implementation of preparing statement.

Throws:
SQLException

prepareStatement

protected PreparedStatement prepareStatement(String sql,
                                             String[] autoAssignColNames)
                                      throws SQLException
This method is to provide override for non-JDBC or JDBC-like implementation of preparing statement.

Throws:
SQLException

logSQLWarnings

protected void logSQLWarnings(PreparedStatement stmt)
Provided the JDBC log category is logging warnings, this method will log any SQL warnings that result from the execution of a SQL statement.



Copyright © 2006-2010 Apache Software Foundation. All Rights Reserved.