一、定義對(duì)象規(guī)范
entity : 是與數(shù)據(jù)庫一一對(duì)應(yīng)的字段
vo : 返回給前端的視圖對(duì)象
dto : 前端傳過來的參數(shù)封裝成dto,用于返回給前端的對(duì)象,一般用于查詢操作。
POJO是DO/DTO/BO/VO的統(tǒng)稱,禁止命名成xxxPOJO。
1、entity實(shí)體類與數(shù)據(jù)庫中的字段一一對(duì)應(yīng)
注意:數(shù)據(jù)庫中拼接字段中間使用下劃線(_)進(jìn)行分割,而實(shí)體類中拼接字段采用的是駝峰映射
2、vo : 用于返回給前端的對(duì)象,一般用于查詢操作。
2.1 為什么不直接將實(shí)體類返回?
因?yàn)樗赡軙?huì)返回一些該表結(jié)構(gòu)沒有的字段(例如:后端根據(jù)登錄用戶判斷是否是超級(jí)管理員,返回給前端一個(gè)字段:1超管 2.普通用戶),或者是表結(jié)構(gòu)中的某些字段不需要返回給前端(例如:查詢用戶時(shí),不需要返回用戶的密碼)。
2.2. 關(guān)于vo對(duì)象的賦值,
之前我的操作都是,從數(shù)據(jù)庫查出實(shí)體類對(duì)象,有時(shí)候查詢操作查出來的結(jié)果集是一個(gè)list集合,還需要遍歷集合,然后通過BeanUtils(source,target)進(jìn)行賦值?,F(xiàn)在又發(fā)現(xiàn)一個(gè)簡便操作,直接從數(shù)據(jù)庫查出來的對(duì)象就是vo對(duì)象,就不需要遍歷集合。
3、dto :前端向后端傳遞的對(duì)象(需要那些字段就傳哪些字段),一般用于新增,修改操作
3.1 關(guān)于dto,做新增操作時(shí)
可以定義一個(gè)實(shí)體類對(duì)象,使用BeanUtils(source,target),將實(shí)體類入庫文章來源:http://www.zghlxwxcb.cn/news/detail-790877.html
3.2 關(guān)于dto,做修改操作時(shí)
首先我們需要根據(jù)dto對(duì)象查找到數(shù)據(jù)庫對(duì)應(yīng)的實(shí)體類,然后對(duì)實(shí)體類對(duì)象進(jìn)行修改操作( service.lambdaUpdate().eq(實(shí)體類:屬性,dto屬性).set(實(shí)體類:屬性,dto中對(duì)應(yīng)屬性).update() )文章來源地址http://www.zghlxwxcb.cn/news/detail-790877.html
二、類上到特殊注解
@NoArgsConstructor : 生成一個(gè)無參數(shù)的構(gòu)造方法
@AllArgsContructor: 生成一個(gè)包含所有參數(shù)的構(gòu)造方法
三、參數(shù)校驗(yàn)
處理參數(shù)校驗(yàn)
1、@NotNull
適用于基本數(shù)據(jù)類型(Integer,Long,Double等等),如果是String無法處理Empty的問題。
2、@NotBlank
適用于 String 類型的數(shù)據(jù)上,加了@NotBlank 注解的參數(shù)不能為 Null
且 trim() 之后 size > 0,必須有實(shí)際字符
3、@NotEmpty
適用于 String、Collection集合、Map、數(shù)組等等,
加了@NotEmpty 注解的參數(shù)不能為 Null 或者 長度為 0
ValidationUtils.validateEntity(channelProductRouteDTO);
到了這里,關(guān)于開發(fā)規(guī)范及常用工具的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!