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>