Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

org.apache.turbine.util.db.statement
Class BaseSql  view BaseSql download BaseSql.java

java.lang.Object
  extended byorg.apache.turbine.util.db.statement.BaseSql
All Implemented Interfaces:
Sql

public class BaseSql
extends java.lang.Object
implements Sql

This class contains default methods to construct SQL statements using method calls. Subclasses should specialize the methods to the SQL dialect of a specific database.

This class defines methods that construct String fragments of SQL statements. Chaining the methods allows the creation of arbitrarily complex statements.

    getInsert       --> insert into left (item1,...,itemN)
    getValues       --> values (item1,...,itemN)
    getUpdate       --> update left item1,...,itemN
    getSet          --> set left=right
    getDelete       --> delete from left
    getSelect       --> select item1,...,itemN
    getSelectDistinct --> select distinct item1,...,itemN
    getFrom         --> from item1,item2,...,itemN
    getWhere        --> where tree
    getEquals       --> (left = right)
    getNotEqual     --> (left != right)
    getGreaterThan  --> (left > right)
    getGreaterEqual --> (left >= right)
    getLessThan     --> (left < right)
    getLessEqual    --> (left <= right)
    getNull         --> (item is null)
    getNotNull      --> (item is not null)
    getIn           --> (left in right)
    getNotIn        --> (left not in right)
    getAnd          --> (left and right)
    getOr           --> (left or right)
    getNot          --> (not item)
    getAscending    --> item ASC
    getDescending   --> item DESC
    getOrderBy      --> order by item1...,itemN
    getGroupBy      --> group by item1...,itemN
    getHaving       --> having tree
    getCount        --> count(item)
    getMin          --> min(item)
    getMax          --> max(item)
    getAvg          --> avg(item)
    getSum          --> sum(item)
    getUpper        --> upper(item)
 

Stored procedures can also be implemented. Extend this class in your own custom database adaptor. Add methods to construct SQL fragments for your stored procedures. The implementations for functions (such as getCount(), getSum()...) would be useful models to follow for your stored procedures.

Version:
$Id: BaseSql.java,v 1.1.6.2 2004/05/20 04:34:17 seade Exp $

Field Summary
static java.lang.String AND
           
static java.lang.String ASC
           
static java.lang.String AVG
           
static java.lang.String CLOSE_PAREN
           
static java.lang.String COMMA
           
static java.lang.String COUNT
           
static java.lang.String DELETE
           
static java.lang.String DESC
           
static java.lang.String EMPTY
           
static java.lang.String EQUALS
           
static java.lang.String FROM
           
static java.lang.String GREATER_EQUAL
           
static java.lang.String GREATER_THAN
           
static java.lang.String GROUP_BY
           
static java.lang.String HAVING
           
static java.lang.String IN
           
static java.lang.String INSERT
           
static java.lang.String IS_NOT_NULL
           
static java.lang.String IS_NULL
           
static java.lang.String LESS_EQUAL
           
static java.lang.String LESS_THAN
           
static java.lang.String LIKE
           
static java.lang.String MAX
           
static java.lang.String MIN
           
static java.lang.String NOT
           
static java.lang.String NOT_EQUALS
           
static java.lang.String NOT_IN
           
static java.lang.String OPEN_PAREN
           
static java.lang.String OR
           
static java.lang.String ORDER_BY
           
static java.lang.String SELECT
           
static java.lang.String SELECT_DISTINCT
           
static java.lang.String SET
           
private static char SINGLE_QUOTE
           
static java.lang.String SPACE
           
static java.lang.String SUM
           
static java.lang.String UPDATE
           
static java.lang.String UPPER
           
static java.lang.String VALUES
           
