我可以使用jdbc驱动程序使用jdbc:postgresql://host:port/database
连接到postgresql服务器中的数据库。
但是我想连接到postgresql服务器,并在那里找到数据库列表。当我使用jdbc:postgresql://localhost:5432
时,我得到了一个名为
java.sql.SQLException: No suitable driver found for jdbc:postgresql://localhost:5432
是否有其他驱动程序或方法可以在不知道服务器中的数据库名称和查询数据库列表的情况下连接到服务器?
发布于 2014-05-07 16:37:24
好的。我自己想出来了。我可以使用此字符串使用jdbc驱动程序连接到服务器。
jdbc:postgresql://localhost:5432/?
,并可以使用此代码段获取数据库列表。
private void listDownAllDatabases() {
try {
PreparedStatement ps = connection
.prepareStatement("SELECT datname FROM pg_database WHERE datistemplate = false;");
ResultSet rs = ps.executeQuery();
while (rs.next()) {
System.out.println(rs.getString(1));
}
rs.close();
ps.close();
} catch (Exception e) {
e.printStackTrace();
}
}
引用:我使用这个dba stackexchange answer获取所有的数据库列表
发布于 2014-05-07 15:52:25
AFAIK,这超出了JDBC的能力。我建议你重新考虑解决更大问题的方法。环境变量或属性文件可能是解决方案。
发布于 2020-11-21 10:21:56
import java.io.PrintStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
/**
* Dev Parzival
*/
public class TestingDatabase {
static String driver="org.postgresql.Driver";
static String jdbc_url="jdbc:postgresql://localhost:5432/";
static String username="username",password="password";
static PrintStream out;
static{
out=System.out;
}
public static void main(String $[]){
//SELECT datname FROM pg_database
try{
Class.forName(driver);
Connection connection= DriverManager.getConnection(jdbc_url,username,password);
Statement statement=connection.createStatement();
ResultSet result=statement.executeQuery("SELECT datname FROM pg_database");
while(result.next()){
System.out.println(result.getString(1));
}
connection.close();
}catch(Exception ex){
ex.printStackTrace();
}
}
}
希望这能对某些人有所帮助
https://stackoverflow.com/questions/23522400
复制相似问题