我是乔克新手。我正在尝试将用户表中名为“帐户状态”的列从UNLOCKED更新为LOCKED。我正在使用Jooq的dslContext更新查询。
我在控制器中调用此updateAccountStatus方法。但是这种方法给了我一个NullPointerException。
public boolean updateAccountStatus(String userhandle,UsersAccStatus usersAccStatus) {
try {
dslContext
.update(USERS)
.set(USERS.ACC_STATUS,UsersAccStatus.LOCKED)
.where(USERS.USER_HANDLE.equal(userHandle))
.execute();
}
catch(Exception e) {
// code
}
}
我希望此方法的输出可以更新数据库中的account_status枚举。
错误信息 :-
java.lang.NullPointerException: null
at com.core.admin.controller.AdminAccountStatus.execute(AdminAccountStatus.java:84) ~[classes/:na]
任何帮助,将不胜感激。
最佳答案
1)在下一行中,您直接使用类UsersAccStatus
,如果您已将LOCKED声明为static,那么就可以了,否则您必须使用类users.AccStatus(UsersAccStatus)的对象(用小写字母表示)
2)修改以下代码
从:
.set(USERS.ACC_STATUS,UsersAccStatus.LOCKED)
至:
.set(USERS.ACC_STATUS,usersAccStatus!=null ? null : usersAccStatus.LOCKED)
让我知道这是否对您有用。
问候,
阿努拉格
关于mysql - 更新数据库时如何解决NullPointerException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58162552/