qq_40619811 2022-05-19 21:19 采纳率: 89.8%
浏览 373
已结题

springboot+jdbcTemplate出现空指针错误

你好,我使用springboot的时候,使用的是jdbcTemplate(mybatis太麻烦,不用了),在执行查询语句时,出现了空指针错误,我的IDEA报的空指针错误是这样的
java.lang.NullPointerException: null
这是为什么呢?
附代码
bean代码

package com.example.demo.bean;

public class Cangpin {
    private long xuhao;
    private String path2;

    public String getPath2() {
        return path2;
    }

    public void setPath2(String path2) {
        this.path2 = path2;
    }

    private String sys;

    public long getXuhao() {
        return xuhao;
    }

    public void setXuhao(long xuhao) {
        this.xuhao = xuhao;
    }



    public String getSys() {
        return sys;
    }

    public void setSys(String sys) {
        this.sys = sys;
    }

    public String getCangpinname() {
        return cangpinname;
    }

    public void setCangpinname(String cangpinname) {
        this.cangpinname = cangpinname;
    }

    public double getYuanjia() {
        return yuanjia;
    }

    public void setYuanjia(double yuanjia) {
        this.yuanjia = yuanjia;
    }

    public double getXianjia() {
        return xianjia;
    }

    public void setXianjia(double xianjia) {
        this.xianjia = xianjia;
    }

    public int getNum() {
        return num;
    }

    public void setNum(int num) {
        this.num = num;
    }

    private String cangpinname;
    private double yuanjia;
    private double xianjia;
    private int num;
}

这是controller代码

package com.example.demo.controller;

import com.example.demo.bean.Cangpin;
import com.example.demo.dao.CangpinDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class CangpinController {
    @Autowired
    private CangpinDao cpDao;
    @RequestMapping("/save")
    public String getCpDao() {
        Cangpin cp=new Cangpin();
        cp.setXuhao(1);
        cp.setPath2("da");
        cp.setSys("ss");
        cp.setCangpinname("银币");
        cp.setYuanjia(188.0);
        cp.setXianjia(18.0);
        cp.setNum(8844);
        cpDao.save(cp);
        return "插入成功";
    }
    @RequestMapping("/check")
    public void getCheck()
    {
        JdbcTemplate jdbcTemplate=null;
        String sql="select * from cangpin where xuhao =?";
        Cangpin cp = jdbcTemplate.queryForObject(sql,new BeanPropertyRowMapper<Cangpin>(Cangpin.class),1);
        System.out.println(cp.getCangpinname());
    }
}


这是DAO层代码

package com.example.demo.dao;

import com.example.demo.bean.Cangpin;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;

import javax.annotation.Resource;
import java.util.ArrayList;


@Repository
public class CangpinDao {
    @Resource(name="jdbcTemplate")
    @Autowired
    private JdbcTemplate jdbcTemplate;
    public void save(Cangpin cangpin){
        jdbcTemplate.update("insert into cangpin(xuhao,path2,sys,cangpinname,yuanjia,xianjia,num) values (?,?,?,?,?,?,?)",
                cangpin.getXuhao(),cangpin.getPath2(),cangpin.getSys(),cangpin.getCangpinname(),
                cangpin.getYuanjia(),cangpin.getXianjia(),cangpin.getNum());
    }
}

我启动springboot,是能够正常启动的,但是输入相应的地址路径,就会出现空指针异常,这是为什么呢?

  • 写回答

2条回答 默认 最新

  • 憨憨撸码 2022-05-20 09:53
    关注

    getCheck 方法的jdbcTemplate是个空对象,怎么可能调到方法,将JdbcTemplate jdbcTemplate提出方法外,进行自动注入

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月11日
  • 已采纳回答 6月3日
  • 创建了问题 5月19日

悬赏问题

  • ¥15 用verilog实现tanh函数和softplus函数
  • ¥15 求京东批量付款能替代天诚
  • ¥15 slaris 系统断电后,重新开机后一直自动重启
  • ¥15 51寻迹小车定点寻迹
  • ¥15 谁能帮我看看这拒稿理由啥意思啊阿啊
  • ¥15 关于vue2中methods使用call修改this指向的问题
  • ¥15 idea自动补全键位冲突
  • ¥15 请教一下写代码,代码好难
  • ¥15 iis10中如何阻止别人网站重定向到我的网站
  • ¥15 滑块验证码移动速度不一致问题