/ / selecione um banco de dados de uma lista - java, jdbc

selecione um banco de dados de uma lista - java, jdbc

Eu estou fazendo um programa para armazenar dados em um banco de dados. Eu criei o código para obter conexão, para ler todos os bancos de dados disponíveis, mas agora eu gostaria de poder selecionar um específico a partir dos bancos de dados disponíveis. Alguém poderia me ajudar como? O dode abaixo é a conexão com a base e a lista dos bancos de dados disponíveis.

public static void main (String[] args) throws Exception {
try {
System.out.println("get the connection");
}
catch( Exception e )
{
System.out.println( "SQLException: " + e.getMessage() );
}

Class.forName("com.mysql.jdbc.Driver");
Connection con = (Connection) DriverManager.getConnection(
"jdbc:mysql://localhost:3306/", "root", "root");
DatabaseMetaData meta = (DatabaseMetaData) con.getMetaData();
ResultSet res = meta.getCatalogs();
System.out.println("List of the databases: ");
while (res.next()){
System.out.println (" " +res.getString(1));
}
{
Scanner keyboard = new Scanner ( System.in);
System.out.println("Choose a database");
String theDatabase = keyboard.toString();
while (theDatabase )
{
System.out.println("Enter an existing database");
theDatabase = keyboard.toString();
}
System.out.println("You choose "+theDatabase);
}

Como eu tenho que continuar? Eu quero continuar o programa de descanso com o banco de dados selecionado. O que eu tenho que escrever em while (theDatabase) ???

Respostas:

3 para resposta № 1

criar vários objetos de conexão cada um para cada banco de dados como

Connection con = (Connection) DriverManager.getConnection(
"jdbc:mysql://localhost:3306/", "root", "root");

Connection con1 = Create connection using oracle


if(theDatabase.equals("mysql"))
//use con
else
//use con2

ou

 Connection con = null;

if(theDatabase.equals("mysql"))
con = (Connection) DriverManager.getConnection(
"jdbc:mysql://localhost:3306/", "root", "root");
else
con = (Connection) DriverManager.getConnection(oracle);

Então use

Connection con = (Connection) DriverManager.getConnection(
"jdbc:mysql://localhost:3306/"+theDatabase, "root", "root");

1 para resposta № 2

você pode prefixar o nome da tabela com database-name. por exemplo, se o nome do banco de dados for DB1 e o nome da tabela for TB1, sua consulta poderá ser

selecione * de DB1.TB1


1 para resposta № 3

Conecte-se ao banco de dados selecionado.

Class.forName("com.mysql.jdbc.Driver");
Connection con = (Connection) DriverManager.getConnection(
"jdbc:mysql://localhost:3306/"+theDatabase, "root", "root");

// Do your code here

0 para a resposta № 4

para selecionar seu banco de dados, adicione seu Dababasename aqui:

Connection con = (Connection) DriverManager.getConnection(
"jdbc:mysql://localhost:3306/DatabaseName", "root", "root");