从JDBC连接处理Sybase中的登录错误的正确方法是什么?

时间:2011-01-04 15:14:43

标签: java jdbc sybase

我从Java应用程序访问Sybase数据库。我可以连接到它,执行语句,所有这些都可以正常工作。

我的问题是我想正确处理连接失败时的情况。

根据我的理解,它可能会因以下原因而失败:

  • 密码不正确
  • 密码已过期
  • 帐户已锁定

所以我的问题是:如何正确处理这些错误案例,我怎样才能识别出发生了哪一个?

2 个答案:

答案 0 :(得分:1)

从几次测试中,我发现了不同的情况:

过期密码

在这种情况下,数据库允许连接,但非常有限。您唯一可以调用的是更改密码的过程。返回的连接带有errorcode 4022的SQLWarning,以及说明:

的说明
  

密码已过期,但您已   仍然允许登录。你必须   尽可能更改密码   继续。如果设置了登录触发器,   它不会被执行。

由于特定的错误代码,可以识别错误,并建议在客户端程序中更改密码。


密码和锁定帐户无效

两种情况都没有区别。在请求连接时,它会抛出一个SQLException,它使用error code 4002链接到SQLWarning作为下一个异常,并且有一个非常简单的描述:

  

登录失败。

因此,没有办法专门处理这些案件。


奖金案例:密码即将到期

当密码即将过期时,返回的连接将包含一个code 4023的SQLWarning,说明:

  

您的密码将在%s天后过期。

这允许在客户端程序中显示警告,建议更改密码。

答案 1 :(得分:0)

像处理来自数据库的其他消息一样处理它。捕获异常日志消息(这将帮助您确定原因。同时向用户显示发生数据库错误或无法访问数据库的消息。