You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-dev@db.apache.org by br...@apache.org on 2005/10/10 20:21:14 UTC

cvs commit: db-ojb/src/java/org/apache/ojb/broker/accesslayer/sql SqlGenericUpdateStatement.java SqlGenericSelectStatement.java SqlGenericDeleteStatement.java AbstractSqlStatement.java SqlInsertStatement.java SqlDeleteByPkStatement.java SqlUpdateStatement.java SqlSelectStatement.java SqlDeleteByQuery.java SqlSelectByPkStatement.java SqlGenericInsertStatement.java SqlExistStatement.java

brj         2005/10/10 11:21:14

  Modified:    src/java/org/apache/ojb/broker/accesslayer/sql
                        SqlGenericUpdateStatement.java
                        SqlGenericSelectStatement.java
                        SqlGenericDeleteStatement.java
                        AbstractSqlStatement.java SqlInsertStatement.java
                        SqlDeleteByPkStatement.java SqlUpdateStatement.java
                        SqlSelectStatement.java SqlDeleteByQuery.java
                        SqlSelectByPkStatement.java
                        SqlGenericInsertStatement.java
                        SqlExistStatement.java
  Log:
  store generated sql-string in instvar
  
  Revision  Changes    Path
  1.3       +3 -4      db-ojb/src/java/org/apache/ojb/broker/accesslayer/sql/SqlGenericUpdateStatement.java
  
  Index: SqlGenericUpdateStatement.java
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/accesslayer/sql/SqlGenericUpdateStatement.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- SqlGenericUpdateStatement.java	22 Nov 2004 20:55:23 -0000	1.2
  +++ SqlGenericUpdateStatement.java	10 Oct 2005 18:21:14 -0000	1.3
  @@ -68,9 +68,9 @@
       }
   
       /**
  -     * @see SqlStatement#getStatement()
  +     * @see org.apache.ojb.broker.accesslayer.sql.AbstractSqlStatement#buildSqlString()
        */
  -    public String getStatement()
  +    protected String buildSqlString()
       {
           StringBuffer stmt = new StringBuffer(1024);
   
  @@ -84,5 +84,4 @@
   
           return stmt.toString();
       }
  -
   }
  
  
  
  1.3       +8 -5      db-ojb/src/java/org/apache/ojb/broker/accesslayer/sql/SqlGenericSelectStatement.java
  
  Index: SqlGenericSelectStatement.java
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/accesslayer/sql/SqlGenericSelectStatement.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- SqlGenericSelectStatement.java	22 Nov 2004 20:55:23 -0000	1.2
  +++ SqlGenericSelectStatement.java	10 Oct 2005 18:21:14 -0000	1.3
  @@ -29,7 +29,7 @@
       private String[] m_selectColumns;
   
       /**
  -     *
  +     * Constructor.
        * @param aPlatform TODO
        * @param aLogger
        * @param aTable
  @@ -43,9 +43,9 @@
       }
   
       /**
  -     * @see SqlStatement#getStatement()
  +     * @see org.apache.ojb.broker.accesslayer.sql.AbstractSqlStatement#buildSqlString()
        */
  -    public String getStatement()
  +    protected String buildSqlString()
       {
           StringBuffer stmt = new StringBuffer(1024);
   
  @@ -53,7 +53,10 @@
           appendListOfColumns(m_selectColumns,stmt);
           stmt.append(FROM);
           appendTable(getTable(), stmt);
  -        if(getColumns() != null && getColumns().length > 0) appendWhereClause(stmt, getColumns());
  +        if(getColumns() != null && getColumns().length > 0)
  +        {
  +            appendWhereClause(stmt, getColumns());
  +        }    
   
           return stmt.toString();
       }
  
  
  
  1.3       +8 -5      db-ojb/src/java/org/apache/ojb/broker/accesslayer/sql/SqlGenericDeleteStatement.java
  
  Index: SqlGenericDeleteStatement.java
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/accesslayer/sql/SqlGenericDeleteStatement.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- SqlGenericDeleteStatement.java	22 Nov 2004 20:55:23 -0000	1.2
  +++ SqlGenericDeleteStatement.java	10 Oct 2005 18:21:14 -0000	1.3
  @@ -38,15 +38,18 @@
       }
   
       /**
  -     * @see SqlStatement#getStatement()
  +     * @see org.apache.ojb.broker.accesslayer.sql.AbstractSqlStatement#buildSqlString()
        */
  -    public String getStatement()
  +    protected String buildSqlString()
       {
           StringBuffer stmt = new StringBuffer(1024);
   
           stmt.append(DELETE_FROM);
           appendTable(getTable(), stmt);
  -        if(getColumns() != null && getColumns().length > 0) appendWhereClause(stmt, getColumns());
  +        if(getColumns() != null && getColumns().length > 0)
  +        {
  +            appendWhereClause(stmt, getColumns());
  +        }    
           return stmt.toString();
  -    }
  +    }    
   }
  
  
  
  1.3       +19 -1     db-ojb/src/java/org/apache/ojb/broker/accesslayer/sql/AbstractSqlStatement.java
  
  Index: AbstractSqlStatement.java
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/accesslayer/sql/AbstractSqlStatement.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- AbstractSqlStatement.java	27 Aug 2005 12:05:04 -0000	1.2
  +++ AbstractSqlStatement.java	10 Oct 2005 18:21:14 -0000	1.3
  @@ -31,6 +31,7 @@
   {
       private Logger m_logger;
       private Platform m_platform;
  +    private String m_sqlString;
   
       /**
        * @param logger
  @@ -102,5 +103,22 @@
           buf.append(m_platform.quoteName(aColumn));
       }
   
  +    /**
  +     * Build the SQL-String.
  +     * @return the SQL-String
  +     */
  +    protected abstract String buildSqlString();
  +    
  +    /**
  +     * @see SqlStatement#getStatement()
  +     */
  +    public String getStatement()
  +    {
  +        if (m_sqlString == null)
  +        {
  +            m_sqlString = buildSqlString();
  +        }
   
  +        return m_sqlString;
  +    }
   }
  
  
  
  1.11      +14 -21    db-ojb/src/java/org/apache/ojb/broker/accesslayer/sql/SqlInsertStatement.java
  
  Index: SqlInsertStatement.java
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/accesslayer/sql/SqlInsertStatement.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- SqlInsertStatement.java	7 Oct 2005 14:34:11 -0000	1.10
  +++ SqlInsertStatement.java	10 Oct 2005 18:21:14 -0000	1.11
  @@ -31,8 +31,6 @@
    */
   public class SqlInsertStatement extends SqlPkStatement
   {
  -    private String sql;
  -
       /**
   	 * Constructor for SqlInsertStatement.
   	 * @param aPlatform 
  @@ -44,26 +42,22 @@
   		super(aPlatform, aLogger, aCld);
   	}
   
  -	/**
  -	 * @see org.apache.ojb.broker.accesslayer.sql.SqlStatement#getStatement()
  -	 */
  -	public String getStatement()
  +    /**
  +     * @see org.apache.ojb.broker.accesslayer.sql.AbstractSqlStatement#buildSqlString()
  +     */
  +    protected String buildSqlString()
   	{
  -        if(sql == null)
  -        {
  -            StringBuffer stmt = new StringBuffer(1024);
  -            ClassDescriptor cld = getClassDescriptor();
  +        StringBuffer stmt = new StringBuffer(1024);
  +        ClassDescriptor cld = getClassDescriptor();
   
  -            stmt.append("INSERT INTO ");
  -            appendTable(cld, stmt);
  -            stmt.append(" (");
  -            appendListOfColumns(cld, stmt);
  -            stmt.append(")");
  -            appendListOfValues(cld, stmt);
  +        stmt.append("INSERT INTO ");
  +        appendTable(cld, stmt);
  +        stmt.append(" (");
  +        appendListOfColumns(cld, stmt);
  +        stmt.append(")");
  +        appendListOfValues(cld, stmt);
   
  -            sql = stmt.toString();
  -        }
  -        return sql;
  +        return stmt.toString();
       }
   
       private List appendListOfColumns(ClassDescriptor cld, StringBuffer buf)
  @@ -109,6 +103,5 @@
           }
           stmt.append(") ");
       }
  -
   }
   
  
  
  
  1.10      +13 -20    db-ojb/src/java/org/apache/ojb/broker/accesslayer/sql/SqlDeleteByPkStatement.java
  
  Index: SqlDeleteByPkStatement.java
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/accesslayer/sql/SqlDeleteByPkStatement.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- SqlDeleteByPkStatement.java	7 Oct 2005 14:34:11 -0000	1.9
  +++ SqlDeleteByPkStatement.java	10 Oct 2005 18:21:14 -0000	1.10
  @@ -32,8 +32,6 @@
    */
   public class SqlDeleteByPkStatement extends SqlPkStatement
   {
  -    private String sql;
  -
       /**
   	 * Constructor for SqlDeleteByPkStatement.
   	 * @param aPlatform 
  @@ -45,23 +43,19 @@
           super(aPlatform, aLogger, aCld);
   	}
   
  -	/**
  -	 * @see org.apache.ojb.broker.accesslayer.sql.SqlStatement#getStatement()
  -	 */
  -	public String getStatement()
  +    /**
  +     * @see org.apache.ojb.broker.accesslayer.sql.AbstractSqlStatement#buildSqlString()
  +     */
  +    protected String buildSqlString()
   	{
  -        if(sql == null)
  -        {
  -            StringBuffer stmt = new StringBuffer(1024);
  -            ClassDescriptor cld = getClassDescriptor();
  -
  -            stmt.append("DELETE FROM ");
  -            appendTable(cld,stmt);
  -            appendWhereClause(cld, true, stmt); //use Locking
  -
  -            sql = stmt.toString();
  -        }
  -        return sql;
  +        StringBuffer stmt = new StringBuffer(1024);
  +        ClassDescriptor cld = getClassDescriptor();
  +
  +        stmt.append("DELETE FROM ");
  +        appendTable(cld, stmt);
  +        appendWhereClause(cld, true, stmt); //use Locking
  +
  +        return stmt.toString();
       }
   
   	/**
  @@ -98,6 +92,5 @@
   		fldColl.toArray(fields);
   		appendWhereClause(fields, stmt);
   	}
  -
   }
   
  
  
  
  1.10      +15 -22    db-ojb/src/java/org/apache/ojb/broker/accesslayer/sql/SqlUpdateStatement.java
  
  Index: SqlUpdateStatement.java
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/accesslayer/sql/SqlUpdateStatement.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- SqlUpdateStatement.java	7 Oct 2005 14:34:11 -0000	1.9
  +++ SqlUpdateStatement.java	10 Oct 2005 18:21:14 -0000	1.10
  @@ -28,8 +28,6 @@
    */
   public class SqlUpdateStatement extends SqlPkStatement
   {
  -    protected String sql;
  -
       /**
   	 * Constructor for SqlUpdateStatement.
   	 * @param aPlatform 
  @@ -71,24 +69,19 @@
           return getClassDescriptor().getNonPkRwFields();
       }
   
  -	/**
  -	 * @see SqlStatement#getStatement()
  -	 */
  -	public String getStatement()
  -	{
  -        if(sql == null)
  -        {
  -            StringBuffer stmt = new StringBuffer(1024);
  -            ClassDescriptor cld = getClassDescriptor();
  -
  -            stmt.append("UPDATE ");
  -            appendTable(cld, stmt);
  -            appendSetClause(stmt);
  -            appendWhereClause(cld, true, stmt); //use Locking
  -
  -            sql = stmt.toString();
  -        }
  -        return sql;
  -    }
  +    /**
  +     * @see org.apache.ojb.broker.accesslayer.sql.AbstractSqlStatement#buildSqlString()
  +     */
  +    protected String buildSqlString()
  +    {
  +        StringBuffer stmt = new StringBuffer(1024);
  +        ClassDescriptor cld = getClassDescriptor();
   
  +        stmt.append("UPDATE ");
  +        appendTable(cld, stmt);
  +        appendSetClause(stmt);
  +        appendWhereClause(cld, true, stmt); //use Locking
  +
  +        return stmt.toString();
  +    }
   }
  
  
  
  1.46      +10 -7     db-ojb/src/java/org/apache/ojb/broker/accesslayer/sql/SqlSelectStatement.java
  
  Index: SqlSelectStatement.java
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/accesslayer/sql/SqlSelectStatement.java,v
  retrieving revision 1.45
  retrieving revision 1.46
  diff -u -r1.45 -r1.46
  --- SqlSelectStatement.java	8 Oct 2005 12:07:33 -0000	1.45
  +++ SqlSelectStatement.java	10 Oct 2005 18:21:14 -0000	1.46
  @@ -39,7 +39,7 @@
   /**
    * Model a SELECT Statement
    *
  - * @author <a href="mailto:jbraeuchi@hotmail.com">Jakob Braeuchi</a>
  + * @author <a href="mailto:jbraeuchi@gmx.ch">Jakob Braeuchi</a>
    * @version $Id$
    */
   public class SqlSelectStatement extends SqlQueryStatement implements SelectStatement
  @@ -169,7 +169,6 @@
   
       /**
        * Return the Fields to be selected.
  -     *
        * @return the Fields to be selected
        */
       protected FieldDescriptor[] getFieldsForSelect()
  @@ -183,7 +182,6 @@
   
       /**
        * Return the Fields to be selected.
  -     *
        * @param cld the ClassDescriptor
        * @return the Fields to be selected
        */
  @@ -228,7 +226,6 @@
       
       /**
        * Appends to the statement a comma separated list of column names.
  -     *
        * @param columns defines the columns to be selected (for reports)
        * @return list of column names
        */
  @@ -249,9 +246,9 @@
       }
   
       /**
  -     * Answer the SELECT-Sql for the Statement
  +     * @see org.apache.ojb.broker.accesslayer.sql.AbstractSqlStatement#buildSqlString()
        */
  -    public String getStatement()
  +    protected String buildSqlString()
       {
           StringBuffer stmt = new StringBuffer(1024);
           QueryByCriteria query = getQuery();
  @@ -423,11 +420,17 @@
           }
       }
   
  +    /**
  +     * @see org.apache.ojb.broker.accesslayer.sql.SelectStatement#getQueryInstance()
  +     */
       public Query getQueryInstance()
       {
           return getQuery();
       }
   
  +    /**
  +     * @see org.apache.ojb.broker.accesslayer.sql.SelectStatement#getColumnIndex(org.apache.ojb.broker.metadata.FieldDescriptor)
  +     */
       public int getColumnIndex(FieldDescriptor fld)
       {
           int index = JdbcType.MIN_INT;
  
  
  
  1.21      +14 -16    db-ojb/src/java/org/apache/ojb/broker/accesslayer/sql/SqlDeleteByQuery.java
  
  Index: SqlDeleteByQuery.java
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/accesslayer/sql/SqlDeleteByQuery.java,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- SqlDeleteByQuery.java	8 Jun 2005 20:35:09 -0000	1.20
  +++ SqlDeleteByQuery.java	10 Oct 2005 18:21:14 -0000	1.21
  @@ -31,7 +31,6 @@
    */
   public class SqlDeleteByQuery extends SqlQueryStatement
   {
  -
   	/**
   	 * Constructor for SqlDeleteByQuery.
   	 * @param aCld
  @@ -41,22 +40,22 @@
   		super(aPlatform, aLogger, aCld, aQuery);
   	}
   
  -	/**
  -	 * @see org.apache.ojb.broker.accesslayer.sql.SqlStatement#getStatement()
  -	 */
  -	public String getStatement()
  -	{
  -		StringBuffer stmt = new StringBuffer();
  -		StringBuffer where = new StringBuffer();
  +    /**
  +     * @see org.apache.ojb.broker.accesslayer.sql.AbstractSqlStatement#buildSqlString()
  +     */
  +    protected String buildSqlString()
  +    {
  +        StringBuffer stmt = new StringBuffer();
  +        StringBuffer where = new StringBuffer();
   
  -		Criteria crit = this.getQuery().getCriteria();
  +        Criteria crit = this.getQuery().getCriteria();
   
  -		stmt.append("DELETE FROM ");
  -		stmt.append(getSearchClassDescriptor().getFullTableName());
  -		appendWhereClause(where, crit, stmt);
  +        stmt.append("DELETE FROM ");
  +        stmt.append(getSearchClassDescriptor().getFullTableName());
  +        appendWhereClause(where, crit, stmt);
   
  -		return stmt.toString();
  -	}
  +        return stmt.toString();
  +    }
   
   	/**
        * @see org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement#getColName()
  @@ -83,5 +82,4 @@
   
          return result;
      }
  -
   }
  
  
  
  1.13      +1 -13     db-ojb/src/java/org/apache/ojb/broker/accesslayer/sql/SqlSelectByPkStatement.java
  
  Index: SqlSelectByPkStatement.java
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/accesslayer/sql/SqlSelectByPkStatement.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- SqlSelectByPkStatement.java	7 Oct 2005 14:34:11 -0000	1.12
  +++ SqlSelectByPkStatement.java	10 Oct 2005 18:21:14 -0000	1.13
  @@ -29,11 +29,8 @@
    * @author <a href="mailto:jbraeuchi@gmx.ch">Jakob Braeuchi</a>
    * @version $Id$
    */
  -
   public class SqlSelectByPkStatement extends SqlSelectStatement
   {
  -    private String sql;
  -
       /**
        * Constructor for SqlSelectByPkStatement.
        * @param cld
  @@ -61,13 +58,4 @@
           // TODO: should use broker.getQueryFactory().newQuery()
           return QueryFactory.newQuery(cld.getClassOfObject(), crit);
       }
  -
  -    public String getStatement()
  -    {
  -        if(sql == null)
  -        {
  -            sql = super.getStatement();
  -        }
  -        return sql;
  -    }
   }
  
  
  
  1.3       +4 -7      db-ojb/src/java/org/apache/ojb/broker/accesslayer/sql/SqlGenericInsertStatement.java
  
  Index: SqlGenericInsertStatement.java
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/accesslayer/sql/SqlGenericInsertStatement.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- SqlGenericInsertStatement.java	22 Nov 2004 20:55:23 -0000	1.2
  +++ SqlGenericInsertStatement.java	10 Oct 2005 18:21:14 -0000	1.3
  @@ -21,12 +21,11 @@
   /**
    * Model an generic INSERT Statement for specified table.
    *
  - * @author <a href="mailto:jbraeuchi@hotmail.com">Jakob Braeuchi</a>
  + * @author <a href="mailto:jbraeuchi@gmx.ch">Jakob Braeuchi</a>
    * @version $Id$
    */
   public class SqlGenericInsertStatement extends SqlGenericStatement
   {
  -
       /**
        * Constructor for SqlInsertMNStatement.
        * @param aPlatform TODO
  @@ -47,7 +46,6 @@
           int cnt = getColumns().length;
   
           stmt.append(VALUES);
  -
           for (int i = 0; i < cnt; i++)
           {
               if (i > 0)
  @@ -60,9 +58,9 @@
       }
   
       /**
  -     * @see SqlStatement#getStatement()
  +     * @see org.apache.ojb.broker.accesslayer.sql.AbstractSqlStatement#buildSqlString()
        */
  -    public String getStatement()
  +    protected String buildSqlString()
       {
           StringBuffer stmt = new StringBuffer(1024);
   
  @@ -74,6 +72,5 @@
           appendListOfValues(stmt);
           return stmt.toString();
       }
  -
   }
   
  
  
  
  1.8       +17 -23    db-ojb/src/java/org/apache/ojb/broker/accesslayer/sql/SqlExistStatement.java
  
  Index: SqlExistStatement.java
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/accesslayer/sql/SqlExistStatement.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- SqlExistStatement.java	7 Oct 2005 14:34:11 -0000	1.7
  +++ SqlExistStatement.java	10 Oct 2005 18:21:14 -0000	1.8
  @@ -33,38 +33,32 @@
       private static final String SELECT = "SELECT ";
       private static final String FROM = " FROM ";
   
  -    private String sql;
  -
       public SqlExistStatement(Platform aPlatform, Logger aLogger, ClassDescriptor aCld)
       {
           super(aPlatform, aLogger, aCld);
       }
   
       /**
  -     * Return SELECT clause for object existence call
  +     * @see org.apache.ojb.broker.accesslayer.sql.AbstractSqlStatement#buildSqlString()
        */
  -    public String getStatement()
  +    protected String buildSqlString()
       {
  -        if(sql == null)
  -        {
  -            StringBuffer stmt = new StringBuffer(128);
  -            ClassDescriptor cld = getClassDescriptor();
  +        StringBuffer stmt = new StringBuffer(128);
  +        ClassDescriptor cld = getClassDescriptor();
   
  -            FieldDescriptor[] fieldDescriptors = cld.getPkFields();
  -            if (fieldDescriptors == null || fieldDescriptors.length == 0)
  -            {
  -                throw new OJBRuntimeException("No PK fields defined in metadata for " + cld.getClassNameOfObject());
  -            }
  -            FieldDescriptor field = fieldDescriptors[0];
  +        FieldDescriptor[] fieldDescriptors = cld.getPkFields();
  +        if (fieldDescriptors == null || fieldDescriptors.length == 0)
  +        {
  +            throw new OJBRuntimeException("No PK fields defined in metadata for " + cld.getClassNameOfObject());
  +        }
  +        FieldDescriptor field = fieldDescriptors[0];
   
  -            stmt.append(SELECT);
  -            appendField(field, stmt);
  -            stmt.append(FROM);
  -            appendTable(cld, stmt);
  -            appendWhereClause(cld, false, stmt);
  +        stmt.append(SELECT);
  +        appendField(field, stmt);
  +        stmt.append(FROM);
  +        appendTable(cld, stmt);
  +        appendWhereClause(cld, false, stmt);
   
  -            sql = stmt.toString();
  -        }
  -        return sql;
  +        return stmt.toString();
       }
   }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-dev-help@db.apache.org