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:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a> - * @version * $Revision: 1.3 $ + * @author Gerhard Froehlich <a href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</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:[EMAIL PROTECTED]">[EMAIL PROTECTED]</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:[EMAIL PROTECTED]">[EMAIL PROTECTED]</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:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a> * @author Gerhard Froehlich <a href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</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:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a> * @author Gerhard Froehlich <a href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</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:[EMAIL PROTECTED]">[EMAIL PROTECTED]</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:[EMAIL PROTECTED]">[EMAIL PROTECTED]</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:[EMAIL PROTECTED]">[EMAIL PROTECTED]</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: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>