1. 我遇到了什麼問題 我在學習springboot,其中在編寫CRUD時發現訪問數據的函數執行下去返回值是null但是其它部分正常。 下麵是我的錯誤代碼 pojo public class Bot { @TableId(type = IdType.AUTO ) private Integer id ...
1. 我遇到了什麼問題
我在學習springboot,其中在編寫CRUD時發現訪問數據的函數執行下去返回值是null但是其它部分正常。
下麵是我的錯誤代碼
pojo
public class Bot {
@TableId(type = IdType.AUTO )
private Integer id ;
private Integer user_id ;
private String name ;
private String description ;
private String content ;
private Integer rating ;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date create_time ;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date modify_time ;
}
資料庫列名
其中註意我是在面臨訪問user_id這個類時出現了返回null。當時目的是為了pojo和資料庫對應。
Service
@Service
public class RemoveServiceImpl implements RemoveService {
@Autowired
BotMapper botMapper ;
@Override
public Map<String, String> remove(Map<String, String> data) {
UsernamePasswordAuthenticationToken authenticationToken =
(UsernamePasswordAuthenticationToken) SecurityContextHolder.getContext().getAuthentication() ;
UserDetailsImpl loginUser = (UserDetailsImpl) authenticationToken.getPrincipal() ;
User user = loginUser.getUser() ;
Map<String,String> map = new HashMap<>();
int bot_id = Integer.parseInt(data.get("bot_id")) ;
Bot bot = botMapper.selectById(bot_id) ;
if(bot == null) {
map.put("error_message", "Bot不存在") ;
return map ;
}
System.out.println("new BOT_ID" + bot.getId());
System.out.println(bot.getName());
System.out.println(bot.getUser_id());
System.out.println(user.getId());
if(!bot.getUser_id().equals(user.getId())) {
map.put("error_message", "你沒有許可權") ;
return map ;
}
botMapper.deleteById(bot_id) ;
map.put("error_message", "success") ;
return map ;
}
}
其中各類訪問資料庫的函數都是idea自動填充的
問題就是當我程式進行到這個頁面時,bot.getUser_id()返回值是null其它值都是正確的
2. 我是怎麼做得
後面發現pojo層的命名和資料庫之間要使用駝峰命名法進行對應,關於駝峰命名法希望大家自己去查一查,因為我也不熟。但是對於資料庫中的user_id列命名需要把_變為大寫。
將pojo層變為
public class Bot {
@TableId(type = IdType.AUTO )
private Integer id ;
private Integer userId ;
private String name ;
private String description ;
private String content ;
private Integer rating ;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date create_time ;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date modify_time ;
}
同時把service中的
bot.getUser_id()
改為
bot.getUserId()
問題就解決了
我是看這位大佬的提醒懂得