碰到个需求,即只提供IP地址,需要获取所有的数据库名,以及各个数据库的详细信息。
以下内容为转载,感谢作者。
本文是答疑文章
有朋友提出 为什么java建立连接 必须要指定数据库?不能像PHP那样连接数据库后再选择数据库吗?
答案是肯定的 能!
下面的例子 我建立连接的时候我并没有指定数据库,之后我使用“use db”选择了数据库,执行一样成功。
package com.cxy.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import javax.sql.rowset.JdbcRowSet;
import com.sun.rowset.JdbcRowSetImpl;
/**
* @author cxy
*/
public class ChooseDb
{
public static void main(String[] args) throws Exception
{
Class.forName("com.mysql.jdbc.Driver");
try
(
Connection con=DriverManager.getConnection("jdbc:mysql://localhost", "root", "root");
JdbcRowSet jrs=new JdbcRowSetImpl(con);
)
{
jrs.setCommand("use dbtest"); //执行选择数据库操作
jrs.execute();
jrs.setCommand("select * from t_student");
jrs.execute();
System.out.println("id\t姓名\t 性别");
while(jrs.next())
{
System.out.println(jrs.getString(1)+"\t"+jrs.getString(2)+"\t"+jrs.getString(3));
}
}catch(Exception e)
{
e.printStackTrace();
}
}
}
去掉选择数据库的执行语句 你会发现报一个No database selected的异常。
端口号是否添加,目前都能连接上,原因暂时未知。
根据需求,在选择数据库语句前,需要执行查询数据库操作
jrs.setCommand("show DATABASES");
jrs.execute();
while (jrs.next()) {
System.out.println(jrs.getString(1));
}
原文链接:JDBC不指定具体数据库的数据库连接_snkcxy的博客-CSDN博客