static java.lang.String WHERE
           
 
Constructor Summary
BaseSql()
           
 
Method Summary
 java.lang.String getAnd(java.lang.String left, java.lang.String right)
          Constructs a logical comparison using the and operator.
 java.lang.String getAscending(java.lang.String left)
          Constructs an ascending fragment.
 java.lang.String getAvg(java.lang.String middle)
          Constructs a avg function.
 java.lang.String getCount(java.lang.String middle)
          Constructs a count function.
 java.lang.String getDelete(java.lang.String left)
          Constructs a delete fragment.
 java.lang.String getDescending(java.lang.String left)
          Constructs a descending fragment.
 java.lang.String getEquals(java.lang.String left, java.lang.String right)
          Constructs a logical comparison using the equals operator.
 java.lang.String getFrom(java.util.List list)
          Constructs a from fragment.
 java.lang.String getFrom(java.lang.String tableName)
          Constructs a from fragment.
 java.lang.String getGreaterEqual(java.lang.String left, java.lang.String right)
          Constructs a logical comparison using the greater than or equal to operator.
 java.lang.String getGreaterThan(java.lang.String left, java.lang.String right)
          Constructs a logical comparison using the greater than operator.
 java.lang.String getGroupBy(java.util.List list)
          Constructs a group by fragment.
 java.lang.String getHaving(java.lang.String middle)
          Constructs a having fragment.
 java.lang.String getIn(java.lang.String left, java.util.List list)
          Constructs an in fragment.
 java.lang.String getInsert(java.lang.String left, java.util.List list)
          Constructs an insert fragment.
 java.lang.String getIsNotNull(java.lang.String left)
          Constructs an is not null fragment.
 java.lang.String getIsNull(java.lang.String left)
          Constructs an is null fragment.
 java.lang.String getLessEqual(java.lang.String left, java.lang.String right)
          Constructs a logical comparison using the less than or equal to operator.
 java.lang.String getLessThan(java.lang.String left, java.lang.String right)
          Constructs a logical comparison using the less than operator.
 java.lang.String getLike(java.lang.String left, java.lang.String right)
          Constructs a logical comparison using the like operator.
 java.lang.String getMax(java.lang.String middle)
          Constructs a max function.
 java.lang.String getMin(java.lang.String middle)
          Constructs a min function.
 java.lang.String getNot(java.lang.String right)
          Constructs a logical comparison using the not operator.
 java.lang.String getNotEquals(java.lang.String left, java.lang.String right)
          Constructs a logical comparison using the not equals operator.
 java.lang.String getNotIn(java.lang.String left, java.util.List list)
          Constructs an not in fragment.
 java.lang.String getOr(java.lang.String left, java.lang.String right)
          Constructs a logical comparison using the or operator.
 java.lang.String getOrderBy(java.util.List list)
          Constructs an order by fragment.
 java.lang.String getOrderBy(java.lang.String fieldName)
          Constructs an order by fragment.
 java.lang.String getSafeEquals(java.lang.String left, java.lang.String right)
          If right is not null, constructs an equals comparison othwerise, construts a isNull comparison
 java.lang.String getSafeNotEquals(java.lang.String left, java.lang.String right)
          If right is not null, constructs a not equals comparison othwerise, construts a isNotNull comparison
 java.lang.String getSelect(java.util.List list)
          Constructs a select fragment.
 java.lang.String getSelectDistinct(java.util.List list)
          Constructs a select distinct fragment.
 java.lang.String getSet(java.util.List list)
          Constructs a set statement.
 java.lang.String getSet(java.lang.String left, java.lang.String right)
          Constructs a set statement.
 java.lang.String getSum(java.lang.String middle)
          Constructs a sum function.
 java.lang.String getUpdate(java.lang.String item, java.util.List list)
          Constructs an update fragment.
 java.lang.String getUpper(java.lang.String middle)
          Constructs an upper function.
 java.lang.String getValues(java.util.List list)
          Constructs a values fragment.
 java.lang.String getWhere(java.lang.String middle)
          Constructs a where fragment.
protected  java.lang.String leftMiddleRight(java.lang.StringBuffer sb, java.lang.String left, java.lang.String middle, java.lang.String right)
           
protected  java.lang.String leftMiddleRight(java.lang.String left, java.lang.String middle, java.lang.String right)
          The workhorse used by several other methods to construct a String of the form [left][middle][right].
protected  void leftRightListConnector(java.lang.StringBuffer sb, java.lang.String left, java.lang.String right, java.util.List list, java.lang.String connector)
           
protected  java.lang.String leftRightListConnector(java.lang.String left, java.lang.String right, java.util.List list, java.lang.String connector)
          The workhorse used by several other methods to construct a String of the form [left][item1][connector][item2][connector]...[itemN][right].
 java.lang.String quoteAndEscapeText(java.lang.String rawText)
          Quotes and escapes raw text for placement in a SQL expression.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

EMPTY

public static java.lang.String EMPTY

SPACE

public static java.lang.String SPACE

INSERT

public static java.lang.String INSERT

VALUES

public static java.lang.String VALUES

UPDATE

public static java.lang.String UPDATE

DELETE

public static java.lang.String DELETE

SELECT

public static java.lang.String SELECT

SELECT_DISTINCT

public static java.lang.String SELECT_DISTINCT

SET

public static java.lang.String SET

FROM

public static java.lang.String FROM

WHERE

public static java.lang.String WHERE

ORDER_BY

public static java.lang.String ORDER_BY

GROUP_BY

public static java.lang.String GROUP_BY

HAVING

public static java.lang.String HAVING

ASC

public static java.lang.String ASC

DESC

public static java.lang.String DESC

OPEN_PAREN

public static java.lang.String OPEN_PAREN

