淘淘相关DTO

 

result 用于Controller层返回值或Controller于service层之间返回值

package com.taotao.common.pojo;

import java.util.List;

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;

/**
 * 淘淘商城自定义响应结构
 */
public class TaotaoResult {

    // 定义jackson对象
    private static final ObjectMapper MAPPER = new ObjectMapper();

    // 响应业务状态
    private Integer status;

    // 响应消息
    private String msg;

    // 响应中的数据
    private Object data;

    public static TaotaoResult build(Integer status, String msg, Object data) {
        return new TaotaoResult(status, msg, data);
    }

    public static TaotaoResult ok(Object data) {
        return new TaotaoResult(data);
    }

    public static TaotaoResult ok() {
        return new TaotaoResult(null);
    }

    public TaotaoResult() {

    }

    public static TaotaoResult build(Integer status, String msg) {
        return new TaotaoResult(status, msg, null);
    }

    public TaotaoResult(Integer status, String msg, Object data) {
        this.status = status;
        this.msg = msg;
        this.data = data;
    }

    public TaotaoResult(Object data) {
        this.status = 200;
        this.msg = "OK";
        this.data = data;
    }

//    public Boolean isOK() {
//        return this.status == 200;
//    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public Object getData() {
        return data;
    }

    public void setData(Object data) {
        this.data = data;
    }

    /**
     * 将json结果集转化为TaotaoResult对象
     * 
     * @param jsonData json数据
     * @param clazz TaotaoResult中的object类型
     * @return
     */
    public static TaotaoResult formatToPojo(String jsonData, Class<?> clazz) {
        try {
            if (clazz == null) {
                return MAPPER.readValue(jsonData, TaotaoResult.class);
            }
            JsonNode jsonNode = MAPPER.readTree(jsonData);
            JsonNode data = jsonNode.get("data");
            Object obj = null;
            if (clazz != null) {
                if (data.isObject()) {
                    obj = MAPPER.readValue(data.traverse(), clazz);
                } else if (data.isTextual()) {
                    obj = MAPPER.readValue(data.asText(), clazz);
                }
            }
            return build(jsonNode.get("status").intValue(), jsonNode.get("msg").asText(), obj);
        } catch (Exception e) {
            return null;
        }
    }

    /**
     * 没有object对象的转化
     * 
     * @param json
     * @return
     */
    public static TaotaoResult format(String json) {
        try {
            return MAPPER.readValue(json, TaotaoResult.class);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * Object是集合转化
     * 
     * @param jsonData json数据
     * @param clazz 集合中的类型
     * @return
     */
    public static TaotaoResult formatToList(String jsonData, Class<?> clazz) {
        try {
            JsonNode jsonNode = MAPPER.readTree(jsonData);
            JsonNode data = jsonNode.get("data");
            Object obj = null;
            if (data.isArray() && data.size() > 0) {
                obj = MAPPER.readValue(data.traverse(),
                        MAPPER.getTypeFactory().constructCollectionType(List.class, clazz));
            }
            return build(jsonNode.get("status").intValue(), jsonNode.get("msg").asText(), obj);
        } catch (Exception e) {
            return null;
        }
    }

}

 

easyUI 分页列表

package com.taotao.common.pojo;

import java.util.List;

public class EUDataGridResult {

    private long total;
    private List<?> rows;
    public long getTotal() {
        return total;
    }
    public void setTotal(long total) {
        this.total = total;
    }
    public List<?> getRows() {
        return rows;
    }
    public void setRows(List<?> rows) {
        this.rows = rows;
    }
    
}

 

easyUI 树 返回值

package com.taotao.common.pojo;

public class EUTreeNode {

    private Long id;
    private String text;
    private String state;
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getText() {
        return text;
    }
    public void setText(String text) {
        this.text = text;
    }
    public String getState() {
        return state;
    }
    public void setState(String state) {
        this.state = state;
    }
    
    
}

 

转载于:https://www.cnblogs.com/libin6505/p/9770800.html

数据传输对象(DTO)是一种设计模式,用于在软件应用系统的不同层次之间传输数据。它将数据封装成普通的 JavaBeans,类似信使,是同步系统中的 Message [^1]。 DTO 的目标往往是配合数据访问对象从数据库中检索数据。它与数据交互对象或数据访问对象之间的差异在于,DTO 除了存储和检索数据(通过访问器和存取器)之外,不具有任何行为 [^2][^3]。 在传统的系统(企业 JavaBeans)体系结构中,数据传输目标服务具有多重目的。一是解决 pre - ejb 实体不可序列化的问题;二是含蓄地定义一个组装阶段,在返回控制到表现层之前,将所有要使用的数据提取并整理到数据传输目标中;三是某些应用层不应能够访问底层的数据访问对象,从而避免数据被改变 [^5]。 以下是一个简单的 C# 示例,展示了如何使用 DTO 进行数据传输 [^4]: ```csharp using AutoMapper; using System; // 实体模型 class UserInfo { public string Name { get; set; } public int Age { get; set; } public string Address { get; set; } public DateTime Birth { get; set; } } // DTO class UserInfo_DTO { public string Name { get; set; } public int Birth_Year { get; set; } public int Birth_Month { get; set; } } class Program { static void Main(string[] args) { Mapper.Initialize(m => m.CreateMap<UserInfo, UserInfo_DTO>() .ForMember(dest => dest.Birth_Year, opt => opt.MapFrom(src => src.Birth.Year)) .ForMember(dest => dest.Birth_Month, opt => opt.MapFrom(src => src.Birth.Month))); // 实体模型实例化 UserInfo user = new UserInfo(); user.Name = "xiaoqiu"; user.Age = 21; user.Address = "湖北襄阳"; user.Birth = new DateTime(1995, 8, 18); // 将实体模型映射到 DTO UserInfo_DTO user_dto = Mapper.Map<UserInfo, UserInfo_DTO>(user); Console.WriteLine(user_dto.Name); Console.WriteLine("出生年:" + user_dto.Birth_Year + "年" + user_dto.Birth_Month + "月"); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值