org.objectweb.cjdbc.common.sql
Class InsertRequest

java.lang.Object
  extended byorg.objectweb.cjdbc.common.sql.AbstractRequest
      extended byorg.objectweb.cjdbc.common.sql.AbstractWriteRequest
          extended byorg.objectweb.cjdbc.common.sql.InsertRequest
All Implemented Interfaces:
java.io.Serializable

public class InsertRequest
extends AbstractWriteRequest
implements java.io.Serializable

An InsertRequest is an SQL request of the following syntax:

  INSERT INTO table-name [(column-name[,column-name]*)] {VALUES (constant|null[,constant|null]*)}|{SELECT query}
 
VALUES are ignored. *

Version:
1.0
Author:
Emmanuel Cecchet
See Also:
Serialized Form

Field Summary
private  boolean returnsRS
           
private static long serialVersionUID
           
 
Fields inherited from class org.objectweb.cjdbc.common.sql.AbstractWriteRequest
blocking, columns, pkValue, tableName
 
Fields inherited from class org.objectweb.cjdbc.common.sql.AbstractRequest
cacheable, cursorName, escapeProcessing, fetchSize, id, isAutoCommit, isParsed, isReadOnly, login, maxRows, requestType, sqlQuery, sqlSkeleton, timeoutInSeconds, transactionId, transactionIsolation
 
Constructor Summary
InsertRequest(CJDBCInputStream in)
           
InsertRequest(java.lang.String sqlQuery, boolean escapeProcessing, int timeout, java.lang.String lineSeparator, boolean isRead)
          Creates a new InsertRequest instance.
InsertRequest(java.lang.String sqlQuery, boolean escapeProcessing, int timeout, java.lang.String lineSeparator, DatabaseSchema schema, int granularity, boolean isCaseSensitive, boolean isRead)
          Creates a new InsertRequest instance.
 
Method Summary
 void cloneParsing(AbstractRequest request)
          Clones the parsing of a request.
 void debug()
          Displays some debugging information about this request.
 boolean needsMacroProcessing()
          Returns true if this request requires macro (RAND(), NOW(), ...) processing.
 void parse(DatabaseSchema schema, int granularity, boolean isCaseSensitive)
          Parse the query to know which table is affected.
 boolean returnsResultSet()
          Does this request returns a ResultSet?
 void sendToStream(CJDBCOutputStream out, boolean needSkeleton)
          Serialize the request on the output stream by sending only the needed parameters to reconstruct it on the controller.
 
Methods inherited from class org.objectweb.cjdbc.common.sql.AbstractWriteRequest
cloneTableNameAndColumns, getColumns, getPk, getTableName, mightBlock, setBlocking
 
Methods inherited from class org.objectweb.cjdbc.common.sql.AbstractRequest
equals, getCacheAbility, getCursorName, getEscapeProcessing, getFetchSize, getId, getLineSeparator, getLogin, getMaxRows, getSQL, getSQLShortForm, getSqlSkeleton, getTimeout, getTransactionId, getTransactionIsolation, isAlter, isAutoCommit, isCreate, isDDL, isDelete, isDML, isDriverProcessed, isDrop, isInsert, isParsed, isReadOnly, isSelect, isUpdate, receiveResultSetParams, sendResultSetParams, setCacheAbility, setCursorName, setDriverProcessed, setFetchSize, setId, setIsAutoCommit, setIsReadOnly, setLogin, setMaxRows, setSQL, setSqlSkeleton, setTimeout, setTransactionId, setTransactionIsolation, trimCarriageReturnAndTabs
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

serialVersionUID

private static final long serialVersionUID
See Also:
Constant Field Values

returnsRS

private final boolean returnsRS
Constructor Detail

InsertRequest

public InsertRequest(java.lang.String sqlQuery,
                     boolean escapeProcessing,
                     int timeout,
                     java.lang.String lineSeparator,
                     DatabaseSchema schema,
                     int granularity,
                     boolean isCaseSensitive,
                     boolean isRead)
              throws java.sql.SQLException
