SimpleConnection.java
Upload User: gdxydsw
Upload Date: 2019-01-29
Package Size: 16721k
Code Size: 3k
Category:

Java Develop

Development Platform:

Java

  1. /*
  2.  * Copyright (c) JForum Team
  3.  * All rights reserved.
  4.  * 
  5.  * Redistribution and use in source and binary forms, 
  6.  * with or without modification, are permitted provided 
  7.  * that the following conditions are met:
  8.  * 
  9.  * 1) Redistributions of source code must retain the above 
  10.  * copyright notice, this list of conditions and the 
  11.  * following  disclaimer.
  12.  * 2)  Redistributions in binary form must reproduce the 
  13.  * above copyright notice, this list of conditions and 
  14.  * the following disclaimer in the documentation and/or 
  15.  * other materials provided with the distribution.
  16.  * 3) Neither the name of "Rafael Steil" nor 
  17.  * the names of its contributors may be used to endorse 
  18.  * or promote products derived from this software without 
  19.  * specific prior written permission.
  20.  * 
  21.  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT 
  22.  * HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
  23.  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, 
  24.  * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 
  25.  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR 
  26.  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL 
  27.  * THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE 
  28.  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 
  29.  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES 
  30.  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
  31.  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, 
  32.  * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
  33.  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER 
  34.  * IN CONTRACT, STRICT LIABILITY, OR TORT 
  35.  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
  36.  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 
  37.  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
  38.  * 
  39.  * This file creation date: 25/08/2004 23:32:20
  40.  * The JForum Project
  41.  * http://www.jforum.net
  42.  */
  43. package net.jforum;
  44. import java.sql.Connection;
  45. import java.sql.DriverManager;
  46. import net.jforum.exceptions.DatabaseException;
  47. import net.jforum.util.preferences.ConfigKeys;
  48. import net.jforum.util.preferences.SystemGlobals;
  49. /**
  50.  * Non-pooled connection implementation.
  51.  * This class will ask a new conneciton to the database on every
  52.  * <code>getConnection()</code> class. Uses of this class include
  53.  * systems where a connection pool is not permited or the 
  54.  * connections' life time is too short, not justifying to have
  55.  * a connection pool.
  56.  * 
  57.  * @author Rafael Steil
  58.  * @version $Id: SimpleConnection.java,v 1.16 2007/09/12 23:54:21 rafaelsteil Exp $
  59.  */
  60. public class SimpleConnection extends DBConnection 
  61. {
  62. /** 
  63.  * @see net.jforum.Connection#init()
  64.  */
  65. public void init() throws Exception 
  66. {
  67. try {
  68. Class.forName(SystemGlobals.getValue(ConfigKeys.DATABASE_CONNECTION_DRIVER));
  69. // Try to validate the connection url
  70. Connection conn = this.getConnection();
  71. if (conn != null) {
  72. this.releaseConnection(conn);
  73. }
  74. this.isDatabaseUp = true;
  75. }
  76. catch (Exception e) {
  77. this.isDatabaseUp = false;
  78. throw e;
  79. }
  80. }
  81. /** 
  82.  * @see net.jforum.Connection#getConnection()
  83.  */
  84. public Connection getConnection()
  85. {
  86. try {
  87. return DriverManager.getConnection(SystemGlobals.getValue(ConfigKeys.DATABASE_CONNECTION_STRING));
  88. }
  89. catch (Exception e) {
  90. e.printStackTrace();
  91. throw new DatabaseException(e);
  92. }
  93. }
  94. /** 
  95.  * @see net.jforum.Connection#releaseConnection(java.sql.Connection)
  96.  */
  97. public void releaseConnection(Connection conn)
  98. {
  99. if (conn != null) {
  100. try {
  101. conn.close();
  102. }
  103. catch (Exception e) { }
  104. }
  105. }
  106. /** 
  107.  * @see net.jforum.DBConnection#realReleaseAllConnections()
  108.  */
  109. public void realReleaseAllConnections() throws Exception {}
  110. }