gpt4 book ai didi

java - 将 JDBC 与 Oracle DB 一起使用时,如何查找连接是否真的超时或凭据是否错误?

转载 作者:行者123 更新时间:2023-11-29 03:53:53 25 4
gpt4 key购买 nike

我已经有了连接字符串和 DBA 用户名。我接受用户的 DBA 密码。为了检查他提供的密码是否正确,我尝试使用

创建连接
    String connString = "jdbc:oracle:thin:@" + connDesc;
Properties props = new Properties();
props.put("user", user);
props.put("password", pwd);

props.put("internal_logon", "sysdba");
Class.forName("oracle.jdbc.OracleDriver").newInstance();
Connection conn = DriverManager.getConnection(connString, props);

现在,当它抛出 SQLException 时,我需要确定该异常是因为密码错误还是网络超时。有什么办法吗?另外,有没有比我目前正在做的更好的方法来验证密码?

最佳答案

您可以使用 SQLException.getErrorCode()读取错误的 Oracle 特定错误代码的方法。

对于无效的用户名/密码组合,错误代码为 1017。

我不清楚您所说的“网络超时”到底是什么错误。如果消息是 The Network Adapter could not establish the connection,那么你想要的错误代码似乎是 17002。 TNS 监听器关闭。)

没有比尝试使用该用户名和密码创建到数据库的连接更好的验证用户名/密码的方法了。

关于java - 将 JDBC 与 Oracle DB 一起使用时,如何查找连接是否真的超时或凭据是否错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7430512/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com