001: /*
002: * Copyright (c) JForum Team
003: * All rights reserved.
004: *
005: * Redistribution and use in source and binary forms,
006: * with or without modification, are permitted provided
007: * that the following conditions are met:
008: *
009: * 1) Redistributions of source code must retain the above
010: * copyright notice, this list of conditions and the
011: * following disclaimer.
012: * 2) Redistributions in binary form must reproduce the
013: * above copyright notice, this list of conditions and
014: * the following disclaimer in the documentation and/or
015: * other materials provided with the distribution.
016: * 3) Neither the name of "Rafael Steil" nor
017: * the names of its contributors may be used to endorse
018: * or promote products derived from this software without
019: * specific prior written permission.
020: *
021: * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
022: * HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
023: * EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
024: * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
025: * MERCHANTABILITY AND FITNESS FOR A PARTICULAR
026: * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
027: * THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
028: * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
029: * EXEMPLARY, OR CONSEQUENTIAL DAMAGES
030: * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
031: * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
032: * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
033: * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
034: * IN CONTRACT, STRICT LIABILITY, OR TORT
035: * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
036: * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
037: * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
038: *
039: * This file creation date: 25/08/2004 23:32:20
040: * The JForum Project
041: * http://www.jforum.net
042: */
043: package net.jforum;
044:
045: import java.sql.Connection;
046: import java.sql.DriverManager;
047:
048: import net.jforum.exceptions.DatabaseException;
049: import net.jforum.util.preferences.ConfigKeys;
050: import net.jforum.util.preferences.SystemGlobals;
051:
052: /**
053: * Non-pooled connection implementation.
054: * This class will ask a new conneciton to the database on every
055: * <code>getConnection()</code> class. Uses of this class include
056: * systems where a connection pool is not permited or the
057: * connections' life time is too short, not justifying to have
058: * a connection pool.
059: *
060: * @author Rafael Steil
061: * @version $Id: SimpleConnection.java,v 1.16 2007/09/12 23:54:21 rafaelsteil Exp $
062: */
063: public class SimpleConnection extends DBConnection {
064: /**
065: * @see net.jforum.Connection#init()
066: */
067: public void init() throws Exception {
068: try {
069: Class.forName(SystemGlobals
070: .getValue(ConfigKeys.DATABASE_CONNECTION_DRIVER));
071:
072: // Try to validate the connection url
073: Connection conn = this .getConnection();
074:
075: if (conn != null) {
076: this .releaseConnection(conn);
077: }
078:
079: this .isDatabaseUp = true;
080: } catch (Exception e) {
081: this .isDatabaseUp = false;
082: throw e;
083: }
084: }
085:
086: /**
087: * @see net.jforum.Connection#getConnection()
088: */
089: public Connection getConnection() {
090: try {
091: return DriverManager.getConnection(SystemGlobals
092: .getValue(ConfigKeys.DATABASE_CONNECTION_STRING));
093: } catch (Exception e) {
094: e.printStackTrace();
095: throw new DatabaseException(e);
096: }
097: }
098:
099: /**
100: * @see net.jforum.Connection#releaseConnection(java.sql.Connection)
101: */
102: public void releaseConnection(Connection conn) {
103: if (conn != null) {
104: try {
105: conn.close();
106: } catch (Exception e) {
107: }
108: }
109: }
110:
111: /**
112: * @see net.jforum.DBConnection#realReleaseAllConnections()
113: */
114: public void realReleaseAllConnections() throws Exception {
115: }
116: }
|