У меня есть приложение SpringBoot, которое я хочу подключить к своей базе данных MySQL, и я хочу подключить его с помощью JDB C (само по себе, без использования JPA). И из того, что я видел в статьях, один из способов добиться этого - использовать объекты JdbcTemplate
и DataSource
).
Теперь у меня есть RestController
, где я называю свою базу данных "CoffeeShop", в которой есть меня со следующим классом / кодом:
@RestController
public class MenuController {
@Autowired
private DataSource dataSource;
@Autowired
private JdbcTemplate jdbcTemplate;
private String menuQuery = "SELECT * FROM menu";
@CrossOrigin(origins = "http://localhost:4200")
@GetMapping(path="/menu")
public String getMenu(){
jdbcTemplate.query(menuQuery, (rs, rowNum) -> new Menu(rs.getString("name"))).forEach(
customer-> System.out.println(customer.getName()));
return "worked";
}
private List<Menu> organizeMenu() {
return null;
}
}
Если я правильно понимаю, я ожидаю, что dataSource
сможет увидеть в моем application.properties
файле следующее содержимое при компиляции, а затем цифры Spring что jdbcTemplate
требует этого?:
spring.jpa.hibernate.ddl-auto=none
spring.datasource.driverclassname = com.mysql.jdbc.Driver
hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
spring.datasource.url=jdbc:mysql://${MYSQL_HOST:localhost}:3306/CoffeeShop?useUnicode=true&useLegacyDatetimeCode=false&serverTimezone=UTC
spring.datasource.username=springuser
spring.datasource.password=ThePassword
К моему удивлению, это сработало, мой код запросил БД и записал правильный вывод. Но я не уверен, как это сработало, поскольку jdbcTemplate
требуется dataSource
?