Creates a new InsertRequest instance. The caller must give an SQL request, without any leading or trailing spaces and beginning with 'insert into ' (it will not be checked).

If the syntax is incorrect an exception is thrown.

Parameters:
sqlQuery - the SQL query
escapeProcessing - should the driver to escape processing before sending to the database ?
timeout - an int value
lineSeparator - the line separator used in the query
schema - a DatabaseSchema value
granularity - parsing granularity as defined in ParsingGranularities
isCaseSensitive - true if parsing is case sensitive
isRead - does the request expect a ResultSet ?
Throws:
java.sql.SQLException - if an error occurs

InsertRequest

public InsertRequest(java.lang.String sqlQuery,
                     boolean escapeProcessing,
                     int timeout,
                     java.lang.String lineSeparator,
                     boolean isRead)
Creates a new InsertRequest instance. The caller must give an SQL request, without any leading or trailing spaces and beginning with 'create table ' (it will not be checked).

The request is not parsed but it can be done later by a call to parse(DatabaseSchema, int, boolean).

Parameters:
sqlQuery - the SQL request
escapeProcessing - should the driver to escape processing before sending to the database ?
timeout - an int value
lineSeparator - the line separator used in the query
isRead - does the request expects a ResultSet with the auto-generated keys?
See Also:
parse(org.objectweb.cjdbc.common.sql.schema.DatabaseSchema, int, boolean)

InsertRequest

public InsertRequest(CJDBCInputStream in)
              throws java.io.IOException
See Also:
AbstractWriteRequest
Method Detail

sendToStream

public void sendToStream(CJDBCOutputStream out,
                         boolean needSkeleton)
                  throws java.io.IOException
Description copied from class: AbstractRequest
Serialize the request on the output stream by sending only the needed parameters to reconstruct it on the controller. Has to mirror the deserialization method above.

Overrides:
sendToStream in class AbstractRequest
Parameters:
out - destination CJDBCOutputStream
needSkeleton - true if controller wants SQL templates
Throws:
java.io.IOException - if fails
See Also:
AbstractRequest.sendToStream(org.objectweb.cjdbc.common.stream.CJDBCOutputStream, boolean)

parse

public void parse(DatabaseSchema schema,
                  int granularity,
                  boolean isCaseSensitive)
           throws java.sql.SQLException
Parse the query to know which table is affected. Also checks for the columns if the parsing granularity requires it.

Specified by:
parse in class AbstractRequest
Parameters:
schema - a DatabaseSchema value
granularity - parsing granularity as defined in ParsingGranularities
isCaseSensitive - true if parsing must be case sensitive
Throws:
java.sql.SQLException - if the parsing fails
See Also:
AbstractRequest.parse(org.objectweb.cjdbc.common.sql.schema.DatabaseSchema, int, boolean)

cloneParsing

public void cloneParsing(AbstractRequest request)
Description copied from class: AbstractRequest
Clones the parsing of a request.

Specified by:
cloneParsing in class AbstractRequest
Parameters:
request - the parsed request to clone
See Also:
AbstractRequest.cloneParsing(AbstractRequest)

needsMacroProcessing

public boolean needsMacroProcessing()
Description copied from class: AbstractRequest
Returns true if this request requires macro (RAND(), NOW(), ...) processing.

Specified by:
needsMacroProcessing in class AbstractRequest
Returns:
true if macro processing is required
See Also:
AbstractRequest.needsMacroProcessing()

returnsResultSet

public boolean returnsResultSet()
Description copied from class: AbstractRequest
Does this request returns a ResultSet?

Specified by:
returnsResultSet in class AbstractRequest
Returns:
true is this request will return a ResultSet
See Also:
AbstractRequest.returnsResultSet()

debug

public void debug()
Displays some debugging information about this request.

Overrides:
debug in class AbstractRequest


Copyright © 2002, 2005 - ObjectWeb Consortium - All Rights Reserved.