我正在制作一个程序来将数据存储在数据库中。我已经创建了获取连接的代码,以读取所有可用的数据库,但现在我希望能够从可用的数据库中选择一个特定的数据库。任何人都可以帮我怎么做? 下面的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)???
答案 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");