【設計】在Java后端開發時使用JSONObject完全替代JAVABean(DTO,VO)是否可行?

其實這樣做你是得不償失,不過也要看什么項目,如果你的項目只在只需要實現功能,不在乎健壯性,可持續性那就完全可以。因為我現在公司老項目所有用的POJO的地方都是用JSONObject。代碼可讀性幾乎為0。你用了可能喪失以下功能,其實是得不償失的。

1、代碼可讀性低,因為你只能通過前端頁面和后端數據庫表接口去推斷能可能字段、字段類型。

2、無法統一處理后端的表單驗證功能(如果你不做驗證算我白說)。

3、處理業務時需要頻繁的判空,類型轉換

4、無法通過工具生成標準文檔

……

綜上所述,如果你們公司對代碼的要求只是把前端的數據簡單的存到數據庫,那用jsonobject完全是可以的。甚至直接提供接口給前端,完全控制數據庫都可以。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/37287.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/37287.shtml
英文地址,請注明出處:http://en.pswp.cn/web/37287.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【微服務】后臺管理項目多數據源管理方案實戰

目錄 前言 1、使用Spring提供的AbstractRoutingDataSource 2、使用MyBatis注冊多個SqlSessionFactory 3、使用dynamic-datasource框架 前言 Java后臺使用MyBatis-plus 快速訪問多個數 據源,這里分享三種常用的多數據源管理方案 1、使用Spring提供的AbstractRout…

【C++深度探索】繼承機制詳解(一)

hello hello~ ,這里是大耳朵土土垚~💖💖 ,歡迎大家點贊🥳🥳關注💥💥收藏🌹🌹🌹 💥個人主頁:大耳朵土土垚的博客 &#x1…

代碼托管服務:GitHub、GitLab、Gitee

目錄 引言GitHub:全球最大的代碼托管平臺概述功能特點適用場景 GitLab:一體化的開發平臺概述功能特點適用場景 Gitee(碼云):中國本土化的代碼托管服務概述功能特點適用場景 功能對比結論 引言 在現代軟件開發中&#…

numpy - array(3)

arr1 np.array([[(1000, 1001, 1002, 1003), (1010, 1011, 1012, 1013), (1020, 1021, 1022, 1023)],[(1100, 1101, 1102, 1103), (1110, 1111, 1112, 1113), (1120, 1121, 1122, 1123)]], dtypeint) (1) 根據坐標訪問元素或內容,更改訪問的內容,array也會更改。“…

C++操作系列(一):MinGW環境安裝與配置(無報錯版)

本文選擇MinGW作為安裝對象。 1. 下載MinGW 進入官網:MinGW - Minimalist GNU for Windows download | SourceForge.net 點擊File: 劃到最下面:  Windows 64位系統下載seh結尾的安裝包: 2. 安裝MinGW 解壓MinGW&am…

力扣第218題“天際線問題”

在本篇文章中,我們將詳細解讀力扣第218題“天際線問題”。通過學習本篇文章,讀者將掌握如何使用掃描線算法和堆來解決這一問題,并了解相關的復雜度分析和模擬面試問答。每種方法都將配以詳細的解釋,以便于理解。 問題描述 力扣第…

【CSS】深入理解CSS 的steps()函數

在CSS動畫中,steps()函數是一個時間函數,它主要用于animation-timing-function屬性,以定義動畫的步進方式。當你想要動畫的某個屬性(如background-position或transform: translateX())在特定的步驟之間變化時&#xff…

探索 ES6:現代 JavaScript 的新特性

隨著 JavaScript 的不斷演進,ECMAScript 2015(簡稱 ES6)作為 JavaScript 的一次重大更新,帶來了許多新特性和語法改進,極大地提升了開發體驗和代碼質量。本文將詳細介紹 ES6 的主要新特性,并展示如何在實際…

NLTK:原理與使用詳解

文章目錄 NLTK簡介NLTK的核心功能1. 文本處理2. 詞匯處理3. 語法分析4. 語義分析5. 情感分析 NLTK的使用1. 安裝NLTK2. 導入NLTK庫3. 下載NLTK數據集4. 文本處理示例5. 情感分析示例 總結 NLTK簡介 NLTK是一個開源的Python庫,用于處理和分析人類語言數據。它提供了…

