2016-08-16 2 views
-1

Когда у меня есть ошибка при подключении к базе данных, мне нужно ее зарегистрировать (с именем базы данных и именем пользователя, которые пытались подключиться к db, не нужно регистрировать пароль), я используйте Sprig-Mybatis по моему усмотрению.Как зарегистрировать информацию о подключении с Mybatis

Любые идеи, как это сделать?

С наилучшими пожеланиями

ответ

0

Там нет другого специального способа сделать как простой TRY/улов в Java получит вам expection. Например, простая программа, где я звоню метод mybatis сопоставителя:

try{ 
    List result = mapper.myBatisMapperMethod();//this is responsible to set up 
               //a connection and run a query 
    } 

Предположим, выше вызов не удается из-за неправильной аутентификации сказать ниже, где мой пароль неправильный Connection исключение, что я обычно получаю в mybatis :

Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Login failed for user 'applicationUsername'.) 
     Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Login failed for user 'applicationUsername'.) 
      at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1225) 
      at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880) 
      at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111) 
      at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:77) 
      ... 65 more 
     Caused by: 
    com.microsoft.sqlserver.jdbc.SQLServerException: Login failed for user 'applicationUsername'. 

что я делаю, есть простой улов выше попробовать вы можете иметь SQL исключение пойманным, но здесь я использую просто Exception.

catch(Exception e){ 
     //Suppose you are using Log4j You can simply 
     logger.error("This is my error log message"+e.getMessage()); 
     //The above will log any kind of exception including the authentication fail or you 
     can specifically log a particular kind of exception.Java wont log failed password it just logs the user who tried unless you explicitly want to log it. 
    }