java 把表数据封装_Java秒杀简单设计三:数据封装类

上一篇https://www.cnblogs.com/taiguyiba/p/9828984.html 整合了数据库表和Dao层代码

这一篇继续设计数据封装类:

涉及到获取秒杀地址,查询,返回秒杀结果等内容

1.数据封装:

1.1 秒杀地址封装类Exposer

创建Exposer类,用于封装秒杀地址:如果开启秒杀,则返回状态、秒杀地址md5加密值和ID,如果秒杀未开启,则返回开始时间、结束时间等。

Exposer.java

package com.seckill.dto;public classExposer {//是否开启秒杀

privateboolean exposed;//md5加密

privateString md5;//id

private longseckillId;//now time

private longnow;//start time

private longstart;//end time

private longend;public Exposer(boolean exposed, String md5,longseckillId) {

super();this.exposed =exposed;this.md5 =md5;this.seckillId =seckillId;

}public Exposer(boolean exposed, long now, long start, long end,longseckillId) {

super();this.exposed =exposed;this.now =now;this.start =start;this.end =end;this.seckillId =seckillId;

}public Exposer(boolean exposed, longseckillId) {

super();this.exposed =exposed;this.seckillId =seckillId;

}publicboolean isExposed() {returnexposed;

}public voidsetExposed(boolean exposed) {this.exposed =exposed;

}publicString getMd5() {returnmd5;

}public voidsetMd5(String md5) {this.md5 =md5;

}public longgetSeckillId() {returnseckillId;

}public void setSeckillId(longseckillId) {this.seckillId =seckillId;

}public longgetNow() {returnnow;

}public void setNow(longnow) {this.now =now;

}public longgetStart() {returnstart;

}public void setStart(longstart) {this.start =start;

}public longgetEnd() {returnend;

}public void setEnd(longend) {this.end =end;

}

@OverridepublicString toString() {return "Exposer [exposed=" + exposed + ", md5=" + md5 + ", seckillId=" + seckillId + ", now=" + now + ", start="

+ start + ", end=" + end + "]";

}

}

1.2 秒杀结果封装类 SeckillExecution

SeckillExecution主要用于封装秒杀结果

package com.seckill.dto;

import com.seckill.entity.SuccessKilled;

import com.seckill.enums.SeckillStateEnum;/**

* 数据传递

* 其中并没有添加枚举类型,转换成json有问题

* @author lll

**/

public classSeckillExecution {private longseckillId;private intstate;privateString stateInfo;privateSuccessKilled successKilled;public SeckillExecution(longseckillId,SeckillStateEnum seckillStateEnum, SuccessKilled successKilled) {

super();this.seckillId =seckillId;this.state =seckillStateEnum.getState();this.stateInfo =seckillStateEnum.getStateInfo();this.successKilled =successKilled;

}public SeckillExecution(longseckillId, SeckillStateEnum seckillStateEnum) {

super();this.seckillId =seckillId;this.state =seckillStateEnum.getState();this.stateInfo =seckillStateEnum.getStateInfo();

}publicSeckillExecution(SeckillStateEnum seckillStateEnum) {

super();this.state =seckillStateEnum.getState();this.stateInfo =seckillStateEnum.getStateInfo();

}public longgetSeckillId() {returnseckillId;

}public void setSeckillId(longseckillId) {this.seckillId =seckillId;

}public intgetState() {returnstate;

}public void setState(intstate) {this.state =state;

}publicString getStateInfo() {returnstateInfo;

}public voidsetStateInfo(String stateInfo) {this.stateInfo =stateInfo;

}publicSuccessKilled getSuccessKilled() {returnsuccessKilled;

}public voidsetSuccessKilled(SuccessKilled successKilled) {this.successKilled =successKilled;

}

@OverridepublicString toString() {return "SeckillExecution [seckillId=" + seckillId + ", state=" + state + ", stateInfo=" +stateInfo+ ", successKilled=" + successKilled + "]";

}

}

1.3 前端请求结果封装类 SeckillResult

SeckillResult 用于封装前端请求的结果:

package com.seckill.dto;/**

* 所有ajax请求封装

* @author mayn

**/

public class SeckillResult{privateboolean success;privateT data;privateString error;publicSeckillResult(boolean success, T data) {

super();this.success =success;this.data =data;

}publicSeckillResult(boolean success, String error) {

super();this.success =success;this.error =error;

}publicboolean isSuccess() {returnsuccess;

}public voidsetSuccess(boolean success) {this.success =success;

}publicT getData() {returndata;

}public voidsetData(T data) {this.data =data;

}publicString getError() {returnerror;

}public voidsetError(String error) {this.error =error;

}

}

1.4 常量数据字典 SeckillStateEnum

SeckillStateEnum用于封装数据字典:

package com.seckill.enums;/**

* 使用枚举标示常量数据字典

* @author mayn

**/

public enumSeckillStateEnum {

SUCCESSD(1,"秒杀成功"),

END(0,"秒杀结束"),

REPEAT_KILL(-1,"重复秒杀"),

INNER_ERROR(-2,"内部错误"),

DATA_REWRITE(-3,"数据篡改")

;private intstate;privateString stateInfo;private SeckillStateEnum(intstate, String stateInfo) {this.state =state;this.stateInfo =stateInfo;

}public intgetState() {returnstate;

}publicString getStateInfo() {returnstateInfo;

}public static SeckillStateEnum stateOf(intindex) {for(SeckillStateEnum state : values()) {if(state.getState() ==index) {returnstate;

}

}return null;

}

}

1.5 封装异常类

RepeatKillException 重复秒杀异常类

package com.seckill.exception;public classRepeatKillException extends RuntimeException {publicRepeatKillException(String message, Throwable cause) {

super(message, cause);//TODO Auto-generated constructor stub

}publicRepeatKillException(String message) {

super(message);//TODO Auto-generated constructor stub

}

}

SeckillCloseException 秒杀关闭异常类

package com.seckill.exception;public classSeckillCloseException extends RuntimeException {publicSeckillCloseException(String message, Throwable cause) {

super(message, cause);//TODO Auto-generated constructor stub

}publicSeckillCloseException(String message) {

super(message);//TODO Auto-generated constructor stub

}

}

SeckillException 秒杀异常类

package com.seckill.exception;public classSeckillException extends RuntimeException {publicSeckillException(String message, Throwable cause) {

super(message, cause);//TODO Auto-generated constructor stub

}publicSeckillException(String message) {

super(message);//TODO Auto-generated constructor stub

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值