日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java vo层_JAVA3个数据层(pojo,dto,vo)、dao层、services层、controller层解释

發布時間:2023/12/20 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java vo层_JAVA3个数据层(pojo,dto,vo)、dao层、services层、controller层解释 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

3個數據層(pojo,dto,vo)

POJO(也叫Entiy、model):每一個字段,與數據庫中表字段相對應,表字段"_"對應java對象的"駝峰"

package?com.xiaolong.pojo;

import?io.swagger.annotations.ApiModelProperty;

import?java.io.Serializable;

import?java.math.BigDecimal;

import?java.util.Date;

public?class?OmsOrder?implements?Serializable?{

@ApiModelProperty(value?=?"訂單id")

private?Long?id;

private?Long?memberId;

private?Long?couponId;

@ApiModelProperty(value?=?"訂單編號")

private?String?orderSn;

@ApiModelProperty(value?=?"提交時間")

private?Date?createTime;

@ApiModelProperty(value?=?"用戶帳號")

private?String?memberUsername;

@ApiModelProperty(value?=?"訂單總金額")

private?BigDecimal?totalAmount;

public?Long?getId()?{

return?id;

}

public?void?setId(Long?id)?{

this.id?=?id;

}

public?Long?getMemberId()?{

return?memberId;

}

public?void?setMemberId(Long?memberId)?{

this.memberId?=?memberId;

}

public?Long?getCouponId()?{

return?couponId;

}

public?void?setCouponId(Long?couponId)?{

this.couponId?=?couponId;

}

public?String?getOrderSn()?{

return?orderSn;

}

public?void?setOrderSn(String?orderSn)?{

this.orderSn?=?orderSn;

}

public?Date?getCreateTime()?{

return?createTime;

}

public?void?setCreateTime(Date?createTime)?{

this.createTime?=?createTime;

}

public?String?getMemberUsername()?{

return?memberUsername;

}

public?void?setMemberUsername(String?memberUsername)?{

this.memberUsername?=?memberUsername;

}

public?BigDecimal?getTotalAmount()?{

return?totalAmount;

}

public?void?setTotalAmount(BigDecimal?totalAmount)?{

this.totalAmount?=?totalAmount;

}

public?BigDecimal?getPayAmount()?{

return?payAmount;

}

public?void?setPayAmount(BigDecimal?payAmount)?{

this.payAmount?=?payAmount;

}

@Override

public?String?toString()?{

StringBuilder?sb?=?new?StringBuilder();

sb.append(getClass().getSimpleName());

sb.append("?[");

sb.append("Hash?=?").append(hashCode());

sb.append(",?id=").append(id);

sb.append(",?memberId=").append(memberId);

sb.append(",?couponId=").append(couponId);

sb.append(",?orderSn=").append(orderSn);

sb.append(",?createTime=").append(createTime);

sb.append(",?memberUsername=").append(memberUsername);

sb.append(",?totalAmount=").append(totalAmount);

sb.append("]");

return?sb.toString();

}

}

DTO(也叫param,表單用):數據傳輸對象

package?com.xiaolong.dto;

import?io.swagger.annotations.ApiModelProperty;

import?lombok.Getter;

import?lombok.Setter;

import?javax.validation.constraints.Email;

import?javax.validation.constraints.NotEmpty;

@Getter

@Setter

public?class?UmsAdminParam?{

@NotEmpty

@ApiModelProperty(value?=?"用戶名",?required?=?true)

private?String?username;

@NotEmpty

@ApiModelProperty(value?=?"密碼",?required?=?true)

private?String?password;

@ApiModelProperty(value?=?"用戶頭像")

private?String?icon;

@Email

@ApiModelProperty(value?=?"郵箱")

private?String?email;

@ApiModelProperty(value?=?"用戶昵稱")

private?String?nickName;

@ApiModelProperty(value?=?"備注")

private?String?note;

}

VO(前端調用后端接口或者請求后端,后端返回給前端的響應數據用,如json字符串,有的項目VO和DTO是不區分,中大型項目都是區分開的)

package?com.xiaolong.vo;

import?io.swagger.annotations.ApiModelProperty;

import?lombok.Data;

import?lombok.EqualsAndHashCode;

@Data

@EqualsAndHashCode(callSuper?=?false)

public?class?OssCallbackVo?{

@ApiModelProperty("文件名稱")

private?String?filename;

@ApiModelProperty("文件大小")

private?String?size;

@ApiModelProperty("文件的mimeType")

private?String?mimeType;

@ApiModelProperty("圖片文件的寬")

private?String?width;

@ApiModelProperty("圖片文件的高")

private?String?height;

}

Dao層(dao也叫做mapper,mapper.xml實現Dao)

dao或者mapper接口,不需要你實現,mybatis替你實現了接口,你只需要定義xml之后mybatis就幫你實現了dao方法,當然你也可以用注解的方式,就相當于你只是定義了一個抽象的方法,有下面工人自動幫你做具體的事情了

public?interface?OmsOrderDao?{

/**

*?條件查詢訂單

*/

List?getList(@Param("queryParam")?OmsOrderQueryParam?queryParam);

/**

*?批量發貨

*/

int?delivery(@Param("list")?List?deliveryParamList);

/**

*?獲取訂單詳情

*/

OmsOrderDetail?getDetail(@Param("id")?Long?id);

}

mapper?PUBLIC?"-//mybatis.org//DTD?Mapper?3.0//EN"?"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

SELECT?*

FROM

oms_order

WHERE

delete_status?=?0

AND?order_sn?=?#{queryParam.orderSn}

AND?`status`?=?#{queryParam.status}

AND?source_type?=?#{queryParam.sourceType}

AND?order_type?=?#{queryParam.orderType}

AND?create_time?LIKE?concat(#{queryParam.createTime},"%")

AND?(

receiver_name?LIKE?concat("%",#{queryParam.receiverKeyword},"%")

OR?receiver_phone?LIKE?concat("%",#{queryParam.receiverKeyword},"%")

)

UPDATE?oms_order

SET

delivery_sn?=?CASE?id

WHEN?#{item.orderId}?THEN?#{item.deliverySn}

END,

delivery_company?=?CASE?id

WHEN?#{item.orderId}?THEN?#{item.deliveryCompany}

END,

delivery_time?=?CASE?id

WHEN?#{item.orderId}?THEN?now()

END,

`status`?=?CASE?id

WHEN?#{item.orderId}?THEN?2

END

WHERE

id?IN

#{item.orderId}

AND?`status`?=?1

SELECT?o.*,

oi.id?item_id,

oi.product_id?item_product_id,

oi.product_sn?item_product_sn,

oi.product_pic?item_product_pic,

oi.product_name?item_product_name,

oi.product_brand?item_product_brand,

oi.product_price?item_product_price,

oi.product_quantity?item_product_quantity,

oi.product_attr?item_product_attr,

oh.id?history_id,

oh.operate_man?history_operate_man,

oh.create_time?history_create_time,

oh.order_status?history_order_status,

oh.note?history_note

FROM

oms_order?o

LEFT?JOIN?oms_order_item?oi?ON?o.id?=?oi.order_id

LEFT?JOIN?oms_order_operate_history?oh?ON?o.id?=?oh.order_id

WHERE

o.id?=?#{id}

ORDER?BY?oi.id?ASC,oh.create_time?DESC

Service層

接口service層,實現方法serviceImpl,調用dao方法實現功能,最后以便Conttroller調用

Controller層

一鍵三連,感謝!

總結

以上是生活随笔為你收集整理的java vo层_JAVA3个数据层(pojo,dto,vo)、dao层、services层、controller层解释的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。