1. 程式人生 > >關於專案使用MAP和實體類作為引數的優缺點

關於專案使用MAP和實體類作為引數的優缺點

map的優點:

1、靈活性強於javabean,易擴充套件,耦合度低。
2、寫起來簡單,程式碼量少。
3、mybatis 查詢的返回結果本身就是MAP,可能會比返回javabean快

看一看Javabean的優點:

1、面向物件的良好詮釋、
2、資料結構清晰,便於團隊開發 & 後期維護。
3、程式碼足夠健壯,可以排除掉編譯期錯誤。

map的缺點:

1javabean在資料輸入編譯期就會對一些資料型別進行校驗,如果出錯會直接提示。而map的資料型別則需要到sql層,才會進行處理判斷。
2、map的引數名稱如果寫錯,也是需要到sql層,才能判斷出是不是欄位寫錯,不利於除錯等。相對而言javabean會在編譯期間發現錯誤
3、map的引數值如果多傳、亂傳,也是需要到sql層,才能判斷出是不是欄位寫錯,不利於除錯等。相對而言javabean會在編譯期間發現錯誤4、僅僅看方法簽名,你不清楚Map中所擁有的引數個數、型別、每個引數代表的含義。 後期人員去維護,例如需要加一個引數等,如果專案層次較多,就需要把每一層的程式碼都瞭解清楚才能知道傳遞了哪些引數。

javabean的缺點:

1、程式碼量增多,大量時間去封裝用到的表物件。
2、可能會影響開發效率。

權衡利弊,如果團隊開發還是javabean比較好,個人專案就無所謂了。追求高效開發,可以使用Map


相關推薦

關於專案使用MAP實體作為引數優缺點

map的優點:1、靈活性強於javabean,易擴充套件,耦合度低。 2、寫起來簡單,程式碼量少。 3、mybatis 查詢的返回結果本身就是MAP,可能會比返回javabean快看一看Javabean的優點:1、面向物件的良好詮釋、 2、資料結構清晰,便於團隊開發 &

通過idea (maven專案)生成實體、dao、mybatis的mapper.xml

1、建立maven專案,引入以下jar包 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xs

java面向物件(與物件,區域性變數成員變數,基本型別引用型別作為引數傳遞)

一.類和物件的區別 類是對某一類事物的抽象描述,而物件用於表示現實中該類事物的個體 可以將玩具模型看作是一個類,將一個個玩具看作物件,從玩具模型和玩具之間的關係便可以看出類與物件之間的關係。類用於描述多個物件的共同特徵,它是物件的模板。物件用於描述現實中的個體,它是類的例項 二.區域性變數和成員變數

JPA專案使用myeclipse建立帶註解的model實體&web工程使用MyEclipse自動生成hibernate對映檔案實體

做過一個web專案用了jpa,需要其中的註解的model實體類手寫太麻煩,其他的dao、service、action(or controller)都是拖過來直接改名就可以了 1.先新建JPA專案: 如果沒有就點選左下角的Show All Wizards.

JAVA Map轉換為實體實體轉換為MAP

package com.ruiguang.tools;import java.beans.BeanInfo;import java.beans.IntrospectionException;import java.beans.Introspector;import java.

Java中什麽是實體實體的作用

