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 № 1criar 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");