从列表中选择一个数据库

时间:2013-04-26 09:49:02

标签: java jdbc

我正在制作一个程序来将数据存储在数据库中。我已经创建了获取连接的代码,以读取所有可用的数据库,但现在我希望能够从可用的数据库中选择一个特定的数据库。任何人都可以帮我怎么做? 下面的dode是与基础的连接和可用数据库的列表。

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

我该如何继续?我想继续使用所选数据库的休息程序。 我必须写什么(theDatabase)???

4 个答案:

答案 0 :(得分: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");

答案 1 :(得分:1)

您可以使用database-name为表名添加前缀。例如,如果数据库名称是DB1且表名是TB1,那么您的查询可能是

从DB1.TB1中选择*

答案 2 :(得分:1)

连接到所选的数据库。

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

// Do your code here

答案 3 :(得分:0)

选择你的数据库在这里添加你的Dababasename:

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