/** * Creates a new connection with its parameters if not created yet. * * @param _drvName driver name * @param _user user name * @param _pw password * @param _name connection name * @param _host host url * @param _port port number as string * @param _db database name * @param _schema schema name * @param _connected whether or not to connect the connection * @return the connection with parameters object * @throws SQLException */ public ConnectionWithParams getConnection( String _drvName, String _user, String _pw, String _name, String _host, String _port, String _db, String _schema, boolean _connected) throws DBException { // IVectorialDatabaseDriver drv = Driver _drv = getInstanceFromName(_drvName); if (_drv == null) return null; String conn_str = getConnStringForDriver(_drv, _host, _port, _db, _user, _pw); String key = getConnectionKey(_drvName, _host, _db, _port, _user); if (!connections.containsKey(key)) { ConnectionWithParams cwp = null; if (_connected) { IConnection new_connection; try { new_connection = getConnectionForDriver(_drv, conn_str, _host, _port, _db, _user, _pw); } catch (Exception e) { throw new DBException(e); } cwp = new ConnectionWithParams( conn_str, new_connection, _drvName, _user, _pw, _name, _host, _port, _db, _schema, true); } else { cwp = new ConnectionWithParams( conn_str, null, _drvName, _user, null, _name, _host, _port, _db, _schema, false); } connections.put(key, cwp); } ConnectionWithParams _cwp = (ConnectionWithParams) connections.get(key); if (_cwp.getName().compareTo(_name) != 0) { // connections.remove(key); _cwp.setName(_name); connections.put(key, _cwp); } if ((!_cwp.isConnected()) && (_connected)) { _cwp.connect(_pw); } return _cwp; }