基于oracle文档,我创建了一个钱包
mkstore -wrl /tmp/wl -create
添加凭证
mkstore -wrl /tmp/wl -createCredential localhost:1521/myservice user pass
在我的java应用程序中,我想通过这个钱包连接到数据库
public static void main(String... args) throws Exception {
Class.forName("oracle.jdbc.driver.OracleDriver");
System.setProperty("oracle.net.wallet_location", "/tmp/wl");
Connection connection = DriverManager.getConnection("WHAT TO PUT HERE?");
}
但我不知道如何填充连接字符串。我不想使用tnsnames.ora感谢
根据我的经验,使用钱包进行身份验证时需要使用tnsnames.ora,即使是JDBC瘦连接也是如此。tnsnames.ora中的连接别名与钱包中的连接昵称匹配,为给定的连接提供正确的凭据。
也就是说,最新的文档似乎表明,您可以沿着myhost:1521/myservice
或(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=myhost-scan)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=myservice)))
的行输入一个连接字符串,作为钱包中的db_connect_string参数。这可能会否定对tnsnames.ora的需求,只要你的连接URL在"@"匹配钱包中的db_connect_string。
你的连接URL看起来像这样:
jdbc:oracle:thin:@myhost:1521/myservice
您可以将与钱包相关的连接属性作为连接URL的一部分进行传递。您可以跳过使用tnsnames.ora。有关一些示例,请参阅JDBC开发人员指南。