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层解释相关推荐

  1. 中service层的作用_浅析Java中dto、dao、service、controller的四层结构

    目前我所在的项目组采用的是SpringBoot框架,前端使用BootStrap+jQuery. SpringBoot是BS开发框架之一,不用单独开启tomcat服务器,目前比较流行,一般开发大型项目时 ...

  2. SpringBoot框架中各层(DTO、DAO、Service、Controller)理解

    粗略理解 View层→Controller层(响应用户请求)→Service层(接口→接口实现类)→DAO层,即Mapper层(抽象类:xxxMapper.java文件,具体实现在xxxMapper. ...

  3. PO\POJO\DTO\VO相关说明

    1. PO (Persistent Object):是指持久化对象,通常是指与数据库表结构一一对应的Java类,用于将数据从数据库中取出并映射为Java对象.PO通常包含了数据表中的字段和相应的get ...

  4. PO\POJO\DTO\VO

    1.PO:persistant object 持久对象,是与数据库中的表相映射的java对象,最形象的理解就是一个PO就是数据库中的一条记录. 2.POJO: POJO:plain ordinary ...

  5. SpringBoot框架分层(View层、Controller层、Service层、Mapper层、pojo层)

    SpringBoot框架一般分为View层.Controller层.Service层.Mapper层.pojo层. View层:视图层,根据接到的数据展示页面给用户 Controller层:响应用户需 ...

  6. POJO/DTO/DO/EO/VO/BO/PO/AO的含义和使用

    关于POJO/DTO/DO/EO/VO/BO/PO/AO 本文讨论 POJO/DTO/DO/EO/VO/BO/PO/AO 的定义,另外讨论了这些xO在controller.service.dao/ma ...

  7. SpringBoot框架中的DAO(mapper)层、Entity层、Service层、Controller层

    Entity层:实体层 数据库在项目中的类 Entity层是实体层,也就是所谓的model,也称为pojo层,是数据库在项目中的类,该文件包含实体类的属性和对应属性的set.get方法: DAO层: ...

  8. 三层架构编程、DAO层、Entity层、Service层、Controller层

    什么是三层架构编程: 本质上所有的项目(应用程序)都是需要和用户交互,然后产生数据,对数据进行处理,最后将数据存储到硬盘这么个过程 在编程中,可以将这个过程分一下层次,最初只分两层,用户层和数据层,但 ...

  9. 关于service层,dao层,controller层

    SSM是sping+springMVC+mybatis集成的框架. MVC即model view controller. model层=entity层.存放我们的实体类,与数据库中的属性值基本保持一致 ...

  10. Dao层,Mapper层,controller层,service层,model层都有什么作用

    原文链接 SSM是sping+springMVC+mybatis集成的框架. MVC即model view controller. model层=entity层. 存放我们的实体类,与数据库中的属性值 ...

最新文章

  1. ATS 5.3.0缓存架构
  2. 经验总结 | 重构让你的代码更优美和简洁
  3. Asp.net Mvc Enum 扩展
  4. worpress安装mysql连不上_wordpress安装时连接不上MySQL8.0(已解决)Windows
  5. 编译期java_java编译期和运行期
  6. 又发现一款牛逼的 API 敏捷开发工具
  7. [CodePlus2017]晨跑
  8. c#点击按钮调出另一个窗体_在类库或winform项目中打开另一个winform项目窗体的方法...
  9. Transact-SQL 示例 - 触发器的基础及应用
  10. BZOJ2438[中山市选2011] 杀人游戏
  11. STM32驱动WS2811
  12. 初探数据湖(Data Lake),到底有什么用?让我们来一窥究竟...
  13. 电大考试计算机应用基础考试试题,电大计算机应用基础网络教育统考考试(2013真题卷)...
  14. jellyfin 字幕方框问题
  15. 科大讯飞刘庆峰:AI要改变世界,算法、大数据、行业专家缺一不可
  16. 俄语入门难不难-大舌音难学吗-弹舌难学吗
  17. 【SpringBoot-3】Lombok使用详解
  18. python123查找指定字符输入m_Pyton学习—字符串
  19. Ringbuffer 范例
  20. linux安装mysql教程

热门文章

  1. 根据FOV和图像大小计算相机内参[Python]
  2. winpe 安装 win7 过程问题综述
  3. 将静态html网页部署至华为云
  4. 【云速建站】域名配置指导
  5. java compile方法_Java中带有示例的模式compile()方法
  6. 关于启动报错:Field xxxMapper in com.xxx.service.impl.xxxServiceImpl required a bean of type的解决方案
  7. win10+GeForce 940mx安装cuda
  8. web安全主要包括哪些方面的安全
  9. 《怦然心动》(Flipped) 观后感
  10. 多目标进化算法(二)——非支配排序/NSGA-II