慧体请求数据的流程

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

第一步: 把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 层的 业务逻辑处理。












原文地址:https://www.cnblogs.com/murong/p/5919243.html