Java 在将JDBC与Oracle DB一起使用时,如何确定连接是否确实超时或凭据是否错误?
我已经有了连接字符串和DBA用户名。我接受用户的DBA密码。 为了检查他提供的密码是否正确,我尝试使用Java 在将JDBC与Oracle DB一起使用时,如何确定连接是否确实超时或凭据是否错误?,java,oracle,jdbc,database-connection,Java,Oracle,Jdbc,Database Connection,我已经有了连接字符串和DBA用户名。我接受用户的DBA密码。 为了检查他提供的密码是否正确,我尝试使用 String connString = "jdbc:oracle:thin:@" + connDesc; Properties props = new Properties(); props.put("user", user); props.put("password", pwd); props.put("internal_logon", "sysdb
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时,我需要找出该异常是否是由于错误的密码或网络超时造成的。有办法吗?
另外,有没有比我目前所做的更好的方法来验证密码?您可以使用该方法读取Oracle特定的错误代码
对于无效的用户名/密码组合,错误代码为1017
我不清楚“网络超时”到底是什么错误。如果消息为网络适配器无法建立连接
,则所需的错误代码为17002。(我在尝试使用JDBC连接到本地Oracle XE实例时遇到此错误,但TNS侦听器已关闭。)
验证用户名/密码的最佳方法莫过于尝试使用该用户名和密码创建与数据库的连接。您可以使用该方法读取Oracle特定的错误代码
对于无效的用户名/密码组合,错误代码为1017
我不清楚“网络超时”到底是什么错误。如果消息为网络适配器无法建立连接
,则所需的错误代码为17002。(我在尝试使用JDBC连接到本地Oracle XE实例时遇到此错误,但TNS侦听器已关闭。)
验证用户名/密码的最佳方法莫过于尝试使用该用户名和密码创建与数据库的连接