KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > enhydra > jdbc > standard > StandardPreparedStatement


1 /*
2  * XAPool: Open Source XA JDBC Pool
3  * Copyright (C) 2003 Objectweb.org
4  * Initial Developer: Lutris Technologies Inc.
5  * Contact: xapool-public@lists.debian-sf.objectweb.org
6  *
7  * This library is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU Lesser General Public
9  * License as published by the Free Software Foundation; either
10  * version 2.1 of the License, or any later version.
11  *
12  * This library is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  * Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public
18  * License along with this library; if not, write to the Free Software
19  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
20  * USA
21  */

22 package org.enhydra.jdbc.standard;
23
24 import java.sql.PreparedStatement JavaDoc;
25 import java.sql.SQLException JavaDoc;
26 import org.enhydra.jdbc.core.CorePreparedStatement;
27
28 /**
29  * A very simple implementation of PreparedStatement. When created
30  * it is supplied with another PreparedStatement to which nearly all
31  * of this class' methods delegate their work.
32  *
33  * Close() is overridden to prevent the statement from actually
34  * being closed.
35  */

36 public class StandardPreparedStatement extends CorePreparedStatement {
37
38     public Object JavaDoc key;
39     // key that StandardConnectionHandle uses to return to cache
40
private StandardConnectionHandle con;
41     // the StandardConnectionHandle that created this object
42
public boolean closed; // true when the PreparedStatement has been closed
43

44     /**
45      * Constructor.
46      */

47     StandardPreparedStatement(
48         StandardConnectionHandle con,
49         PreparedStatement JavaDoc preparedStatement,
50         Object JavaDoc key) {
51         this.con = con;
52         this.key = key;
53         ps = preparedStatement;
54     }
55
56     StandardPreparedStatement() {
57         super();
58     }
59
60     /**
61      * Close this statement.
62      */

63     public void close() throws SQLException JavaDoc {
64         // Note no check for already closed - some servers make mistakes
65
closed = true;
66         if (con.preparedStmtCacheSize == 0) {
67             // no cache, so we just close
68
if (ps != null) {
69                 ps.close();
70             }
71         } else {
72             con.returnToCache(key);
73             // return the underlying statement to the cache
74
}
75     }
76
77     /**
78      * Pre-invokation of the delegation, in case of the Statement is
79      * closed, we throw an exception
80      */

81     public void preInvoke() throws SQLException JavaDoc {
82         if (closed)
83             throw new SQLException JavaDoc("Prepare Statement is closed");
84     }
85
86     /**
87      * Exception management : catch or throw the exception
88      */

89     public void catchInvoke(SQLException JavaDoc sqlException) throws SQLException JavaDoc {
90         //ConnectionEvent event = new ConnectionEvent(con.pooledCon);
91
//con.pooledCon.connectionErrorOccurred(event);
92
throw (sqlException);
93     }
94
95 }
96
Popular Tags