/* * 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. */ void start(); /** * 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. */ void stop(); }