CLOSE_PAREN

public static java.lang.String CLOSE_PAREN

EQUALS

public static java.lang.String EQUALS

NOT_EQUALS

public static java.lang.String NOT_EQUALS

GREATER_THAN

public static java.lang.String GREATER_THAN

LESS_THAN

public static java.lang.String LESS_THAN

GREATER_EQUAL

public static java.lang.String GREATER_EQUAL

LESS_EQUAL

public static java.lang.String LESS_EQUAL

IS_NULL

public static java.lang.String IS_NULL

IS_NOT_NULL

public static java.lang.String IS_NOT_NULL

IN

public static java.lang.String IN

NOT_IN

public static java.lang.String NOT_IN

LIKE

public static java.lang.String LIKE

AND

public static java.lang.String AND

OR

public static java.lang.String OR

NOT

public static java.lang.String NOT

COUNT

public static java.lang.String COUNT

MIN

public static java.lang.String MIN

MAX

public static java.lang.String MAX

AVG

public static java.lang.String AVG

SUM

public static java.lang.String SUM

UPPER

public static java.lang.String UPPER

COMMA

public static java.lang.String COMMA

SINGLE_QUOTE

private static final char SINGLE_QUOTE
See Also:
Constant Field Values
Constructor Detail

BaseSql

public BaseSql()
Method Detail

leftMiddleRight

protected java.lang.String leftMiddleRight(java.lang.String left,
                                           java.lang.String middle,
                                           java.lang.String right)
The workhorse used by several other methods to construct a String of the form [left][middle][right]. this is useful for at least the following SQL fragments:
where (foo_id=25) middle: foo_id=25
set (foo_id=25) middle: foo_id=25
table.column asc left is EMPTY, middle: "table.column"
upper (table.column) middle: table.column
count(*) middle: *
(table.column=15) middle:table.column=15
table.column=15 middle: =
uppercase(table.column) like 'FOO%' middle: like
(table.column>10) AND (table.column<=20) middle: AND
set table.column=25 middle: table.column=25, right is EMPTY


leftMiddleRight

protected java.lang.String leftMiddleRight(java.lang.StringBuffer sb,
                                           java.lang.String left,
                                           java.lang.String middle,
                                           java.lang.String right)

leftRightListConnector

protected java.lang.String leftRightListConnector(java.lang.String left,
                                                  java.lang.String right,
                                                  java.util.List list,
                                                  java.lang.String connector)
The workhorse used by several other methods to construct a String of the form [left][item1][connector][item2][connector]...[itemN][right]. this is useful for at least the following SQL fragments: insert (columnA, columnB, columnC) values ('one', 'two', 'three') (the following examples use an EMPTY right argument) select columnA, sum(columnB), avg(columnB) from table1 t1, table2 t2 order by columnC desc, columnA asc group by columnA


leftRightListConnector

protected void leftRightListConnector(java.lang.StringBuffer sb,
                                      java.lang.String left,
                                      java.lang.String right,
                                      java.util.List list,
                                      java.lang.String connector)

getEquals

public java.lang.String getEquals(java.lang.String left,
                                  java.lang.String right)
Constructs a logical comparison using the equals operator.

Specified by:
getEquals in interface Sql

getSafeEquals

public java.lang.String getSafeEquals(java.lang.String left,
                                      java.lang.String right)
If right is not null, constructs an equals comparison othwerise, construts a isNull comparison


getNotEquals

public java.lang.String getNotEquals(java.lang.String left,
                                     java.lang.String right)
Constructs a logical comparison using the not equals operator.

Specified by:
getNotEquals in interface Sql

getSafeNotEquals

public java.lang.String getSafeNotEquals(java.lang.String left,
                                         java.lang.String right)
If right is not null, constructs a not equals comparison othwerise, construts a isNotNull comparison


getLessThan

public java.lang.String getLessThan(java.lang.String left,
                                    java.lang.String right)
Constructs a logical comparison using the less than operator.

Specified by:
getLessThan in interface Sql

getGreaterThan

public java.lang.String getGreaterThan(java.lang.String left,
                                       java.lang.String right)
Constructs a logical comparison using the greater than operator.

Specified by:
getGreaterThan in interface Sql

getLessEqual

public java.lang.String getLessEqual(java.lang.String left,
                                     java.lang.String right)
Constructs a logical comparison using the less than or equal to operator.

Specified by:
getLessEqual in interface Sql

getGreaterEqual

public java.lang.String getGreaterEqual(java.lang.String left,
                                        java.lang.String right)
Constructs a logical comparison using the greater than or equal to operator.

Specified by:
getGreaterEqual in interface Sql

getIsNull

public java.lang.String getIsNull(java.lang.String left)
Constructs an is null fragment.

