Spring MyBatis一个从数据库成功检索但有时返回为空的值

问题描述 投票:0回答:1

对不起我的写作错误,英语不是我的母语。

我对自己的应用程序有疑问。如果有人建议解决此问题,将不胜感激。

我的应用程序建立在spring-framework 4.0(mybatis 3.4.6,mybatis-spring 1.3.2)上

情况就像,有一个名为'User'的对象,它有一个名为'password'的私有字段变量,带有getter,setter。

User.java

class User { 
     private String id;
     private String password;
     public void getPassword() {
         return password;
     }
     public void setId(String id) {
         this.id = id;
     }
     public void getId() {
         return id;
     }
     public void setPassword(String password) {
         this.password = password;
     }
  }

我也有'User'表,以及它的指定(与User对象配对)

用户表(MariaDB 5)

enter image description here

如您所见,该表具有用户信息,通常用于处理登录。当我的应用程序调用此语句“从id = $ {id}的用户中选择*”时,它将返回User对象。大部分时间它没有问题,但是今天我无法登录到我的应用服务器时间。所以我寻找了错误消息,并说NPE发生在Hex.decodeHex(dbPassword)

INFO   | jvm 1    | 2019/12/18 15:15:55 | java.lang.NullPointerException: null
INFO   | jvm 1    | 2019/12/18 15:15:55 |       at org.apache.commons.codec.binary.Hex.decodeHex(Hex.java:80)
INFO   | jvm 1    | 2019/12/18 15:15:55 |       at com.myapp.webapps.main.Encryptor.equals(Encryptor.java:53)
INFO   | jvm 1    | 2019/12/18 15:15:55 |       at com.myapp.webapps.main.Login.login(Login.java:248)

代码摘要

enter image description here

问题是从User对象检索的password参数为null,因此无法调用toCharArray方法。是否有可能使用null以便返回正确?如果db是问题,则不会去检查密码是否有效。我现在可以再次登录,但是仍然对发生的事情感到困惑。

任何线索都对我有好处,因为我不知道从哪里开始弄清楚这一点。请让我知道任何事情..

非常感谢。

对不起我的写作错误,英语不是我的母语。我自己的应用程序有问题。如果有人建议解决此问题,将不胜感激。我的应用程序是...

spring null mybatis
1个回答
0
投票

我的英语不太好,我想说的是可以看看映射器中的代码吗?

© www.soinside.com 2019 - 2024. All rights reserved.