Java實體類實體類是在JAVA軟件開發中廣泛使用的概念。 但是網上少有講清楚到底是什麽的。本期我來講一講什麽是實體類。 首先,直觀的看:實體類就是一個擁有Set和Get方法的類。實體類通常總是和數據庫之類的(所謂持久層數據)聯系在一起。這種聯系是借由框架(如Hibernate)來建立的。其次說定義(比較生澀

resultMap自定義映射---8.3.1. 解決列名(表中的字段名稱)實體中的屬性名不一致

lec per 編寫 動態代理 參數類型 ID res HERE 用戶 1.1.1.1. 步驟一:將駝峰匹配註釋掉 --------------測試完成後仍然 回來開啟 其他地方可能用到 一旦註釋掉駝峰匹配,那麽再通過queryUserById查詢的結果中,用戶

基本型別引用型別作為引數傳遞(重要)

基本型別和引用型別作為引數傳遞 引用型別資料和基本型別資料作為引數傳遞有沒有差別呢?我們用如下程式碼進行說明,並配合圖解讓大家更加清晰 1.基本資料型別傳遞 基本型別作為引數傳遞時,其實就是將基本型別變數x空間中的值複製了一份傳遞給呼叫的方法show(),當在show()方法中

idea + groovy + mybatis 自動生成 Dao、mappings 實體

背景 在 windows 系統中,idea 在 C:\Users\使用者名稱\.IntelliJIdea2018.2\config\extensions\com.intellij.database\schema 目錄下預設存在如下 Groovy 檔案:Generate POJOs.g

MyBatisPlus 如何忽略資料庫實體之間的對映欄位

引用處: https://www.cnblogs.com/jym-sunshine/p/9540428.html mybatis-plus使用物件屬性進行SQL操作,經常會出現物件屬性非表字段的情況,忽略對映欄位時可以在實體類屬性上使用以下註解: @TableField(exist&nb

用MyEclipse自動生成hibernate對映檔案實體

建web工程,使用Hibernate的時候,在工程裡一個一個建立實體類和對映檔案太麻煩,特別是大專案,好幾百張表,每個表跟每個表的對應關係很負責,一張表中可能有超級多的欄位,浪費時間,還容易出錯! 建立完成後還要將一個個的對映檔案配置到hibernate.cfg.xml中,

SpringBoot註解配置檔案自動對映到屬性實體實戰

講解使用@value註解配置檔案自動對映到屬性和實體類                  1、配置檔案載入        &nbs

用MyEclipse自動生成Hibernate對映檔案實體(Javabean)

做web專案,使用SSH框架時,資料庫中許多的表都需要在專案中建立一個實體類和對映檔案,如果專案中資料表太多,一個一個在專案中建立,肯定是非常浪費時間的,有時候還會寫錯。其實,用MyEclipse可以直接生成資料庫中所有資料表的對映檔案和實體類,簡單快捷。 資

實體操作 實體物件狀態

  對實體類crud操作:   1、新增操作:    呼叫 session 裡面的save 方法實現 //新增功能 User user=new User(); user.setUsername("阿旭"); user.setP

在 Angularjs 中 ui-sref $state.go 如何傳遞單個多個引數將物件作為引數

二:傳遞多個引數其實也很簡單可以在上面的單個後面直接拼 1:目標頁面定義需要傳的傳輸個數 .state("default.certquery", { url: "/certquery", controller: "certQueryCtrl", params:{"LoginA

Hibernate之*hbm.xml檔案實體操作資料庫實現插入查詢

一、實體類(Entity) package com.javademo; import java.util.Date; public class Event { private Long id; private String title;

Angularjs 中 ui-sref $state.go 如何傳遞單個多個引數將物件作為引數

一: 如何傳遞單個引數 首先,要在目標頁面定義接受的引數: 傳參, ui-sref: $state.Go: 接收引數, 在目標頁面的controller裡注入 stateParams,然後" stateParams,然後 "stateP

(物件作為引數的方法)

/**  *  班類  * @author Administrator  */ public class Class {Student [] stu=new Student[3];//建立一個 Student型別的 學生陣列/*** 增加學生* @param 一個學生*/

mybatis---表實體不匹配問題

1.表和實體類不匹配 資料庫建表(標準格式為下劃線連線,與實體類有差異時) create table teacher ( id int primary key auto_increment, first_name varchar(20), last_name v

對映問題(讓查詢出的結果實體對應)

在使用MyBatis寫DAO的實現也就是對應的XML檔案時,當制定resultType為實體時,有兩種方法可以使返回的資料庫中的資料跟實體中每個屬性對應第一種:在寫SELECT語句的時候,順便寫上查出的資料的列名稱對應的實體屬性。如:selectstudent_id as id,student_name as