【问题标题】:Catch the SQL connection error for wrong username and password in springboot在spring boot中捕获用户名和密码错误的SQL连接错误
【发布时间】:2019-12-31 12:21:33
【问题描述】:

我有一个与 MySQL 连接的简单 springboot 应用程序,MySQL 凭据存储在 application.properties 中。

如果数据库用户名/密码不正确,我想记录这个错误。

所以我在我的主课上做了一个 try-catch

 try
    {
        SpringApplication.run( DashboardUtilServerApplication.class, args );
    }
    catch(Exception ex)
    {
        if(ex.getCause() instanceof HibernateException)
        {
        //Line 11
      }

代码将出现在第 11 行,但我如何确定此异常是由于错误的数据库凭据导致的,错误的数据库凭据是否存在某些特定异常。

我只是想向用户表明数据库凭据不正确。如果在 application.properties 中 DB 的用户名/密码不正确。

【问题讨论】:

  • 你可以使用SQLException的getMessage方法,它会给出类似'invalid username/password'
  • 为mysql连接创建@Configuration类,并定义Datasource@Bean,捕获异常。 "java.sql.SQLSyntaxErrorException: 拒绝用户访问"
  • 您使用的通用 catch 子句以及稍后的自省是灾难的根源。在尝试执行您想要实现的目标之前,最好的问题是为什么要通知应用程序的最终用户数据库凭据错误?这样的功能有什么用例?

标签: java spring-boot


【解决方案1】:

我认为没有特定的异常可以检查以确定这一点。但是,您可以检查异常消息以确定它是否是无效的凭据问题,方法是检查消息是否包含“拒绝访问”或任何确切消息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-18
    • 1970-01-01
    • 2013-06-03
    • 1970-01-01
    • 1970-01-01
    • 2016-09-13
    相关资源
    最近更新 更多