亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

java - 阿里的開發手冊中為什么禁用map來作為查詢的接受類?

瀏覽:93日期:2023-11-17 11:16:44

問題描述

我在項目中經常使用List<Map<String,Object>>做為查詢的接受對象.感覺使用方便,不用每個多表查詢的時候都創建DTO類.java - 阿里的開發手冊中為什么禁用map來作為查詢的接受類?

上面只針對查詢,如果將map應用到DTO,VO是否會有相同的問題.

問題解答

回答1:

1、map參數數量大時不易維護。要通過識別字符串形式的key,可能哪個字母沒加程序就出錯了

2、map轉成實體,耗費資源。或者不轉實體,直接將map傳到sql層,但要判斷空值(傳沒傳這個參數啊。。。),參數數量一多要加一堆判斷(sql效率下降,也不易維護)

3、創建map再put進參數值,比創建一個實體類的時間要長(map數量少時創建的時間差距很小,但是數量較大時差距會非常大)

4、參數類型的控制。sql中不是字符串類型的參數還要轉成數值。。。錯誤跑到sql中,容易被CC

5、面相對象,將sql層與實體分離,降低耦合。否則維護很麻煩

回答2:

我認為有兩個方面吧:1.面向對象的思想2.效率吧,畢竟玩查詢的【這里的效率是指map.get(key)】,map.put然后get的 這樣很容易出錯吧, 的確不怎么好

都是我瞎編的,呵呵,大學老師好像講過吧。。

回答3:

不利于他人共同開發和后期維護

回答4:

Map<String, Object> 類型不安全

回答5:

Map用查詢參數,方法調用者根本就不知道方法提供者提供方法參數可以存哪些健值對以及健值對類型,map.put(key,value)亂傳的問題不能在編譯階段發現,用QueryDto可以精確定義參數類型和限制(JSR 303 Validation)

回答6:

如果我沒有理解錯誤的話.

數據查詢對象是指 dao 查詢方法的參數封裝, 并不是指方法的返回. 這樣做的好處是代碼的可讀性高, 你直接使用map作為接口參數, 使用者想要確定具體的查詢條件非常困難, 而且給外部接口調用的靈活性太高, 比如 使用者在map中增加一個x, 但是你的查詢根本不支持, 但是你如何讓使用者能夠確認的知道呢?

而 dao 的返回參數按照文檔的要求是應該使用 do/dto.

回答7:

感覺主要是調試和維護困難,比如任何key的拼寫錯誤,要到query執行時才能反饋

回答8:

map的優點:

1、靈活性強于javabean,易擴展,耦合度低。2、寫起來簡單,代碼量少。

看一看Javabean的優點:

1、面向對象的良好詮釋、2、數據結構清晰,便于團隊開發 & 后期維護。3、代碼足夠健壯,可以排除掉編譯期錯誤。

權衡利弊,如果團隊開發還是javabean比較好,個人項目就無所謂了。歡迎補充!~

標簽: java
相關文章:
主站蜘蛛池模板: 一级毛片免费观看不卡视频 | 优女视频免费观看 | 日本亚洲欧美国产日韩ay高清 | 日韩女性性生生活视频 | 男人j桶进女人p无遮挡动态图二三 | 91精品国产91久久久久久 | 一级毛片在线完整免费观看 | 精品国产福利第一区二区三区 | 日本高清一级做a爱过程免费视频 | 日本高清不卡中文字幕 | 亚洲狠狠狠一区二区三区 | 国产成人黄网址在线视频 | 18禁片一级毛片视频播放免费看 | 窝窝午夜色视频国产精品东北 | 黄色精品在线 | 亚洲一区二区三区久久 | 国产河南妇女毛片精品久久 | aaaa一级片 | 麻豆网站入口 | 91久久精品午夜一区二区 | 成人黄色免费 | 成人免费xxxxx在线视频 | 最新永久一路线二路线三路线 | 欧美精品在线观看 | 一 级 黄 色 片生活片 | 国产精品毛片一区 | 亚洲国产激情在线一区 | 色xxxxx| 97色老99久久九九爱精品 | 国产色产综合色产在线观看视频 | 玖玖精品在线视频 | 黄免费在线观看 | 国产成人18黄禁网站免费观看 | 男女爱爱视频在线观看 | 97在线视频99播放 | 女性无套免费网站在线看 | 亚洲在线高清 | 国产成人精品日本亚洲专区6 | 亚州淫片aaaa视频 | 日本中文一区 | 欧美xxxxx九色视频免费观看 |