Spring Boot-使用MySql访问构建RESTful Web服务
我向RESTAPI发送一个请求,将一个对象存储到mysql数据库中 缺少哪一步,我可以通过Jpa将对象存储到数据库中 这是Rest控制器 服务器响应 代码中有什么错误,数据不能存储在数据库中 最重要的是,Mux默认情况下Spring运行内存中的数据库-H2,因此您的项目仅在应用程序运行时存在。 要持久保存数据,需要将应用程序配置为使用其他数据库 要查询H2,还可以使用 例如,如果您想要配置MySQL,您应该在application.properties文件中添加以下配置选项 如果您正在使用application.ymlSpring Boot-使用MySql访问构建RESTful Web服务,spring,rest,api,spring-boot,Spring,Rest,Api,Spring Boot,我向RESTAPI发送一个请求,将一个对象存储到mysql数据库中 缺少哪一步,我可以通过Jpa将对象存储到数据库中 这是Rest控制器 服务器响应 代码中有什么错误,数据不能存储在数据库中 最重要的是,Mux默认情况下Spring运行内存中的数据库-H2,因此您的项目仅在应用程序运行时存在。 要持久保存数据,需要将应用程序配置为使用其他数据库 要查询H2,还可以使用 例如,如果您想要配置MySQL,您应该在application.properties文件中添加以下配置选项 如果您正在使用app
这些对象在运行时环境中本地存储,但不存储在数据库中。因此,您的问题是:是否可以将数据存储在内存中?是的,当然是。这可能不是一个好主意,您需要使其线程安全,但确实是可能的。我可以解决这个问题,将这些条目放在application.properties文件中:spring.datasource.url=jdbc:mysql://anyurltodatabse spring.datasource.username=user spring.datasource.password=pwd spring.datasource.driver类名=com.mysql.cj.jdbc.driver
@RestController
public class OwnerRestController {
@Autowired
private final OwnerRestRepository repo;
public OwnerRestController(OwnerRestRepository repo) {this.repo = repo;}
@RequestMapping(value="/owner/add", method=RequestMethod.POST)
public Owner create(@RequestBody Map<String, String> body){
Owner o = new Owner();
o.setFirstName(body.get("firstName"));
o.setLastName(body.get("lastName"));
o.setAddress(body.get("address"));
o.setCity(body.get("city"));
o.setTelephone(body.get("telephone"));
this.repo.save(o);
return o;
}
}
public interface OwnerRestRepository extends CrudRepository<Owner,integer>{}
{
"firstName":"fname",
"lastName":"lname",
"address":"address1",
"city":"city1",
"telephone":"4711"
}
{
"id": 11,
"firstName": "fname",
"lastName": "lname",
"address": "address1",
"city": "city1",
"telephone": "4711"
}
spring.datasource.url=jdbc:mysql://localhost/test
spring.datasource.username=dbuser
spring.datasource.password=dbpass
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring:
datasource:
driverClassName: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost/test
username: dbuser
password: dbpass