扛鼎中國AI搜索,天工憑什么?

人類的創作不會沒有瓶頸,但AI的熱度可不會消停。 大模型之戰依舊精彩,OpenAI選擇在Google前一天舉行發布會,兩家AI企業之間的拉扯賺足了熱度。 反觀國內,百模大戰激發了大家對于科技變革的熱切期盼,而如今行業已逐漸…

【操作系統期末速成】 EP01 | 學習筆記(基于五道口一只鴨)

文章目錄 一、前言🚀🚀🚀二、正文:??????1.1 考點一:操作系統的概率及特征 三、總結:🍓🍓🍓 一、前言🚀🚀🚀 ?? 回報不在行動…

文章浮現之單細胞VDJ的柱狀圖

應各位老師的需求復現一篇文章的中的某個圖 具體復現圖5的整個思路圖,這里沒有原始數據,所以我使用虛擬生產的metadata進行畫圖 不廢話直接上代碼,先上python的代碼的結果圖 import matplotlib.pyplot as plt import numpy as np# 數據&#…

架構師篇-8、運用事件風暴進行業務領域建

如何成為優秀架構師? 需要有一定的技術積累,但是核心是懂業務。 具備一定的方法,并且有很強的業務理解能力。 技術架構師:形成技術方案,做的更多的是底層的平臺,提供工具。 業務架構師:解決方…

兩數之和你會,三數之和你也會嗎?o_O

前言 多少人夢想開始的地方,兩數之和。 但是今天要聊的不是入門第一題,也沒有面試官會考這一題吧…不會真有吧? 咳咳不管有沒有,今天的豬腳是它的兄弟,三數之和,作為雙指針經典題目之一,也是常…

Vue3中Element Plus組件庫el-eialog彈框中的input無法獲取表單焦點的解決辦法

以下是vue.js官網給出的示例 <script setup> import { ref, onMounted } from vue// 聲明一個 ref 來存放該元素的引用 // 必須和模板里的 ref 同名 const input ref(null)onMounted(() > {input.value.focus() }) </script><template><input ref&qu…

如何在Vue3項目中使用Pinia進行狀態管理

**第一步&#xff1a;安裝Pinia依賴** 要在Vue3項目中使用Pinia進行狀態管理&#xff0c;首先需要安裝Pinia依賴。可以使用以下npm命令進行安裝&#xff1a; bash npm install pinia 或者如果你使用的是yarn&#xff0c;可以使用以下命令&#xff1a; bash yarn add pinia *…

Tomcat的安裝和虛擬主機和context配置

一、 安裝Tomcat 注意&#xff1a;安裝 tomcat 前必須先部署JDK 1. 安裝JDK 方法1&#xff1a;Oracle JDK 的二進制文件安裝 [rootnode5 ~]# mkdir /data [rootnode5 ~]# cd /data/ [rootnode5 data]# rz[rootnode5 data]# ls jdk-8u291-linux-x64.tar.gz [rootnode5 data]…

C++:std::function的libc++實現

std::function是個有點神奇的模板&#xff0c;無論是普通函數、函數對象、lambda表達式還是std::bind的返回值&#xff08;以上統稱為可調用對象&#xff08;Callable&#xff09;&#xff09;&#xff0c;無論可調用對象的實際類型是什么&#xff0c;無論是有狀態的還是無狀態…

【C++】string基本用法(常用接口介紹)

文章目錄 一、string介紹二、string類對象的創建&#xff08;常見構造&#xff09;三、string類對象的容量操作1.size()和length()2.capacity()3.empty()4.clear()5.reserve()6.resize() 四、string類對象的遍歷與訪問1.operator[ ]2.正向迭代器begin()和end()3.反向迭代器rbeg…

QTableView與QSqlQueryModel的簡單使用

測試&#xff1a; 這里有一個sqlite數據庫 存儲了10萬多條數據&#xff0c;col1是1,col2是2. 使用QSqlQueryModel和QTableView來顯示這些數據&#xff0c;也非常非常流暢。 QString aFile QString::fromLocal8Bit("E:/桌面/3.db");if (aFile.isEmpty())return;//打…