<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ## 一、概述 原則上,不要用DB字段存儲文件,但有時候,因為設計需要,確要通過字段存儲文件(圖片、音頻、視頻、文本及其他二進制)除外; ## 二、設計要點 1、數據庫表設計的時候,采用longblob來存儲文件; 2、基于性能考慮,這些字段需要啟用延遲加載; 3、保存的時候,如果是更新,那么,需要將被延遲加載的字段強制調用一次initialize,強制加載一次該字段對象,避免需要更新的字段無法實現更新; 4、如果是讀取二進制的時候,也需要將被延遲加載的字段強制調用一次initialize,強制加載一次該字段對象,否則,默認的,平臺不會去加載二進制字段(平臺提供了通用的二進制讀取機制,一般都不需要讀取二進制自身來實現讀取); 5、保存二進制數據的方法有兩種,一種是通過post組合對象,納入對象中,由后臺隱式提交,另外一種是通過參數,直接傳入base64,由后臺顯示提交; 6、平臺中,無論哪種提交保存方法,保存到blob中的base64串,都是采用帶頭部串保存(便于自動偵測文件類型); ## 三、實例代碼 注意,二進制字段(已經考慮了一個實體中,有多個blob字段的情形)的處理,包括新增和修改兩種情形(刪除的話,跟隨者實體刪除,沒有什么好說的); ### **新增字段數據** 新增二進制字段數據,跟隨者新增實體對象,二進制字段與該實體的其他普通的字段一樣,沒有額外處理的需要; ![](https://img.kancloud.cn/4b/f1/4bf120ef9731f16371adf03f43bb0ada_1216x555.png) ### **修改字段數據** 修改實體中的二進制字段數據方法,平臺提供了兩種方案,一種是通過post組合對象,字段數據納入對象的字段中,由后臺隱式提交,另外一種是通過參數,直接傳入base64,由后臺設置到實體中,進行顯示提交; 以下詳細介紹; #### **(1)隱式提交** ``` SysCorporation sysCorporation = post.getSysCorporation(); sysCorporationDao.save(sysCorporation); preForcedLoadingAndUpdatingLazyBlobFields(sysCorporationDao, sysCorporation); ``` >[danger] 特別注意: > 1、這里是所有blob字段的加載和更新一起執行了; > 2、需先單獨更新(當然,這個更新無法更新到blob字段,但可以更新除blob字段外的所有字段數據); #### **(2)顯示提交** ``` SysStaffProfile profile = sysStaffProfileDao.getSysStaffProfileOfSpecStaff(staffObj.getStaffId()); preForcedLoadingLazyBlobFieldForUpdate(profile); profile.setPhoto(Base64Util.convertOriginalBase64WithHeadForPersist(avator)); sysStaffProfileDao.save(profile); ``` >[danger] 特別注意: > 1、需要通過Base64Util.convertOriginalBase64WithHeadForPersist的預處理,再存到數據庫(否則會導致后續無法正常讀出); > 2、與隱式提交不同,這里的加載,僅僅是加載,并沒有執行更新邏輯,需要在加載后,顯示寫代碼來更新字段數據;
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看