Vyrábam program na ukladanie údajov do databázy. Vytvoril som kód na získanie spojenia, prečítanie všetkých dostupných databáz, ale teraz by som chcel mať možnosť vybrať jednu z dostupných databáz. Môže mi niekto pomôcť, ako na to? Dole dole je spojenie so základňou a zoznam dostupných databáz.
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);
}
Ako musím pokračovať? Chcem pokračovať v odpočinkovom programe s vybranou databázou. Čo musím napísať, zatiaľ čo (theDatabase) ???
odpovede:
3 pre odpoveď č. 1vytvoriť viac objektov pripojenia každý z nich pre každú databázu, ako je
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
alebo
Connection con = null;
if(theDatabase.equals("mysql"))
con = (Connection) DriverManager.getConnection(
"jdbc:mysql://localhost:3306/", "root", "root");
else
con = (Connection) DriverManager.getConnection(oracle);
Potom použite
Connection con = (Connection) DriverManager.getConnection(
"jdbc:mysql://localhost:3306/"+theDatabase, "root", "root");
1 pre odpoveď č. 2
môžete predponu tabuľky-názov pred názov-databázy. Napríklad, ak je názov databázy DB1 a názov tabuľky je TB1, potom by mohol byť váš dotaz
vyberte * z DB1.TB1
1 pre odpoveď č. 3
Pripojte sa k vybranej databáze.
Class.forName("com.mysql.jdbc.Driver");
Connection con = (Connection) DriverManager.getConnection(
"jdbc:mysql://localhost:3306/"+theDatabase, "root", "root");
// Do your code here
0 pre odpoveď č. 4
Ak chcete vybrať svoju databázu, pridajte sem názov Dababasename:
Connection con = (Connection) DriverManager.getConnection(
"jdbc:mysql://localhost:3306/DatabaseName", "root", "root");