public class MariaDbClientParameterizeQuery extends Object implements ParameterizeQuery
if "allowMultiQueries" option active : Query will be rewritten as : queryParts[0]+parameter[0]+...queryParts[x]+parameter[x]+queryParts[x+1] + ";" + new query... "INSERT INTO MultiTestt3_dupp(col1, pkey,col2,col3,col4) VALUES (9, "+parameter0+", 5, "+parameter1+", 8) ON DUPLICATE KEY UPDATE pkey=pkey+10"
if "rewriteBatchedStatements" option active : Query will be rewritten as : - queryParts[0]+parameter[0]+...queryParts[x]+parameter[x] + ... "("+rewriteFirstPart+parameter[0]+...queryParts[x] +parameter[x]-rewriteNotRepeatLastPart+")"+rewriteNotRepeatLastPart for the example "INSERT INTO MultiTestt3_dupp(col1, pkey,col2,col3,col4) VALUES (9, "+parameter0+", 5, "+parameter1+", 8)"+"("+"9, "+ secondParameter0+", 5, "+secondParameter1"+", 8"+")"+" ON DUPLICATE KEY UPDATE pkey=pkey+10"
| Constructor and Description |
|---|
MariaDbClientParameterizeQuery(String query,
boolean noBackslashEscapes,
int rewriteOffset)
Constructor.
|
| Modifier and Type | Method and Description |
|---|---|
void |
clearParameters()
clears the parameters.
|
MariaDbClientParameterizeQuery |
cloneQuery()
Clone query to avoid recreating parts.
|
int |
getParamCount()
get the number of parameters in this query.
|
ParameterHolder[] |
getParameters() |
byte[][] |
getQueryPartsArray() |
int |
getQuerySize()
Return estimated query length.
|
byte[] |
getRewriteFirstPart()
Return first identical length of all queries.
|
void |
setParameter(int position,
ParameterHolder parameter)
Set a parameter to query.
|
String |
toString()
toString implementation.
|
void |
validate()
Validate that all parameters are set.
|
void |
writeFirstRewritePart(OutputStream os)
Write first common part into buffer.
|
void |
writeLastRewritePart(OutputStream os)
Write last common part into buffer.
|
int |
writeLastRewritePartLength()
Will return identical last part length.
|
void |
writeTo(OutputStream os)
Write whole query to buffer.
|
void |
writeToRewritablePart(OutputStream os,
int rewriteOffset)
Write rewritable specific part of the query.
|
int |
writeToRewritablePartLength(int rewriteOffset)
Will return rewrite part length.
|
public MariaDbClientParameterizeQuery(String query, boolean noBackslashEscapes, int rewriteOffset)
query - query stringnoBackslashEscapes - must backSlash be escapedrewriteOffset - first common part indexpublic int getQuerySize()
throws IOException
getQuerySize in interface QueryIOException - if parameter approximated length launched exception (stream reading)public byte[] getRewriteFirstPart()
getRewriteFirstPart in interface ParameterizeQuerypublic MariaDbClientParameterizeQuery cloneQuery()
public void setParameter(int position,
ParameterHolder parameter)
throws SQLException
setParameter in interface ParameterizeQueryposition - the position to set it atparameter - the parameter to setSQLException - if position is incorrectpublic ParameterHolder[] getParameters()
getParameters in interface ParameterizeQuerypublic void clearParameters()
ParameterizeQueryclearParameters in interface ParameterizeQuerypublic void validate()
throws QueryException
validate in interface QueryQueryException - if any parameter is missingpublic void writeTo(OutputStream os) throws IOException
writeTo in interface Queryos - outputStreamIOException - if any error occur during buffer writingpublic void writeFirstRewritePart(OutputStream os) throws IOException
writeFirstRewritePart in interface Queryos - outputStreamIOException - if any error occur during buffer writingpublic void writeLastRewritePart(OutputStream os) throws IOException
writeLastRewritePart in interface Queryos - outputStreamIOException - if any error occur during buffer writingpublic int writeLastRewritePartLength()
writeLastRewritePartLength in interface Querypublic void writeToRewritablePart(OutputStream os, int rewriteOffset) throws IOException
writeToRewritablePart in interface Queryos - outputStreamrewriteOffset - for compatibility (not used)IOException - if any error occur during writing into buffer.public int writeToRewritablePartLength(int rewriteOffset)
throws IOException
writeToRewritablePartLength in interface QueryrewriteOffset - the index position of content change between queries.IOException - if parameter approximate length return exceptionpublic byte[][] getQueryPartsArray()
getQueryPartsArray in interface ParameterizeQuerypublic int getParamCount()
ParameterizeQuerygetParamCount in interface ParameterizeQueryCopyright © 2015. All rights reserved.