org.apache.openjpa.jdbc.sql
Class SQLBuffer

java.lang.Object
  extended by org.apache.openjpa.jdbc.sql.SQLBuffer
All Implemented Interfaces:
Serializable, Cloneable

public final class SQLBuffer
extends Object
implements Serializable, Cloneable

Buffer for SQL statements that can be used to create java.sql.PreparedStatements.

Since:
0.2.4
Author:
Marc Prud'hommeaux, Abe White
See Also:
Serialized Form

Constructor Summary
SQLBuffer(DBDictionary dict)
          Default constructor.
SQLBuffer(SQLBuffer buf)
          Copy constructor.
 
Method Summary
 void addCastForParam(String oper, Val val)
          Replace SQL '?' with CAST string if required by DB platform
 SQLBuffer append(Column col)
           
 SQLBuffer append(Select sel, JDBCFetchConfiguration fetch)
          Append a subselect.
 SQLBuffer append(Sequence seq)
           
 SQLBuffer append(SQLBuffer buf)
          Append all SQL and parameters of the given buffer.
 SQLBuffer append(String s)
           
 SQLBuffer append(Table table)
           
 SQLBuffer appendCount(Select sel, JDBCFetchConfiguration fetch)
          Append a subselect count.
 SQLBuffer appendValue(boolean b)
          Append a parameter value.
 SQLBuffer appendValue(boolean b, Column col)
          Append a parameter value.
 SQLBuffer appendValue(byte b)
          Append a parameter value.
 SQLBuffer appendValue(byte b, Column col)
          Append a parameter value.
 SQLBuffer appendValue(char c)
          Append a parameter value.
 SQLBuffer appendValue(char c, Column col)
          Append a parameter value.
 SQLBuffer appendValue(double d)
          Append a parameter value.
 SQLBuffer appendValue(double d, Column col)
          Append a parameter value.
 SQLBuffer appendValue(float f)
          Append a parameter value.
 SQLBuffer appendValue(float f, Column col)
          Append a parameter value.
 SQLBuffer appendValue(int i)
          Append a parameter value.
 SQLBuffer appendValue(int i, Column col)
          Append a parameter value.
 SQLBuffer appendValue(long l)
          Append a parameter value.
 SQLBuffer appendValue(long l, Column col)
          Append a parameter value.
 SQLBuffer appendValue(Object o)
          Append a parameter value.
 SQLBuffer appendValue(Object o, Column col)
          Append a parameter value for a specific column.
 SQLBuffer appendValue(short s)
          Append a parameter value.
 SQLBuffer appendValue(short s, Column col)
          Append a parameter value.
 Object clone()
          Perform a shallow clone of this SQL Buffer.
 boolean equals(Object other)
           
 List getColumns()
           
 List getParameters()
          Return the list of parameter values.
 String getSQL()
          Return the SQL for this buffer.
 String getSQL(boolean replaceParams)
          Returns the SQL for this buffer.
 int hashCode()
           
 boolean isEmpty()
          Return true if the buffer is emtpy.
 CallableStatement prepareCall(Connection conn)
          Create and populate the parameters of a prepared statement using the SQL in this buffer.
 CallableStatement prepareCall(Connection conn, int rsType, int rsConcur)
          Create and populate the parameters of a prepared statement using the SQL in this buffer.
 CallableStatement prepareCall(Connection conn, JDBCFetchConfiguration fetch, int rsType, int rsConcur)
          Create and populate the parameters of a prepred statement using the SQL in this buffer and the given fetch configuration.
 PreparedStatement prepareStatement(Connection conn)
          Create and populate the parameters of a prepared statement using the SQL in this buffer.
 PreparedStatement prepareStatement(Connection conn, int rsType, int rsConcur)
          Create and populate the parameters of a prepared statement using the SQL in this buffer.
 PreparedStatement prepareStatement(Connection conn, JDBCFetchConfiguration fetch, int rsType, int rsConcur)
          Create and populate the parameters of a prepred statement using the SQL in this buffer and the given fetch configuration.
 boolean replace(Select old, Select sel)
          Replace a subselect.
 void replaceSqlString(int start, int end, String newString)
          Replace current buffer string with the new string
 void setParameters(List params)
           
 void setParameters(PreparedStatement ps)
          Populate the parameters of an existing PreparedStatement with values from this buffer.
 boolean sqlEquals(String sql)
          Compare internal SQL without resolving subselects or stringifying parameters.
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SQLBuffer

public SQLBuffer(DBDictionary dict)
Default constructor.


SQLBuffer

public SQLBuffer(SQLBuffer buf)
Copy constructor.

Method Detail

clone

public Object clone()
Perform a shallow clone of this SQL Buffer.

Overrides:
clone in class Object

isEmpty

public boolean isEmpty()
Return true if the buffer is emtpy.


append

public SQLBuffer append(SQLBuffer buf)
Append all SQL and parameters of the given buffer.


