001: /**
002: * EasyBeans
003: * Copyright (C) 2006 Bull S.A.S.
004: * Contact: easybeans@ow2.org
005: *
006: * This library is free software; you can redistribute it and/or
007: * modify it under the terms of the GNU Lesser General Public
008: * License as published by the Free Software Foundation; either
009: * version 2.1 of the License, or any later version.
010: *
011: * This library is distributed in the hope that it will be useful,
012: * but WITHOUT ANY WARRANTY; without even the implied warranty of
013: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
014: * Lesser General Public License for more details.
015: *
016: * You should have received a copy of the GNU Lesser General Public
017: * License along with this library; if not, write to the Free Software
018: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
019: * USA
020: *
021: * --------------------------------------------------------------------------
022: * $Id: DBManager.java 1970 2007-10-16 11:49:25Z benoitf $
023: * --------------------------------------------------------------------------
024: */package org.ow2.easybeans.tests.common.db;
025:
026: import java.io.PrintWriter;
027: import java.io.Serializable;
028: import java.sql.Connection;
029: import java.sql.DriverManager;
030: import java.sql.SQLException;
031: import java.util.Hashtable;
032:
033: import javax.sql.DataSource;
034:
035: import org.ow2.util.log.Log;
036: import org.ow2.util.log.LogFactory;
037:
038: /**
039: * Manages the connection with the database. It is make possible to open and
040: * close connections with the database and also, use statements.
041: * @author Gisele Pinheiro Souza
042: * @author Eduardo Studzinski Estima de Castro
043: */
044: public class DBManager implements DataSource, Serializable {
045:
046: /**
047: * The serial version.
048: */
049: private static final long serialVersionUID = 1208377914757260026L;
050:
051: /**
052: * A Constant that holds the name of the JDBC driver class.
053: */
054: public static final Integer JDBC_DRIVER = new Integer(1);
055:
056: /**
057: * Constant that holds the database URL.
058: */
059: public static final Integer URL = new Integer(2);
060:
061: /**
062: * Constant that holds the user login used to connect with the database.
063: */
064: public static final Integer LOGIN = new Integer(3);
065:
066: /**
067: * Constant that holds the user passwd used to connect with the database.
068: */
069: public static final Integer PASSWD = new Integer(4);
070:
071: /**
072: * The database URL.
073: */
074: private String strURL = null;
075:
076: /**
077: * The user login used to connect with the database.
078: */
079: private String strLogin = null;
080:
081: /**
082: * The user passwd used to connect with the database.
083: */
084: private String strPasswd = null;
085:
086: /**
087: * The JDBC driver used to connect with the database.
088: */
089: private String strJDBCDriver = null;
090:
091: /**
092: * Logger.
093: */
094: private static Log logger = LogFactory.getLog(DBManager.class);
095:
096: /**
097: * Creates a instance of DBManager.Loads the database driver and sets the
098: * parameters.
099: * @param dbParameters parameters used to make the connection.
100: * @throws ClassNotFoundException if the jdbc driver class was not found.
101: */
102: public DBManager(final Hashtable<Integer, String> dbParameters)
103: throws ClassNotFoundException {
104:
105: Class.forName(dbParameters.get(JDBC_DRIVER));
106: strURL = dbParameters.get(URL);
107: strJDBCDriver = dbParameters.get(JDBC_DRIVER);
108: strLogin = dbParameters.get(LOGIN);
109: strPasswd = dbParameters.get(PASSWD);
110: }
111:
112: /**
113: * Starts the connection with the database.
114: * @return the datasource connection.
115: * @throws SQLException if a database access error occurs
116: */
117: public Connection getConnection() throws SQLException {
118: try {
119: Class.forName(strJDBCDriver);
120: } catch (Exception e) {
121: logger.debug("Cannot uses the driver {0}", e);
122: }
123: return DriverManager.getConnection(strURL, strLogin, strPasswd);
124:
125: }
126:
127: /**
128: * Starts the connection with the database.
129: * @param username the name used to connect with the database.
130: * @param password the user password.
131: * @return the datasource connection.
132: * @throws SQLException if a database access error occurs
133: */
134: public Connection getConnection(final String username,
135: final String password) throws SQLException {
136: return DriverManager.getConnection(strURL, username, password);
137: }
138:
139: /**
140: * Not used.
141: * @return not used
142: * @throws SQLException if a database access error occurs
143: */
144: public int getLoginTimeout() throws SQLException {
145: throw new SQLException("Not implemented");
146: }
147:
148: /**
149: * Not used.
150: * @return not used
151: * @throws SQLException if a database access error occurs
152: */
153: public PrintWriter getLogWriter() throws SQLException {
154: throw new SQLException("Not implemented");
155: }
156:
157: /**
158: * Not used.
159: * @param seconds not used
160: * @throws SQLException if a database access error occurs
161: */
162: public void setLoginTimeout(final int seconds) throws SQLException {
163: throw new SQLException("Not implemented");
164: }
165:
166: /**
167: * Not used.
168: * @param out not used.
169: * @throws SQLException if a database access error occurs
170: */
171: public void setLogWriter(final PrintWriter out) throws SQLException {
172: throw new SQLException("Not implemented");
173: }
174:
175: }
|