You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avalon.apache.org by ha...@apache.org on 2001/11/06 01:32:34 UTC

cvs commit: jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/transport SQLRequest.java SelectRequest.java

hammant     01/11/05 16:32:34

  Modified:    apps/db/src/java/org/apache/avalon/db/actions Select.java
               apps/db/src/java/org/apache/avalon/db/bcel/data
                        BCELTable.java
               apps/db/src/java/org/apache/avalon/db/bcel/parser
                        LXSQLParser.java
               apps/db/src/java/org/apache/avalon/db/driver
                        AvalonDBPreparedStatement.java
                        AvalonDBStatement.java
               apps/db/src/java/org/apache/avalon/db/server
                        AbstractDatabaseManager.java
               apps/db/src/java/org/apache/avalon/db/transport
                        SQLRequest.java SelectRequest.java
  Added:       apps/db/src/java/org/apache/avalon/db/bcel/actions
                        BCELSelect.java
  Removed:     apps/db/src/java/org/apache/avalon/db/data/impl
                        DefaultTable.java
  Log:
  Start of Select processing
  
  Revision  Changes    Path
  1.4       +12 -1     jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/actions/Select.java
  
  Index: Select.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/actions/Select.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- Select.java	2001/10/30 20:06:32	1.3
  +++ Select.java	2001/11/06 00:32:34	1.4
  @@ -18,7 +18,8 @@
    *
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
  - * @version * $Revision: 1.3 $
  + * @author Gerhard Froehlich <a href="mailto:g-froehlich@gmx.de">g-froehlich@gmx.de</a>
  + * @version * $Revision: 1.4 $
    */
   public interface Select extends ReadAction {
   
  @@ -30,4 +31,14 @@
        *
        */
       RowSet getRowSet();
  +
  +
  +    void setPrepared(boolean b);
  +
  +    boolean getPrepared();
  +
  +    void setWithParams(boolean b);
  +
  +    boolean getWithParams();
  +
   }
  
  
  
  1.1                  jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/bcel/actions/BCELSelect.java
  
  Index: BCELSelect.java
  ===================================================================
  
  /*
   * Copyright (C) The Apache Software Foundation. All rights reserved.
   *
   * This software is published under the terms of the Apache Software License
   * version 1.1, a copy of which has been included with this distribution in
   * the LICENSE file.
   */
  package org.apache.avalon.db.bcel.actions;
  
  import org.apache.avalon.db.actions.Select;
  import org.apache.avalon.db.actions.ActionException;
  import org.apache.avalon.db.bcel.data.BCELTable;
  import org.apache.avalon.db.data.impl.AbstractTableRow;
  import org.apache.avalon.db.results.RowSet;
  import org.w3c.dom.Document;
  import org.w3c.dom.Element;
  import org.w3c.dom.NodeList;
  
  import java.lang.reflect.Method;
  import java.lang.reflect.InvocationTargetException;
  
  
  /**
   * Class BCELInsert
   *
   *
   * @author Gerhard Froehlich <a href="mailto:g-froehlich@gmx.de">g-froehlich@gmx.de</a>
   */
  public class BCELSelect extends AbstractBCELAction implements Select {
  
      private Document mDocument;
      private boolean mPrepared;
      private boolean mWithParams;
  
      /**
       * Constructor BCELInsert
       *
       *
       * @param table
       * @param document
       *
       */
      public BCELSelect(Document document) {
          mDocument = document;
      }
  
      /**
       * Method execute
       *
       *
       */
      public void execute() throws ActionException {
          System.out.println("select execute");
  
          if(getPrepared()) {
              //only check params and stuff
              //no results
          }
      }
  
      public void execute(String[] params) {
          System.out.println("select execute prepared");
      }
  
      public void setPrepared(boolean b) {
          mPrepared = b;
      }
  
      public boolean getPrepared() {
          return mPrepared;
      }
  
      public void setWithParams(boolean b) {
          mWithParams = b;
      }
  
      public boolean getWithParams() {
          return mWithParams;
      }
  
      public RowSet getRowSet() {
          return null;
      }
  
  }
  
  
  
  1.4       +5 -6      jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/bcel/data/BCELTable.java
  
  Index: BCELTable.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/bcel/data/BCELTable.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- BCELTable.java	2001/11/05 18:49:49	1.3
  +++ BCELTable.java	2001/11/06 00:32:34	1.4
  @@ -1,10 +1,9 @@
   /*
  - * Created by IntelliJ IDEA.
  - * User: Administrator
  - * Date: Oct 31, 2001
  - * Time: 1:00:35 PM
  - * To change template for new class use 
  - * Code Style | Class Templates options (Tools | IDE Options).
  + * Copyright (C) The Apache Software Foundation. All rights reserved.
  + *
  + * This software is published under the terms of the Apache Software License
  + * version 1.1, a copy of which has been included with this distribution in
  + * the LICENSE file.
    */
   package org.apache.avalon.db.bcel.data;
   
  
  
  
  1.13      +25 -2     jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/bcel/parser/LXSQLParser.java
  
  Index: LXSQLParser.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/bcel/parser/LXSQLParser.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- LXSQLParser.java	2001/11/05 18:45:53	1.12
  +++ LXSQLParser.java	2001/11/06 00:32:34	1.13
  @@ -22,6 +22,7 @@
   import org.apache.avalon.db.bcel.actions.BCELCreateTable;
   import org.apache.avalon.db.bcel.actions.AbstractBCELAction;
   import org.apache.avalon.db.bcel.actions.BCELInsert;
  +import org.apache.avalon.db.bcel.actions.BCELSelect;
   import org.apache.avalon.db.bcel.data.BCELTable;
   import org.apache.avalon.db.data.Table;
   import org.apache.avalon.db.data.Column;
  @@ -75,7 +76,7 @@
    *
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
  - * @version $Revision: 1.12 $
  + * @version $Revision: 1.13 $
    */
   public class LXSQLParser extends BaseBCELParser {
   
  @@ -116,7 +117,29 @@
        *
        */
       public Select createSelectAction(SelectRequest request) throws ActionException {
  -        return null;
  +        String docStr = XMLHDR + request.getSql();
  +        System.out.println("docStr=" + docStr);
  +
  +        StringReader sr = new StringReader(docStr);
  +        InputSource is = new InputSource(sr);
  +
  +        try {
  +            Document doc = mDocumentBuilder.parse(is);
  +            Element rootElement = doc.getDocumentElement();
  +            Select action = new BCELSelect(doc);
  +            if(request.getPrepared()) {
  +                action.setPrepared(true);
  +            } else if(request.getParams().length > 0) {
  +                action.setWithParams(true);
  +            }
  +            action.setDatabasePersistor(mDatabasePersistor);
  +            ((AbstractBCELAction) action).setBCELParser(this);
  +            return action;
  +        } catch (SAXException se) {
  +            throw new ActionException(se.getMessage());
  +        } catch (IOException ioe) {
  +            throw new ActionException(ioe.getMessage());
  +        }
       }
   
       /**
  
  
  
  1.4       +19 -3     jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/driver/AvalonDBPreparedStatement.java
  
  Index: AvalonDBPreparedStatement.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/driver/AvalonDBPreparedStatement.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- AvalonDBPreparedStatement.java	2001/11/01 08:19:28	1.3
  +++ AvalonDBPreparedStatement.java	2001/11/06 00:32:34	1.4
  @@ -36,19 +36,27 @@
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
    * @author Gerhard Froehlich <a href="mailto:g-froehlich@gmx.de">g-froehlich@gmx.de</a>
  - * @version $Revision: 1.3 $
  + * @version $Revision: 1.4 $
    */
   public class AvalonDBPreparedStatement extends AvalonDBStatement implements PreparedStatement {
   
       private String mSQL;
   
  +    public void initialize() {
  +        /*
  +        parse sql string and extract params and store in Array/Vector/Hashtable
  +        Reply reply = mAvalonDBConnection.sendRequest(new SelectRequest(sql,true));
  +        handleSQLException(reply);
  +        */
  +    }
  +
       public AvalonDBPreparedStatement(AvalonDBConnection avalonDBConnection, String sql) {
           super(avalonDBConnection);
           mSQL = sql;
       }
       public AvalonDBPreparedStatement(AvalonDBConnection avalonDBConnection, String sql, int resultSetType, int resultSetConcurrency) {
           super(avalonDBConnection,resultSetType,resultSetConcurrency);
  -                mSQL = sql;
  +        mSQL = sql;
       }
   
   
  @@ -81,7 +89,15 @@
        */
       public ResultSet executeQuery(String sql) throws SQLException {
   
  -        debug();
  +        /*
  +        send request with "prepared" params...
  +        Reply reply = mAvalonDBConnection.sendRequest(new SelectRequest(sql,params));
  +        handleSQLException(reply);
  +        ResultSetReply resultSetReply = (ResultSetReply) reply;
  +        mRowSet = resultSetReply.getRowSet();
  +        mResultSet = new AvalonDBResultSet(mAvalonDBConnection,mRowSet);
  +        return mResultSet;
  +        */
   
           return null;
       }
  
  
  
  1.5       +5 -1      jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/driver/AvalonDBStatement.java
  
  Index: AvalonDBStatement.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/driver/AvalonDBStatement.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- AvalonDBStatement.java	2001/11/04 10:22:13	1.4
  +++ AvalonDBStatement.java	2001/11/06 00:32:34	1.5
  @@ -33,7 +33,7 @@
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
    * @author Gerhard Froehlich <a href="mailto:g-froehlich@gmx.de">g-froehlich@gmx.de</a>
  - * @version $Revision: 1.4 $
  + * @version $Revision: 1.5 $
    */
   public class AvalonDBStatement extends AbstractDriver implements Statement {
   
  @@ -54,6 +54,10 @@
           mAvalonDBConnection = avalonDBConnection;
           mResultSetType = resultSetType;
           mResultSetConcurrency = resultSetConcurrency;
  +    }
  +
  +    public void initialize() {
  +
       }
   
       /**
  
  
  
  1.12      +6 -2      jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/server/AbstractDatabaseManager.java
  
  Index: AbstractDatabaseManager.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/server/AbstractDatabaseManager.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- AbstractDatabaseManager.java	2001/11/05 01:01:28	1.11
  +++ AbstractDatabaseManager.java	2001/11/06 00:32:34	1.12
  @@ -39,7 +39,7 @@
    *
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
  - * @version $Revision: 1.11 $
  + * @version $Revision: 1.12 $
    */
   public abstract class AbstractDatabaseManager extends AbstractLoggable implements Composable {
   
  @@ -100,7 +100,11 @@
               mSQLOptimizer.optimizeSelectRequest(selectRequest);
           */
           Select select = mSQLParser.createSelectAction(selectRequest); //optimizedSelectRequest);
  -        select.execute();
  +        if(!select.getWithParams()) {
  +            select.execute();
  +        } else {
  +            select.execute();
  +        }
           return new ResultSetReply(select.getRowSet());
       }
   
  
  
  
  1.2       +24 -1     jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/transport/SQLRequest.java
  
  Index: SQLRequest.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/transport/SQLRequest.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- SQLRequest.java	2001/10/28 14:09:21	1.1
  +++ SQLRequest.java	2001/11/06 00:32:34	1.2
  @@ -15,11 +15,13 @@
    *
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
  - * @version $Revision: 1.1 $
  + * @version $Revision: 1.2 $
    */
   public class SQLRequest extends Request {
   
       private String mSql;
  +    private boolean mPrepared = false;
  +    private String[] mParams;
   
       /**
        * Constructor SQLRequest
  @@ -36,6 +38,18 @@
           this.mSql = sql;
       }
   
  +    public SQLRequest(int requestCode, String sql, boolean prepared) {
  +        super(requestCode);
  +        this.mPrepared = prepared;
  +        this.mSql = sql;
  +     }
  +
  +    public SQLRequest(int requestCode, String sql, String[] params) {
  +        super(requestCode);
  +        this.mParams = params;
  +        this.mSql = sql;
  +    }
  +
       /**
        * Constructor SQLRequest
        *
  @@ -60,4 +74,13 @@
       public String getSql() {
           return mSql;
       }
  +
  +    public boolean getPrepared() {
  +        return mPrepared;
  +    }
  +
  +    public String[] getParams() {
  +        return mParams;
  +     }
  +
   }
  
  
  
  1.3       +10 -1     jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/transport/SelectRequest.java
  
  Index: SelectRequest.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/transport/SelectRequest.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- SelectRequest.java	2001/10/31 09:39:53	1.2
  +++ SelectRequest.java	2001/11/06 00:32:34	1.3
  @@ -15,7 +15,7 @@
    *
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
  - * @version $Revision: 1.2 $
  + * @version $Revision: 1.3 $
    */
   public class SelectRequest extends SQLRequest {
   
  @@ -29,4 +29,13 @@
       public SelectRequest(String sql) {
           super(Request.SELECT, sql);
       }
  +
  +    public SelectRequest(String sql,boolean prepared) {
  +        super(Request.SELECT, sql,prepared);
  +    }
  +
  +    public SelectRequest(String sql,String[] param) {
  +        super(Request.SELECT, sql,param);
  +    }
  +
   }
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>