q2617426
无感五
采纳率73.3%
2019-03-28 01:44 浏览 1.2k
已采纳

这段代码Service运行会报空指针异常

160

代码如下

//查询
    @ApiOperation(value="船东发布展示信息列表", notes="船东发布展示信息列表的接口")
    @RequestMapping(value = "/findContent" , method = RequestMethod.POST)
    @ApiImplicitParams({
            @ApiImplicitParam(name="startDate", value="开始时间", required=false),
            @ApiImplicitParam(name="endDate", value="结束时间", required=false),
            @ApiImplicitParam(name="startLoading", value="最小吨数", required=false),
            @ApiImplicitParam(name="endLoading", value="最大吨数", required=false),
            @ApiImplicitParam(name="typeShip", value="船舶类型", required=false),
            @ApiImplicitParam(name="emptyPort", value="港口", required=false)
    })
    public SysResult find(Date startDate,Date endDate , String startLoading , String endLoading,
                             Long typeShip , Long emptyPort){
        try{
            EntityWrapper<ShipRelease> wrapper = new EntityWrapper<>();
            //只能状态为发布中的数据展示出来
            wrapper.where( "state = {0}  ", 4 );
            //筛选时间日期
            if(startDate != null && endDate != null) {
                wrapper.where( "empty_date >= {0}  ", startDate );
                wrapper.and( " empty_date <= {0}", endDate );
            }
            //筛选两数值之剑
            if(startLoading != null && endLoading != null) {
            wrapper.where( "tonnage_loading >= {0}  ", startLoading );
            wrapper.and( " tonnage_loading <= {0}", endLoading );
            }
            //筛选类型1
            if(typeShip != null) wrapper.where("type_ship={0}", typeShip);
            //筛选类型2
            if(emptyPort != null) wrapper.where("empty_port={0}", emptyPort);
            wrapper.setSqlSelect("id, title,empty_date,aircraft_sky,tonnage_loading,type_ship");
            List<ShipRelease> shipReleaseList =  webShipownerReleaseShowMapper.selectList( wrapper );
            return SysResult.ok(shipReleaseList);
        }catch (Exception e){
            e.printStackTrace();
            return SysResult.build(201,"查询失败");
        }
    }

这段代码我写在Controller上是可以运行的,但是我想写到Service上,现在问题是我写到Service上的话会报空指针异常,请问要如何解决这个问题呢

同一问题

使用框架是spring-boot+mybatisPlus

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

5条回答 默认 最新

  • 已采纳
    q2617426 无感五 2019-04-29 05:26

    如果,想现在这样写在Service上是接收不到这个传递得传输得,所以新建以个po层作为中专,先把数据传输到po层,然后在从po层上获取
    这样就不会报空指针异常了

    点赞 评论 复制链接分享
  • dashicaineng 蔡能教授,网站特聘专家 2019-03-28 01:51

    public SysResult find(Date startDate,Date endDate , String startLoading , String endLoading,
    Long typeShip , Long emptyPort){
    try{
    EntityWrapper wrapper = new EntityWrapper<>();
    //只能状态为发布中的数据展示出来
    wrapper.where( "state = {0} ", 4 );
    //筛选时间日期
    if(startDate != null && endDate != null) {
    wrapper.where( "empty_date >= {0} ", startDate );
    wrapper.and( " empty_date <= {0}", endDate );
    }
    //筛选两数值之剑
    if(startLoading != null && endLoading != null) {
    wrapper.where( "tonnage_loading >= {0} ", startLoading );
    wrapper.and( " tonnage_loading <= {0}", endLoading );
    }
    //筛选类型1
    if(typeShip != null) wrapper.where("type_ship={0}", typeShip);
    //筛选类型2
    if(emptyPort != null) wrapper.where("empty_port={0}", emptyPort);
    wrapper.setSqlSelect("id, title,empty_date,aircraft_sky,tonnage_loading,type_ship");
    List shipReleaseList = webShipownerReleaseShowMapper.selectList( wrapper );
    return SysResult.ok(shipReleaseList);
    }catch (Exception e){
    e.printStackTrace();
    return SysResult.build(201,"查询失败");
    }
    把这个代码放在service里

    把wrapper对应的包也放进去

    点赞 评论 复制链接分享
  • qq_18727699 qq_18727699 2019-03-28 08:46

    你service里的代码怎么写的,哪里报空指针异常,有报错信息吗?是webShipownerReleaseShowMapper这里报空指针异常吗?最好贴出来看一下

    点赞 评论 复制链接分享
  • jim_LoveQ Jim~LoveQ 2019-03-28 15:23

    把报错信息贴出来,具体是哪个参数报空指针了,这样才好分析

    点赞 评论 复制链接分享
  • weixin_42402590 星辰,大海 2019-03-29 15:12

    List shipReleaseList = webShipownerReleaseShowMapper.selectList( wrapper );

    这行代码有问题,在service里面运行他们,webShipownerReleaseShowMapper拿不到spring容器对象,所以就是空了。

    点赞 评论 复制链接分享

相关推荐