• 慧体请求数据的流程


       按照慧体的 代码格式 创建一个接口的整体流程:

    第一步: 把sql写出来。

      根据需求 写 mapper 的接口,并在mapper.xml 里面实现,规定传入参数和输出参数的类型。根据需求写sql判断是否为空。

    这个是接口:
    public interface UserRoleExtMapper {

    List<RoleInfo> getRoleInfo(@Param("userId")String userId);
    }

     如果这个返回的字段很多的话就建议 用 resultMap 标签创建一个 map   来接收返回对象。在,mybatis  里面有两种返回的参数 resultType 和resultMap 后者可以用前面定义的resultMap 对象,后者可以用一个实体类作为对象接收返回数据,如果是返回的集合List ,就需要把 list集合的对象作为返回的resultType ,当然也可以用sql标签

    <sql id="Example_Where_Clause" >
    <where >
    <foreach collection="oredCriteria" item="criteria" separator="or" >
    <if test="criteria.valid" >
    <trim prefix="(" suffix=")" prefixOverrides="and" >
    <foreach collection="criteria.criteria" item="criterion" >
    <choose >
    <when test="criterion.noValue" >
    and ${criterion.condition}
    </when>
    <when test="criterion.singleValue" >
    and ${criterion.condition} #{criterion.value}
    </when>
    <when test="criterion.betweenValue" >
    and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
    </when>
    <when test="criterion.listValue" >
    and ${criterion.condition}
    <foreach collection="criterion.value" item="listItem" open="(" close=")" separator="," >
    #{listItem}
    </foreach>
    </when>
    </choose>
    </foreach>
    </trim>
    </if>
    </foreach>
    </where>
    </sql>
    然后在以后的sql 里面添加:

    <select id="selectByExampleWithBLOBs" resultMap="ResultMapWithBLOBs" parameterType="com.hupu.smart.game.platform.domain.user.FeedbackExample" >
    select
    <if test="distinct" >
    distinct
    </if>
    <include refid="Base_Column_List" />
    ,
    <include refid="Blob_Column_List" />
    from feedback
    <if test="_parameter != null" >
    <include refid="Example_Where_Clause" />
    </if>
    <if test="orderByClause != null" >
    order by ${orderByClause}
    </if>
    </select>

    第二步: 创建service 层的接口和实现;



    在创建这一层的接口的时候要充分的考虑到 输入参数和 输出参数的类型,是不是有更简单的操作方式, 能不建实体类就尽量不建。一般情况下service 层的代码是要 处理业务逻辑的,所以这一层比较大。




    第三步: 创建controller (控制层);

    慧体的控制层有个特点,就是 输入的参数都是 用json ,然后用一个实体类来封装请求参数,并把这个请求参数通过一个 util copy 成一service层的 实体类
    BeanUtils.copyProperties(req, reqDto);

    然后调用service 层的 方法 并把对象参数传递过去,service 层就开始业务逻辑的判断操作。并把返回值带到 控制层。


    控制层接收返回值,并给做出反应

    整个请求结束。

    整个过程中最麻烦的是 service 层的 业务逻辑处理。










    
    
    
  • 相关阅读:
    Spring Boot 定时+多线程执行
    Spring Boot + Vue Element实现Excel文件上传、解析、下载(含完整实现过程)
    立个flag,2020年比2019年产出提升10倍
    《Google工作法》读书笔记
    学习Go语言(二)快速入门
    学习Go语言(一)环境安装及HelloWorld
    WPF 自定义控件缩放
    上、下位机软件通信时,结构体的内存对齐问题
    C 语言能不能在头文件定义全局变量?
    注释格式
  • 原文地址:https://www.cnblogs.com/murong/p/5919243.html
Copyright © 2020-2023  润新知