Java MySQL不会显示数据库中的用户,即使他们在场
我对MySql有一个奇怪的问题。我用Spring Boot MySql做了一个小项目,但是当我尝试向数据库添加一个新用户时,它会给我一条成功消息,但是在MySql shell上,即使有,数据库中也不会出现任何东西(因为Get实际上会找到插入的用户)。现在我不明白问题是什么。我附上申请表。我的Spring项目的属性 每次我请求Get时,它都会返回此消息:Java MySQL不会显示数据库中的用户,即使他们在场,java,mysql,spring,spring-boot,mysql-error-1064,Java,Mysql,Spring,Spring Boot,Mysql Error 1064,我对MySql有一个奇怪的问题。我用Spring Boot MySql做了一个小项目,但是当我尝试向数据库添加一个新用户时,它会给我一条成功消息,但是在MySql shell上,即使有,数据库中也不会出现任何东西(因为Get实际上会找到插入的用户)。现在我不明白问题是什么。我附上申请表。我的Spring项目的属性 每次我请求Get时,它都会返回此消息: D:\>curl -G localhost:8080/demo/first -d name=Biagio {"name"
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 |
+----+------------------------+----------+----------------------------+---------+
我的数据库:
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_示例),这是我的
@SpringBootApplication
public class AccessingDataMysqlApplication {
public static void main(String[] args) {
SpringApplication.run(AccessingDataMysqlApplication.class, args);
}
}
@RestController@RequestMapping(“/演示”)
公共类主控制器{
@自动连线
私人用户服务;
@交易的
//@RequestMapping(value=“/add/”,method=RequestMethod.POST)
@后期映射(路径=“/demo/add”)
公共字符串addNewUser(@PathVariable(“name”)字符串名称,@PathVariable(“email”)字符串电子邮件,@PathVariable(“姓氏”)字符串姓氏){
UserDto n=新的UserDto();
n、 集合名(名称);
n、 setSurname(姓氏);
n、 设置电子邮件(电子邮件);
userService.create(n);
返回“用户保存在数据库中”;
}
@抑制警告({
“原始类型”,
“未选中”
})
//@RequestMapping(value=“/fetchUser/{name}”,method=RequestMethod.GET)
@GetMapping(“/demo/first”)
公共响应属性fetchUser(@PathVariable(“name”)字符串名){
System.out.println(名称);
试一试{
UserDto namefound=userService.findFirstByName(名称);
System.out.println(“找到名称”);
ResponseEntityuser=newresponseEntity(namefound,HttpStatus.OK);
返回用户;
}捕获(Noresultne异常){
System.out.println(“未找到用户”);
返回新的ResponseEntity(“未找到名为“+name,HttpStatus.not_found”的用户);
}
}
}
在PostMapping中修改您的路径 从
@PostMapping(path=“/demo/add”)
到
@PostMapping(path=“/demo/add/{name}/{email}/{names}”)
这是因为在您的addNewUser方法中,您接受名称、电子邮件、姓氏为PathVariable为了让@PathVariable稍微清晰一点,它是一个注释,指示应该匹配哪个URI模板变量的方法参数 以您的情况为例,
{name}-是URI模板变量 addNewUser方法中的Stringname是方法参数(该别名可以在方法的其余部分使用{name}值)
您必须像这样访问api
localhost:8080/demo/add/Biagio/biagio@gmail.com/Vaso
localhost:8080/demo/first/Biagio
在GetMapping中修改路径
与上述解释类似 从
@GetMapping(“/demo/first”)
到@GetMapping(“/demo/first/{name}”)
您必须像这样访问api
localhost:8080/demo/add/Biagio/biagio@gmail.com/Vaso
localhost:8080/demo/first/Biagio
我自己解决了这个问题。当@Autowired在UserServiceImpl上运行时,有太多的“私有”内容。这个项目是公平的,并且连接良好。如有任何问题,请随时写信给我。我看不出有什么问题。您对数据库的期望是什么?如果您看到,在我的数据库中没有姓为Biagio2的Biagio,只有我手动输入的名称。通过POST输入的信息即使在那里也不可见,我现在明白了,获取的是确认信息。您可以打印出用户id,然后检查数据库中是否存在此id。我打印了id,但它不存在,有什么想法吗?即使这样做也不会改变不查看数据库的问题仍然存在的事实