append

public SQLBuffer append(Table table)

append

public SQLBuffer append(Sequence seq)

append

public SQLBuffer append(Column col)

append

public SQLBuffer append(String s)

append

public SQLBuffer append(Select sel,
                        JDBCFetchConfiguration fetch)
Append a subselect. This delays resolution of the select SQL.


appendCount

public SQLBuffer appendCount(Select sel,
                             JDBCFetchConfiguration fetch)
Append a subselect count. This delays resolution of the select SQL.


replace

public boolean replace(Select old,
                       Select sel)
Replace a subselect.


appendValue

public SQLBuffer appendValue(Object o)
Append a parameter value.


appendValue

public SQLBuffer appendValue(Object o,
                             Column col)
Append a parameter value for a specific column.


appendValue

public SQLBuffer appendValue(boolean b)
Append a parameter value.


appendValue

public SQLBuffer appendValue(boolean b,
                             Column col)
Append a parameter value.


appendValue

public SQLBuffer appendValue(byte b)
Append a parameter value.


appendValue

public SQLBuffer appendValue(byte b,
                             Column col)
Append a parameter value.


appendValue

public SQLBuffer appendValue(char c)
Append a parameter value.


appendValue

public SQLBuffer appendValue(char c,
                             Column col)
Append a parameter value.


appendValue

public SQLBuffer appendValue(double d)
Append a parameter value.


appendValue

public SQLBuffer appendValue(double d,
                             Column col)
Append a parameter value.


appendValue

public SQLBuffer appendValue(float f)
Append a parameter value.


appendValue

public SQLBuffer appendValue(float f,
                             Column col)
Append a parameter value.


appendValue

public SQLBuffer appendValue(int i)
Append a parameter value.


appendValue

public SQLBuffer appendValue(int i,
                             Column col)
Append a parameter value.


appendValue

public SQLBuffer appendValue(long l)
Append a parameter value.


appendValue

public SQLBuffer appendValue(long l,
                             Column col)
Append a parameter value.


appendValue

public SQLBuffer appendValue(short s)
Append a parameter value.


appendValue

public SQLBuffer appendValue(short s,
                             Column col)
Append a parameter value.


getParameters

public List getParameters()
Return the list of parameter values.


getSQL

public String getSQL()
Return the SQL for this buffer.


getSQL

public String getSQL(boolean replaceParams)
Returns the SQL for this buffer.

Parameters:
replaceParams - if true, then replace parameters with the actual parameter values

prepareStatement

public PreparedStatement prepareStatement(Connection conn)
                                   throws SQLException
Create and populate the parameters of a prepared statement using the SQL in this buffer.

Throws:
SQLException

prepareStatement

public PreparedStatement prepareStatement(Connection conn,
                                          int rsType,
                                          int rsConcur)
                                   throws SQLException
Create and populate the parameters of a prepared statement using the SQL in this buffer.

Throws:
SQLException

prepareStatement

public PreparedStatement prepareStatement(Connection conn,
                                          JDBCFetchConfiguration fetch,
                                          int rsType,
                                          int rsConcur)
                                   throws SQLException
Create and populate the parameters of a prepred statement using the SQL in this buffer and the given fetch configuration.

Throws:
SQLException

prepareCall

public CallableStatement prepareCall(Connection conn)
                              throws SQLException
Create and populate the parameters of a prepared statement using the SQL in this buffer.

Throws:
SQLException

prepareCall

public CallableStatement prepareCall(Connection conn,
                                     int rsType,
                                     int rsConcur)
                              throws SQLException
Create and populate the parameters of a prepared statement using the SQL in this buffer.

Throws:
SQLException

prepareCall

public CallableStatement prepareCall(Connection conn,
                                     JDBCFetchConfiguration fetch,
                                     int rsType,
                                     int rsConcur)
                              throws SQLException
Create and populate the parameters of a prepred statement using the SQL in this buffer and the given fetch configuration.

Throws:
SQLException

setParameters

public void setParameters(PreparedStatement ps)
                   throws SQLException
Populate the parameters of an existing PreparedStatement with values from this buffer.

Throws:
SQLException

hashCode

public int hashCode()
Overrides:
hashCode in class Object

sqlEquals

public boolean sqlEquals(String sql)
Compare internal SQL without resolving subselects or stringifying parameters.


equals

public boolean equals(Object other)
Overrides:
equals in class Object

addCastForParam

public void addCastForParam(String oper,
                            Val val)
Replace SQL '?' with CAST string if required by DB platform

Parameters:
oper -
val -

replaceSqlString

public void replaceSqlString(int start,
                             int end,
                             String newString)
Replace current buffer string with the new string

Parameters:
start - replace start position
end - replace end position
newString -

setParameters

public void setParameters(List params)

getColumns

public List getColumns()


Copyright © 2006-2008 Apache Software Foundation. All Rights Reserved.