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 Query
IOException
- if parameter approximated length launched exception (stream reading)public byte[] getRewriteFirstPart()
getRewriteFirstPart
in interface ParameterizeQuery
public MariaDbClientParameterizeQuery cloneQuery()
public void setParameter(int position, ParameterHolder parameter) throws SQLException
setParameter
in interface ParameterizeQuery
position
- the position to set it atparameter
- the parameter to setSQLException
- if position is incorrectpublic ParameterHolder[] getParameters()
getParameters
in interface ParameterizeQuery
public void clearParameters()
ParameterizeQuery
clearParameters
in interface ParameterizeQuery
public void validate() throws QueryException
validate
in interface Query
QueryException
- if any parameter is missingpublic void writeTo(OutputStream os) throws IOException
writeTo
in interface Query
os
- outputStreamIOException
- if any error occur during buffer writingpublic void writeFirstRewritePart(OutputStream os) throws IOException
writeFirstRewritePart
in interface Query
os
- outputStreamIOException
- if any error occur during buffer writingpublic void writeLastRewritePart(OutputStream os) throws IOException
writeLastRewritePart
in interface Query
os
- outputStreamIOException
- if any error occur during buffer writingpublic int writeLastRewritePartLength()
writeLastRewritePartLength
in interface Query
public void writeToRewritablePart(OutputStream os, int rewriteOffset) throws IOException
writeToRewritablePart
in interface Query
os
- outputStreamrewriteOffset
- for compatibility (not used)IOException
- if any error occur during writing into buffer.public int writeToRewritablePartLength(int rewriteOffset) throws IOException
writeToRewritablePartLength
in interface Query
rewriteOffset
- the index position of content change between queries.IOException
- if parameter approximate length return exceptionpublic byte[][] getQueryPartsArray()
getQueryPartsArray
in interface ParameterizeQuery
public int getParamCount()
ParameterizeQuery
getParamCount
in interface ParameterizeQuery
Copyright © 2016. All rights reserved.