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;
@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层解释相关推荐
- 中service层的作用_浅析Java中dto、dao、service、controller的四层结构
目前我所在的项目组采用的是SpringBoot框架,前端使用BootStrap+jQuery. SpringBoot是BS开发框架之一,不用单独开启tomcat服务器,目前比较流行,一般开发大型项目时 ...
- SpringBoot框架中各层(DTO、DAO、Service、Controller)理解
粗略理解 View层→Controller层(响应用户请求)→Service层(接口→接口实现类)→DAO层,即Mapper层(抽象类:xxxMapper.java文件,具体实现在xxxMapper. ...
- PO\POJO\DTO\VO相关说明
1. PO (Persistent Object):是指持久化对象,通常是指与数据库表结构一一对应的Java类,用于将数据从数据库中取出并映射为Java对象.PO通常包含了数据表中的字段和相应的get ...
- PO\POJO\DTO\VO
1.PO:persistant object 持久对象,是与数据库中的表相映射的java对象,最形象的理解就是一个PO就是数据库中的一条记录. 2.POJO: POJO:plain ordinary ...
- SpringBoot框架分层(View层、Controller层、Service层、Mapper层、pojo层)
SpringBoot框架一般分为View层.Controller层.Service层.Mapper层.pojo层. View层:视图层,根据接到的数据展示页面给用户 Controller层:响应用户需 ...
- 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 ...
- SpringBoot框架中的DAO(mapper)层、Entity层、Service层、Controller层
Entity层:实体层 数据库在项目中的类 Entity层是实体层,也就是所谓的model,也称为pojo层,是数据库在项目中的类,该文件包含实体类的属性和对应属性的set.get方法: DAO层: ...
- 三层架构编程、DAO层、Entity层、Service层、Controller层
什么是三层架构编程: 本质上所有的项目(应用程序)都是需要和用户交互,然后产生数据,对数据进行处理,最后将数据存储到硬盘这么个过程 在编程中,可以将这个过程分一下层次,最初只分两层,用户层和数据层,但 ...
- 关于service层,dao层,controller层
SSM是sping+springMVC+mybatis集成的框架. MVC即model view controller. model层=entity层.存放我们的实体类,与数据库中的属性值基本保持一致 ...
- Dao层,Mapper层,controller层,service层,model层都有什么作用
原文链接 SSM是sping+springMVC+mybatis集成的框架. MVC即model view controller. model层=entity层. 存放我们的实体类,与数据库中的属性值 ...
最新文章
- ATS 5.3.0缓存架构
- 经验总结 | 重构让你的代码更优美和简洁
- Asp.net Mvc Enum 扩展
- worpress安装mysql连不上_wordpress安装时连接不上MySQL8.0(已解决)Windows
- 编译期java_java编译期和运行期
- 又发现一款牛逼的 API 敏捷开发工具
- [CodePlus2017]晨跑
- c#点击按钮调出另一个窗体_在类库或winform项目中打开另一个winform项目窗体的方法...
- Transact-SQL 示例 - 触发器的基础及应用
- BZOJ2438[中山市选2011] 杀人游戏
- STM32驱动WS2811
- 初探数据湖(Data Lake),到底有什么用?让我们来一窥究竟...
- 电大考试计算机应用基础考试试题,电大计算机应用基础网络教育统考考试(2013真题卷)...
- jellyfin 字幕方框问题
- 科大讯飞刘庆峰:AI要改变世界,算法、大数据、行业专家缺一不可
- 俄语入门难不难-大舌音难学吗-弹舌难学吗
- 【SpringBoot-3】Lombok使用详解
- python123查找指定字符输入m_Pyton学习—字符串
- Ringbuffer 范例
- linux安装mysql教程
热门文章
- 根据FOV和图像大小计算相机内参[Python]
- winpe 安装 win7 过程问题综述
- 将静态html网页部署至华为云
- 【云速建站】域名配置指导
- java compile方法_Java中带有示例的模式compile()方法
- 关于启动报错:Field xxxMapper in com.xxx.service.impl.xxxServiceImpl required a bean of type的解决方案
- win10+GeForce 940mx安装cuda
- web安全主要包括哪些方面的安全
- 《怦然心动》(Flipped) 观后感
- 多目标进化算法(二)——非支配排序/NSGA-II