每当我尝试在mysql数据库中插入数据时(在springboot java上),autowired存储库就会收到nullpointerexception错误

anauzrmj  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(263)

所以我一直在尝试在我自己创建的另一个类中添加一些新数据(不是在控制器下面的默认类中)
下面是代码来解释:
主控制器.java

package hello;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import hello.User;
import hello.UserRepository;

@Controller    
@RequestMapping(path="/demo") 
public class MainController {
    @Autowired 
    private UserRepository userRepository;
    @GetMapping(path="/add")
    public @ResponseBody String addNewUser () { 
        pge j = new pge();
        j.pgl();    //here's the code to add data in mysql
        return "Saved";
    }
}

下面是我的pge.java中的代码

package hello;

import org.springframework.beans.factory.annotation.Autowired;

public class pge {
    @Autowired
    private UserRepository userRepository;
    public void pgl() { 
        User n = new User();
        n.setName("sarah");
        n.setEmail("sarah@gmail.com");
        userRepository.save(n); 
    }
}

每次我打开localhost:8080/demo/add ,在web中只给出白标签错误页,在java中给出空错误页。我只想在我自己的类中的数据库(mysql)中添加新数据。

knsnq2tg

knsnq2tg1#

作为 pge 对象不受spring管理, autowired 注解将不注入 UserRepository 豆子。我建议你换衣服 pge 到Spring。

@Service
public class pge {

   @Autowired
   private UserRepository userRepository;

   ...
}

在主控制器中

@Controller    
@RequestMapping(path="/demo") 
public class MainController {

   @Autowired 
   private UserRepository userRepository;

   @Autowired 
   private pge pge;

   @GetMapping(path="/add")
   public @ResponseBody String addNewUser () { 
    pge.pgl();    //here's the code to add data in mysql
    return "Saved";
   }
}

相关问题