/* * Copyright 2005 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.wamblee.persistence; import java.sql.Connection; import java.sql.SQLException; /** * Represents a database. * * @author Erik Brakkee */ public interface Database { /** * Starts a database. This call should not block and return * as soon as the database has been started. * @throws Exception */ void start( ) throws Exception; /** * Gets the Jdbc Url to connect to this database. * @return Jdbc Url. */ String getJdbcUrl( ); /** * Gets the external Jdbc URL to connect to this database from other JVMs. */ String getExternalJdbcUrl(); /** * Gets the driver class name used to connect to the database from another JVM. * @return Driver class name. */ String getDriverClassName(); /** * Gets the username to connect to the database. * @return username. */ String getUsername(); /** * Gets the password to connect to the database. * @return password. */ String getPassword(); /** * Creates a new database connection. It is the caller's * responsibility to close this connection. * * @return Newly created database connection. */ Connection createConnection( ) throws SQLException; /** * Stops a database. * @throws Exception */ void stop( ) throws Exception; }