如何命令“使用的数据库名称”是用java代码

问题描述:

我想提出,将存储在数据库中的Excel文件中的数据O程序。我有很多数据库,所以在我的程序中,我必须选择在哪个数据库中存储数据。 我已经使代码能够连接mysql与我的程序,并显示可用的数据库。我现在想要做的是说我将在哪个数据库中存储数据。 更具体地说,我希望用户首先在他的客户端查看可用的数据库,然后他将有机会说出数据将存储在哪个数据库中。 任何人都可以帮助我如何做到这一点?如何命令“使用的数据库名称”是用java代码

的代码来查看所有可用的数据库是如下:

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

预先感谢您!

+0

你的问题是有点不清楚的所有表。数据库是指模式还是表格? – 2013-04-25 11:51:59

+0

可以在此行中设置的数据库(_after用户选择one_) - '连接CON =(连接)的DriverManager.getConnection( “JDBC:MySQL的://本地主机:3306/SelectedDatabase”, “根”, “根”); ' – 2013-04-25 11:53:17

+0

我如何给用户选择的能力?我必须写什么才能在客户端显示,以便用户输入他想要的内容? – dedmar 2013-04-25 11:56:31

我希望this SO link应该帮助你。你可以从连接对象中的所有数据

+0

@efoikonom,如果此答案可以帮助您,请将其标记为正确答案 – Arun 2013-04-25 11:56:29

首先做一个创建一个简单的连接

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

寻找一个例子here

看他如何使用ResultSet类来访问结果。

现在,

检索information_schema.SCHEMATA信息,以便您可以查询像

SELECT schema_name FROM information_schema.SCHEMATA S;

让所有的模式

下一页getting choice from user(maybe from console)后,您可以根据使用Connection#setCatalog()

uservalue设置数据库

如果你wan牛逼表信息使用此查询

SELECT * FROM information_schema.TABLES T;

它会列出所有模式

+0

您能帮我解决代码问题吗?因为我没有太多的理解您。 – dedmar 2013-04-25 12:23:20

+0

更新了答案,提供了一些链接 – 2013-04-25 14:09:26