Springboot在編寫CRUD時,訪問對應數據函數返回null

来源:https://www.cnblogs.com/oldmomsimith/p/18008810
-Advertisement-
Play Games

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()

問題就解決了
我是看這位大佬的提醒懂得


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Java Math Java 的 Math 類 擁有許多方法,允許您在數字上執行數學任務。 常用方法: Math.max(x, y): 找到 x 和 y 的最大值 Math.min(x, y): 找到 x 和 y 的最小值 Math.sqrt(x): 返回 x 的平方根 Math.abs(x): 返 ...
  • 一、java鎖存在的必要性 要認識java鎖,就必須對2個前置概念有一個深刻的理解:多線程和共用資源。 對於程式來說,數據就是資源。 在單個線程操作數據時,或快或慢不存在什麼問題,一個人你愛乾什麼乾什麼。 多個線程操作各自操作不同的數據,各乾各的,也不存在什麼問題。 多個線程對共用數據進行讀取操作, ...
  • 讀了啥 周志明的深入理解Java虛擬機中的調優案例。 第一個案例 背景 一個網站部署在JVM上,而Java堆大小固定在了12G,但是總會出現長時間無法響應的情況。 使用了吞吐量優先收集器:可能是Parallel Scavenge和Parallel Old收集器。 問題 網站直接從磁碟拷貝文檔到堆記憶體 ...
  • 電腦網路作為一門電腦專業課,平時都是各種抽象的協議和各種發送接收,很難具體的去感受其含義,因此也是藉助wireshark對發送的包進行一個分析。 ...
  • 大家好,我是你們的老伙計秀才!今天帶來的是[深入淺出Java多線程]系列的第九篇內容:synchronized與鎖。大家覺得有用請點贊,喜歡請關註!秀才在此謝過大家了!!! ...
  • 本文全面深入地探討了對象存儲服務(OSS)的核心技術、基礎知識和高級功能。從媒體存儲到數據備份,再到數據倉庫與數據湖,我們不僅解析了OSS在各種應用場景下的關鍵角色,還深入討論了其與機器學習、多媒體處理以及日誌和監控等多個開發場景的結合。 關註【TechLeadCloud】,分享互聯網架構、雲服務技 ...
  • 通過本文,我們使用Python編寫了一個簡單的日曆程式。在Python官方文檔中,我們找到了一個名為"calendar"的模塊,它可以輕鬆實現一個簡易的日曆,滿足基本需求。此外,我們還介紹了Tkinter和PyQt兩個常用的圖形用戶界面庫,以及borax庫和其他一些開源項目來實現更多功能和用戶體驗的... ...
  • wmproxy wmproxy已用Rust實現http/https代理, socks5代理, 反向代理, 負載均衡, 靜態文件伺服器,websocket代理,四層TCP/UDP轉發,內網穿透等,會將實現過程分享出來,感興趣的可以一起造個輪子 項目地址 國內: https://gitee.com/ti ...
一周排行
    -Advertisement-
    Play Games
  • 前言 微服務架構已經成為搭建高效、可擴展系統的關鍵技術之一,然而,現有許多微服務框架往往過於複雜,使得我們普通開發者難以快速上手並體驗到微服務帶了的便利。為瞭解決這一問題,於是作者精心打造了一款最接地氣的 .NET 微服務框架,幫助我們輕鬆構建和管理微服務應用。 本框架不僅支持 Consul 服務註 ...
  • 先看一下效果吧: 如果不會寫動畫或者懶得寫動畫,就直接交給Blend來做吧; 其實Blend操作起來很簡單,有點類似於在操作PS,我們只需要設置關鍵幀,滑鼠點來點去就可以了,Blend會自動幫我們生成我們想要的動畫效果. 第一步:要創建一個空的WPF項目 第二步:右鍵我們的項目,在最下方有一個,在B ...
  • Prism:框架介紹與安裝 什麼是Prism? Prism是一個用於在 WPF、Xamarin Form、Uno 平臺和 WinUI 中構建鬆散耦合、可維護和可測試的 XAML 應用程式框架 Github https://github.com/PrismLibrary/Prism NuGet htt ...
  • 在WPF中,屏幕上的所有內容,都是通過畫筆(Brush)畫上去的。如按鈕的背景色,邊框,文本框的前景和形狀填充。藉助畫筆,可以繪製頁面上的所有UI對象。不同畫筆具有不同類型的輸出( 如:某些畫筆使用純色繪製區域,其他畫筆使用漸變、圖案、圖像或繪圖)。 ...
  • 前言 嗨,大家好!推薦一個基於 .NET 8 的高併發微服務電商系統,涵蓋了商品、訂單、會員、服務、財務等50多種實用功能。 項目不僅使用了 .NET 8 的最新特性,還集成了AutoFac、DotLiquid、HangFire、Nlog、Jwt、LayUIAdmin、SqlSugar、MySQL、 ...
  • 本文主要介紹攝像頭(相機)如何採集數據,用於類似攝像頭本地顯示軟體,以及流媒體數據傳輸場景如傳屏、視訊會議等。 攝像頭採集有多種方案,如AForge.NET、WPFMediaKit、OpenCvSharp、EmguCv、DirectShow.NET、MediaCaptre(UWP),網上一些文章以及 ...
  • 前言 Seal-Report 是一款.NET 開源報表工具,擁有 1.4K Star。它提供了一個完整的框架,使用 C# 編寫,最新的版本採用的是 .NET 8.0 。 它能夠高效地從各種資料庫或 NoSQL 數據源生成日常報表,並支持執行複雜的報表任務。 其簡單易用的安裝過程和直觀的設計界面,我們 ...
  • 背景需求: 系統需要對接到XXX官方的API,但因此官方對接以及管理都十分嚴格。而本人部門的系統中包含諸多子系統,系統間為了穩定,程式間多數固定Token+特殊驗證進行調用,且後期還要提供給其他兄弟部門系統共同調用。 原則上:每套系統都必須單獨接入到官方,但官方的接入複雜,還要官方指定機構認證的證書 ...
  • 本文介紹下電腦設備關機的情況下如何通過網路喚醒設備,之前電源S狀態 電腦Power電源狀態- 唐宋元明清2188 - 博客園 (cnblogs.com) 有介紹過遠程喚醒設備,後面這倆天瞭解多了點所以單獨加個隨筆 設備關機的情況下,使用網路喚醒的前提條件: 1. 被喚醒設備需要支持這WakeOnL ...
  • 前言 大家好,推薦一個.NET 8.0 為核心,結合前端 Vue 框架,實現了前後端完全分離的設計理念。它不僅提供了強大的基礎功能支持,如許可權管理、代碼生成器等,還通過採用主流技術和最佳實踐,顯著降低了開發難度,加快了項目交付速度。 如果你需要一個高效的開發解決方案,本框架能幫助大家輕鬆應對挑戰,實 ...