java vo层_JAVA3个数据层(pojo,dto,vo)、dao层、services层、controller层解释
3個數(shù)據(jù)層(pojo,dto,vo)
POJO(也叫Entiy、model):每一個字段,與數(shù)據(jù)庫中表字段相對應(yīng),表字段"_"對應(yīng)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,表單用):數(shù)據(jù)傳輸對象
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;
@ApiModelProperty(value?=?"郵箱")
private?String?email;
@ApiModelProperty(value?=?"用戶昵稱")
private?String?nickName;
@ApiModelProperty(value?=?"備注")
private?String?note;
}
VO(前端調(diào)用后端接口或者請求后端,后端返回給前端的響應(yīng)數(shù)據(jù)用,如json字符串,有的項目VO和DTO是不區(qū)分,中大型項目都是區(qū)分開的)
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實現(xiàn)Dao)
dao或者mapper接口,不需要你實現(xiàn),mybatis替你實現(xiàn)了接口,你只需要定義xml之后mybatis就幫你實現(xiàn)了dao方法,當(dāng)然你也可以用注解的方式,就相當(dāng)于你只是定義了一個抽象的方法,有下面工人自動幫你做具體的事情了
public?interface?OmsOrderDao?{
/**
*?條件查詢訂單
*/
List?getList(@Param("queryParam")?OmsOrderQueryParam?queryParam);
/**
*?批量發(fā)貨
*/
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層,實現(xiàn)方法serviceImpl,調(diào)用dao方法實現(xiàn)功能,最后以便Conttroller調(diào)用
Controller層
一鍵三連,感謝!
總結(jié)
以上是生活随笔為你收集整理的java vo层_JAVA3个数据层(pojo,dto,vo)、dao层、services层、controller层解释的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据中台推不动?手把手教你落地搭建!
- 下一篇: 体育运用计算机教学的教学反思,[转载]体