org.apache.cocoon.acting.modular
Class DatabaseQueryAction
java.lang.Object
|
+--org.apache.avalon.framework.logger.AbstractLoggable
|
+--org.apache.cocoon.acting.AbstractAction
|
+--org.apache.cocoon.acting.AbstractConfigurableAction
|
+--org.apache.cocoon.acting.ConfigurableComposerAction
|
+--org.apache.cocoon.acting.AbstractComplementaryConfigurableAction
|
+--org.apache.cocoon.acting.modular.DatabaseAction
|
+--org.apache.cocoon.acting.modular.DatabaseQueryAction
- All Implemented Interfaces:
- Action, org.apache.avalon.framework.component.Component, org.apache.avalon.framework.component.Composable, org.apache.avalon.framework.configuration.Configurable, org.apache.avalon.framework.activity.Disposable, org.apache.avalon.framework.logger.Loggable
- public class DatabaseQueryAction
- extends DatabaseAction
Executes an arbitrary query. The query is associated with a table
and selected through the others mode. All keys and values are set
in order of appearance, starting with keys, thus the query needs to
have as many placeholders for prepared statement parameters. If it
is an update query, the number of affected rows is returned to the
sitemap.
<table name="example">
<queries>
<query mode="one">update example set count=count+1 where id=?</query>
<query mode="two">select count, name from example where id=?</query>
</queries>
<keys>
<key name="id"/>
</keys>
<values/>
</table>
- Version:
- CVS $Id: DatabaseQueryAction.java,v 1.2 2002/08/09 08:25:29 haul Exp $
- Author:
- Christian Haul
Fields inherited from interface org.apache.cocoon.acting.Action |
ROLE |
Method Summary |
protected java.lang.Object[][] |
getColumnValues(org.apache.avalon.framework.configuration.Configuration tableConf,
DatabaseAction.CacheHelper queryData,
java.util.Map objectModel)
Fetch all values for all columns that are needed to do the database operation. |
protected DatabaseAction.CacheHelper |
getQuery(org.apache.avalon.framework.configuration.Configuration table,
java.util.Map modeTypes,
java.util.Map defaultModeNames)
Get the String representation of the PreparedStatement. |
protected boolean |
honourAutoIncrement()
determine whether autoincrement columns should be honoured by
this operation. |
protected int |
processRow(java.util.Map objectModel,
java.sql.Connection conn,
java.sql.PreparedStatement statement,
java.lang.String outputMode,
org.apache.avalon.framework.configuration.Configuration table,
DatabaseAction.CacheHelper queryData,
java.lang.Object[][] columnValues,
int rowIndex,
java.util.Map results)
set all necessary ? |
protected java.lang.String |
selectMode(boolean isAutoIncrement,
java.util.Map modes)
determine which mode to use as default mode
here: SELECT
highly specific to operation INSERT / UPDATE / DELETE / SELECT |
Methods inherited from class org.apache.cocoon.acting.modular.DatabaseAction |
act, compose, configure, dispose, fillModes, getColumnValue, getDataSource, getMode, getOutputName, getOutputName, isLargeObject, processTable, setColumn, setColumn, setOutput, setOutputAttribute |
Methods inherited from class org.apache.avalon.framework.logger.AbstractLoggable |
getLogger, setLogger, setupLogger, setupLogger, setupLogger |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
DatabaseQueryAction
public DatabaseQueryAction()
selectMode
protected java.lang.String selectMode(boolean isAutoIncrement,
java.util.Map modes)
- determine which mode to use as default mode
here: SELECT
highly specific to operation INSERT / UPDATE / DELETE / SELECT
- Overrides:
selectMode
in class DatabaseAction
honourAutoIncrement
protected boolean honourAutoIncrement()
- determine whether autoincrement columns should be honoured by
this operation. This is usually snsible only for INSERTs.
- Overrides:
honourAutoIncrement
in class DatabaseAction
getQuery
protected DatabaseAction.CacheHelper getQuery(org.apache.avalon.framework.configuration.Configuration table,
java.util.Map modeTypes,
java.util.Map defaultModeNames)
throws org.apache.avalon.framework.configuration.ConfigurationException,
org.apache.avalon.framework.component.ComponentException
- Get the String representation of the PreparedStatement. This is
mapped to the Configuration object itself, so if it doesn't exist,
it will be created.
- Overrides:
getQuery
in class DatabaseAction
- Parameters:
table
- the table's configuration object- Returns:
- the insert query as a string
getColumnValues
protected java.lang.Object[][] getColumnValues(org.apache.avalon.framework.configuration.Configuration tableConf,
DatabaseAction.CacheHelper queryData,
java.util.Map objectModel)
throws org.apache.avalon.framework.configuration.ConfigurationException,
org.apache.avalon.framework.component.ComponentException
- Fetch all values for all columns that are needed to do the database operation.
processRow
protected int processRow(java.util.Map objectModel,
java.sql.Connection conn,
java.sql.PreparedStatement statement,
java.lang.String outputMode,
org.apache.avalon.framework.configuration.Configuration table,
DatabaseAction.CacheHelper queryData,
java.lang.Object[][] columnValues,
int rowIndex,
java.util.Map results)
throws java.sql.SQLException,
org.apache.avalon.framework.configuration.ConfigurationException,
java.lang.Exception
- set all necessary ?s and execute the query
- Overrides:
processRow
in class DatabaseAction
Copyright © 1999-2002 Apache Software Foundation. All Rights Reserved.