org.apache.cocoon.acting.modular
Class DatabaseQueryAction
java.lang.Object
org.apache.avalon.framework.logger.AbstractLogEnabled
org.apache.cocoon.acting.AbstractAction
org.apache.cocoon.acting.AbstractConfigurableAction
org.apache.cocoon.acting.ConfigurableServiceableAction
org.apache.cocoon.acting.AbstractComplementaryConfigurableAction
org.apache.cocoon.acting.modular.DatabaseAction
org.apache.cocoon.acting.modular.DatabaseQueryAction
- All Implemented Interfaces:
- Disposable, Component, Configurable, LogEnabled, Serviceable, ThreadSafe, Action
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.html 1304258 2012-03-23 10:09:27Z ilgrosso $
- Author:
- Christian Haul
Fields inherited from interface org.apache.cocoon.acting.Action |
ROLE |
Method Summary |
protected Object[][] |
getColumnValues(Configuration tableConf,
DatabaseAction.CacheHelper queryData,
Map objectModel)
Fetch all values for all columns that are needed to do the database operation. |
protected DatabaseAction.CacheHelper |
getQuery(Configuration table,
Map modeTypes,
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(Map objectModel,
Connection conn,
PreparedStatement statement,
String outputMode,
Configuration table,
DatabaseAction.CacheHelper queryData,
Object[][] columnValues,
int rowIndex,
Map results)
set all necessary ? |
protected String |
selectMode(boolean isAutoIncrement,
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, configure, dispose, fillModes, getColumnValue, getDataSource, getMode, getOutputName, getOutputName, isLargeObject, processTable, service, setColumn, setColumn, setOutput, setOutputAttribute |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
DatabaseQueryAction
public DatabaseQueryAction()
selectMode
protected String selectMode(boolean isAutoIncrement,
Map modes)
- determine which mode to use as default mode
here: SELECT
highly specific to operation INSERT / UPDATE / DELETE / SELECT
- Specified by:
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.
- Specified by:
honourAutoIncrement
in class DatabaseAction
getQuery
protected DatabaseAction.CacheHelper getQuery(Configuration table,
Map modeTypes,
Map defaultModeNames)
throws ConfigurationException,
ServiceException
- 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.
- Specified by:
getQuery
in class DatabaseAction
- Parameters:
table
- the table's configuration object
- Returns:
- the insert query as a string
- Throws:
ConfigurationException
ServiceException
getColumnValues
protected Object[][] getColumnValues(Configuration tableConf,
DatabaseAction.CacheHelper queryData,
Map objectModel)
throws ConfigurationException,
ServiceException
- Fetch all values for all columns that are needed to do the database operation.
- Throws:
ConfigurationException
ServiceException
processRow
protected int processRow(Map objectModel,
Connection conn,
PreparedStatement statement,
String outputMode,
Configuration table,
DatabaseAction.CacheHelper queryData,
Object[][] columnValues,
int rowIndex,
Map results)
throws SQLException,
ConfigurationException,
Exception
- set all necessary ?s and execute the query
- Specified by:
processRow
in class DatabaseAction
- Throws:
SQLException
ConfigurationException
Exception
Copyright © 1999-2010 The Apache Software Foundation. All Rights Reserved.