2

データベースにデータを保存するプログラムを作成しています。接続を取得し、利用可能なすべてのデータベースを読み取るためのコードを作成しましたが、利用可能なデータベースから特定の 1 つを選択できるようにしたいと考えています。誰か助けてくれませんか?以下のドードは、ベースと利用可能なデータベースのリストとの接続です。

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);
        }

どのように私は続けなければなりませんか?? 選択したデータベースで残りのプログラムを続行します。while(theDatabase) に何を書かなければならないのですか???

4

4 に答える 4

3

次のように、データベースごとに複数の接続オブジェクトを作成します

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

また

 Connection con = null;

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

次に使用します

Connection con = (Connection) DriverManager.getConnection(
        "jdbc:mysql://localhost:3306/"+theDatabase, "root", "root");
于 2013-04-26T09:52:27.630 に答える
1

選択したデータベースに接続します。

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

// Do your code here
于 2013-04-26T09:56:28.007 に答える
1

table-name の前に database-name を付けることができます。たとえば、データベース名が DB1 でテーブル名が TB1 の場合、クエリは次のようになります。

select * from DB1.TB1

于 2013-04-26T09:55:28.963 に答える
0

データベースを選択するには、ここにデータベース名を追加します:

Connection con = (Connection) DriverManager.getConnection(
                "jdbc:mysql://localhost:3306/DatabaseName", "root", "root");
于 2013-04-26T09:55:10.797 に答える