接口的参数是对象还是条件

后台操作无非是增删改查,但是怎么个增删改查还是要看需求达到不同效果,传的参数可以看个人喜好吧,关于Mybatis,我喜欢是将一个实体类对象当参数,前端传入的参数实体类中都有字段是对应上的,前端想要什么参数传入对象里都有,他想传哪个字段就传哪个字段不需要后台在参数中列好


@PostMapping("/add")
public Result<PmProject> add(PmProject pmProject) {
    return pmProjectService.add(pmProject);
}
前提是,数据库中这张表的非空字段前端必须传入,否则无法写入到数据库中的

传对象的话,在Mybatis的XML中就需要把类型都给出去

<update id="sortDown" parameterType="com.uhope.uip.item.domain.MdDrainageBasin">

这里要说一下 XML中增删改查的标签中的 resultMap和resultType

resultMap和resultType都是返回的结果集,resultMap的话需要在XML中写好表中的字段,而且要对应上

<resultMap id="BaseResultMap" type="com.uhope.uip.item.domain.MdDrainageBasin">

  <id column="id" jdbcType="INTEGER" property="id" />
  <result column="row_version" jdbcType="VARCHAR" property="rowVersion" />
  <result column="basin_name" jdbcType="VARCHAR" property="basinName" />
  <result column="basin_code" jdbcType="VARCHAR" property="basinCode" />
  <result column="over_view" jdbcType="VARCHAR" property="overView" />
  <result column="sort_order" jdbcType="INTEGER" property="sortOrder" />
  <result column="remark" jdbcType="VARCHAR" property="remark" />
  <result column="state" jdbcType="INTEGER" property="state" />
  <result column="create_id" jdbcType="VARCHAR" property="createId" />
  <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
  <result column="modify_id" jdbcType="VARCHAR" property="modifyId" />
  <result column="modify_time" jdbcType="TIMESTAMP" property="modifyTime" />
</resultMap>

resultType的话不需要,只需要在标签中把实体类的路径对应上即可
<select id="findByQuery" resultType="com.uhope.uip.item.domain.MdDrainageBasin">

resultMap的话就要在标签中选中XML写好的对应字段
<select id="findByQuery" resultMap="BaseResultMap">

基本上,这种查询的都要这种返回结果集的( resultType  或者resultMap ),不需要 parameterType,因为parameterType是传参类型,只有update/delete/insert的时候需要

回到刚才的话题,parameterType的类型就需要注意了,刚说过,只有更新,删除,插入的时候需要用到,那如果你传的是一个对象的话,那你parameterType类型就要是一个对象路径
<update id="sortUp" parameterType="com.uhope.uip.item.domain.MdDrainageBasin">

那如果是几个参数而已的话,这里推荐使用HashMap
<update id="sortUp" parameterType="java.util.HashMap">
Map可以存放很多类型,八大基础类型还是放一个对象都是可以的,使用Map的话,Mapper接口参数也要改成Map
void sortDown(HashMap<String,Object>map);
PS:请注意返回类型,使用List还是使用对象返回看时机,多条用List,单条用对象,在Mapper中自己选择
List<MdDrainageBasin> findByBasin();
MdWaterSystem find(String basin_code);
Mapper后在业务处理层中就要指定参数即可
public Result sortOrder(Integer page, Integer size, @RequestParam Integer sortOrder,@RequestParam Integer status) {
HashMap<String,Object> map = new HashMap<>();
map.put("sortOrder",sortOrder);
相反若是对象的话放上对象
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值