import java.sql.*;
import org.postgresql.Driver;
import org.postgresql.util.PGProperty;
public class ParsePostgreConnectionString {
public static void main(String[] args) throws SQLException {
// Sample PostgreSQL connection string
String connectionString = "jdbc:postgresql://localhost:5432/mydb?user=myusername&password=mypassword";
// Register the PostgreSQL JDBC driver
DriverManager.registerDriver(new Driver());
// Create a Properties object and set the connection properties
Properties props = new Properties();
PGProperty.parseConnectionString(connectionString, props);
// Get the individual connection properties
String host = props.getProperty("host");
String port = props.getProperty("port");
String databaseName = props.getProperty("databaseName");
String user = props.getProperty("user");
String password = props.getProperty("password");
// Print out the parsed connection properties
System.out.println("Host: " + host);
System.out.println("Port: " + port);
System.out.println("Database name: " + databaseName);
System.out.println("User: " + user);
System.out.println("Password: " + password);
// Establish a connection to the database using the parsed connection properties
Connection conn = DriverManager.getConnection(connectionString, props);
// Use the connection to interact with the database as needed
// ...
// Close the connection when finished
conn.close();
}
}
3条答案
按热度按时间qmelpv7a1#
正如@OneCricketeer的评论中所建议的那样-你可以使用URI解析器来做这种事情,在我看来这也是最好的解决方案。你可以这样实现它:
还可以考虑JDBC URL -也许你可以在配置中单独保留这些参数,并将JDBC URL创建为这些参数的连接?这会使事情变得更容易-这样你就不需要从URL中提取任何参数。
下面是我以前的答案(这比使用URI解析器更糟糕,但我留下它只是为了与上面的解决方案进行比较):
我会选择正则表达式,在这种情况下它并不难,然后很容易提取你需要的部分数据。
但是,你也可以使用String的
split
方法来获取你需要的String的一部分,比如:但我真的建议使用regexp。
qzlgjiam2#
在Node JS中,下面的代码可以让我连接到Heroku Postgres:
为了提取数据库字符串,必须使用“substring”从路径名中删除“/”。
运行节点v16.14.2
brgchamk3#