Specified by:
getIsNull in interface Sql

getIsNotNull

public java.lang.String getIsNotNull(java.lang.String left)
Constructs an is not null fragment.

Specified by:
getIsNotNull in interface Sql

getIn

public java.lang.String getIn(java.lang.String left,
                              java.util.List list)
Constructs an in fragment.

Specified by:
getIn in interface Sql

getNotIn

public java.lang.String getNotIn(java.lang.String left,
                                 java.util.List list)
Constructs an not in fragment.

Specified by:
getNotIn in interface Sql

getLike

public java.lang.String getLike(java.lang.String left,
                                java.lang.String right)
Constructs a logical comparison using the like operator.

Specified by:
getLike in interface Sql

getAnd

public java.lang.String getAnd(java.lang.String left,
                               java.lang.String right)
Constructs a logical comparison using the and operator.

Specified by:
getAnd in interface Sql

getOr

public java.lang.String getOr(java.lang.String left,
                              java.lang.String right)
Constructs a logical comparison using the or operator.

Specified by:
getOr in interface Sql

getNot

public java.lang.String getNot(java.lang.String right)
Constructs a logical comparison using the not operator.

Specified by:
getNot in interface Sql

getAscending

public java.lang.String getAscending(java.lang.String left)
Constructs an ascending fragment.

Specified by:
getAscending in interface Sql

getDescending

public java.lang.String getDescending(java.lang.String left)
Constructs a descending fragment.

Specified by:
getDescending in interface Sql

getInsert

public java.lang.String getInsert(java.lang.String left,
                                  java.util.List list)
Constructs an insert fragment.

Specified by:
getInsert in interface Sql

getValues

public java.lang.String getValues(java.util.List list)
Constructs a values fragment.

Specified by:
getValues in interface Sql

getUpdate

public java.lang.String getUpdate(java.lang.String item,
                                  java.util.List list)
Constructs an update fragment.

Specified by:
getUpdate in interface Sql

getSet

public java.lang.String getSet(java.lang.String left,
                               java.lang.String right)
Constructs a set statement.

Specified by:
getSet in interface Sql

getSet

public java.lang.String getSet(java.util.List list)
Constructs a set statement.


getDelete

public java.lang.String getDelete(java.lang.String left)
Constructs a delete fragment.

Specified by:
getDelete in interface Sql

getSelect

public java.lang.String getSelect(java.util.List list)
Constructs a select fragment.

Specified by:
getSelect in interface Sql

getSelectDistinct

public java.lang.String getSelectDistinct(java.util.List list)
Constructs a select distinct fragment.


getFrom

public java.lang.String getFrom(java.util.List list)
Constructs a from fragment.

Specified by:
getFrom in interface Sql

getFrom

public java.lang.String getFrom(java.lang.String tableName)
Constructs a from fragment.


getWhere

public java.lang.String getWhere(java.lang.String middle)
Constructs a where fragment.

Specified by:
getWhere in interface Sql

getHaving

public java.lang.String getHaving(java.lang.String middle)
Constructs a having fragment.

Specified by:
getHaving in interface Sql

getOrderBy

public java.lang.String getOrderBy(java.util.List list)
Constructs an order by fragment.

Specified by:
getOrderBy in interface Sql

getOrderBy

public java.lang.String getOrderBy(java.lang.String fieldName)
Constructs an order by fragment.


getGroupBy

public java.lang.String getGroupBy(java.util.List list)
Constructs a group by fragment.

Specified by:
getGroupBy in interface Sql

getCount

public java.lang.String getCount(java.lang.String middle)
Constructs a count function.

Specified by:
getCount in interface Sql

getMin

public java.lang.String getMin(java.lang.String middle)
Constructs a min function.

Specified by:
getMin in interface Sql

getMax

public java.lang.String getMax(java.lang.String middle)
Constructs a max function.

Specified by:
getMax in interface Sql

getAvg

public java.lang.String getAvg(java.lang.String middle)
Constructs a avg function.

Specified by:
getAvg in interface Sql

getSum

public java.lang.String getSum(java.lang.String middle)
Constructs a sum function.

Specified by:
getSum in interface Sql

getUpper

public java.lang.String getUpper(java.lang.String middle)
Constructs an upper function.

Specified by:
getUpper in interface Sql

quoteAndEscapeText

public java.lang.String quoteAndEscapeText(java.lang.String rawText)
Quotes and escapes raw text for placement in a SQL expression. For simplicity, the text is assumed to be neither quoted nor escaped.

raw string: O'Malley's Can't be beat!
qutoed and escaped: 'O''Malley''s Can''t be beat!'

Specified by:
quoteAndEscapeText in interface Sql