MySQL 不显示数据库中的用户,即使他们存在

MySQL does not show the Users inside the database even if they are present

我对 MySql 有一个奇怪的问题。我用 Spring-Boot MySql 做了一个小项目,但是当我尝试向数据库添加一个新用户时,它给了我成功消息,但随后会在 mysql [=32 上看到=] 即使有,数据库中也不会出现任何内容(因为使用 Get 它实际上找到了插入的用户)。现在我不明白问题是什么。我附上应用程序。我的 Spring 项目的属性。

每次我要求得到它returns这个MESSAGE:

D:\>curl -G localhost:8080/demo/first -d name=Biagio
{"name":"Biagio","timestamp":"2020-10-05T08:54:18.623+00:00","email":"biagio@gmal.com","surname":"Biagio2"}

我的数据库:

+----+------------------------+----------+----------------------------+---------+
| id | email                  | name     | stmp                       | surname |
+----+------------------------+----------+----------------------------+---------+
| 32 | mirketto90@yahoo.it    | Mirko    | 2020-10-01 12:31:47.827000 | NULL    |
| 36 | biagio@gmail.com       | Biagio   | 2020-10-01 16:31:31.687000 | Vaso    |
| 37 | biagio@gmail.com       | Biagio   | 2020-10-01 16:31:50.077000 | Vaso    |
| 38 | biagio@gmail.com       | Biagio   | 2020-10-01 18:35:45.992000 | Vaso    |
| 39 |                        | Mirko    | 2020-10-02 13:24:05.840000 | Vaso    |
| 40 | mirkoparioli@gmail.com | Mirko    | 2020-10-02 13:24:23.383000 | Vaso    |
| 47 | giovanni@gmal.com      | Giovanni | 2020-10-05 12:11:05.997000 | John    |
+----+------------------------+----------+----------------------------+---------+

我确定我使用的是正确的数据库 (db_example),这是我的

@SpringBootApplication
public class AccessingDataMysqlApplication {

  public static void main(String[] args) {
    SpringApplication.run(AccessingDataMysqlApplication.class, args);
  }

}
@RestController@RequestMapping("/demo")
public class MainController {

  @Autowired
  private UserService userService;

  @Transactional
  //@RequestMapping(value = "/add/", method = RequestMethod.POST)
  @PostMapping(path = "/demo/add")
  public String addNewUser(@PathVariable("name") String name, @PathVariable("email") String email, @PathVariable("surname") String surname) {

    UserDto n = new UserDto();
    n.setName(name);
    n.setSurname(surname);
    n.setEmail(email);
    userService.create(n);
    return "User Saved in DB";
  }

  @SuppressWarnings({
    "rawtypes",
    "unchecked"
  })
  //@RequestMapping(value = "/fetchUser/{name}", method = RequestMethod.GET)
  @GetMapping("/demo/first")
  public ResponseEntity < UserDto > fetchUser(@PathVariable("name") String name) {
    System.out.println(name);

    try {
      UserDto namefound = userService.findFirstByName(name);
      System.out.println("Name found");
      ResponseEntity < UserDto > user = new ResponseEntity < UserDto > (namefound, HttpStatus.OK);
      return user;
    } catch(NoResultException ne) {
      System.out.println("User not found");
      return new ResponseEntity("User not found with name : " + name, HttpStatus.NOT_FOUND);
    }

  }
}
  1. 用于将用户添加到数据库
    修改您在 PostMapping

    中的路径

    来自@PostMapping(path = "/demo/add")
    @PostMapping(path = "/demo/add/{name}/{email}/{surname}")

    这是因为在您的 addNewUser 方法中您接受姓名、电子邮件、姓氏作为 PathVariable.
    稍微澄清一下 @PathVariable - 它是一个注释,指示哪个方法参数应与哪个 URI 模板变量匹配。

    以你的情况为例,
    {name} - 是URI模板变量 addNewUser 方法中的字符串 name - 是方法参数(您可以在方法的其余部分使用 {name} 值的别名)

    您必须访问 api 喜欢,

     localhost:8080/demo/add/Biagio/biagio@gmail.com/Vaso
    
  2. 通过名称获取用户
    修改GetMapping中的路径
    类似上面的解释,

    来自@GetMapping("/demo/first")@GetMapping("/demo/first/{name}")

    您必须访问 api 喜欢,

     localhost:8080/demo/first/Biagio
    

我自己解决了这个问题。当 UserServiceImpl.The 项目上的 @Autowired 公平且连接良好时,“私人”太多了。有什么事请给我写信。