如何根据名称模糊查询对应的主键

今天在开发中遇到一个需求,让我根据前端传来的名称来查询对应的id,并且需要模糊查询。

 传入参数:{

        "corporateName": "xxx",

         }

相应格式:[

   {

        "corporateName": "xxx",

        "cid": xxx

    },

    {

        "corporateName": "xxx",

        "cid": xxx

    }........

我的思路是,传入的名称是string类型的,我就需要用string类型的字段来接受,需要返回值是多个

对象,并且每个对象只需要原表的两个字段我就创建一个dto进行返回。还需要模糊查询我就在xml进行sql处理。下面附源码:

Dto:

/**
 * dto:企业信息
 */
@Data
public class CorporateInfoCidDto {

    /** 企业ID */
    private Long cId ;

    /** 企业名称 */
    private String corporateName ;
}

  Controller:

 /**
     *  根据企业名称查询对应的Cid
     * @param corporateName
     * @return
     */
    @GetMapping("/findByCidName")
    public List<CorporateInfoCidDto> getCid(String corporateName){
        return jsCorporateInfoService.findByCidName(corporateName);
    }

Service:

 /**
     *  根据企业名称查询对应的Cid
     * @param corporateName
     * @return
     */
    List<CorporateInfoCidDto> findByCidName(String corporateName);

 ServiceImpl:


    /**
     * 根据企业名称查询对应的Cid
     *
     * @param corporateName
     * @return
     */
    @Override
    public List<CorporateInfoCidDto> findByCidName(String corporateName) {
        //根据名称获取对应的字段信息
        List<JsCorporateInfo> byCidName = corporateInfoMapper.findByCidName(corporateName);
        //创建一个list容器来装多个不同的cid
        List<CorporateInfoCidDto> cidDtos = new ArrayList<>();
        //获取cid并且给容器对象赋值
        for (JsCorporateInfo info : byCidName) {
            CorporateInfoCidDto corporateinfoCidDto = new CorporateInfoCidDto();
            corporateinfoCidDto.setCorporateName(info.getCorporateName());
            corporateinfoCidDto.setCId(info.getcId());
            cidDtos.add(corporateinfoCidDto);
        }
        return cidDtos;
    }

Mapper:

  /**
     * 根据企业名称查询对应的Cid
     *
     * @param corporateName
     * @return
     */
    List<JsCorporateInfo> findByCidName(String corporateName);

MapperXml:

  <!-- 根据企业名称查询对应的字段信息 -->
    <select id="findByCidName" resultMap="JsCorporateInfoMap">
        select c_id,corporate_name from js_corporate_info where corporate_name like concat('%', #{corporateName}, '%')
    </select>

测试结果:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值