SQLError: Таблица не существует

Я создал базовое приложение SpringBoot для создания таблицы в базе данных SQL.

@SpringBootApplication
public class UserServiceApplication implements CommandLineRunner {

   @Autowired
   JdbcTemplate jdbcTemplate;

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

   @Override
   public void run(String... args) throws Exception {
      String sql = "INSERT INTO micro_users (fullname, email, password) values (?, ? ,?)";
      int result = jdbcTemplate.update(sql, "MyName", "[email protected]",  "2021");
      System.out.println("result " + result);
   }
}

Это то, что у меня есть в моем application.properties

spring.datasource.url=jdbc:mysql://localhost:3306/microservices
spring.datasource.username=root
spring.datasource.password=root

Это то, что я добавил в application.yml

server:
  port: 8081

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/microservices
    username: root
    password: root
    driver-class-name: com.mysql.cj.jdbc.Driver
  application:
    name: service
  main:
      allow-bean-definition-overriding: true
      lazy-initialization: true


  jpa:
    hibernate:
      ddl-auto:update
    show-sql: true
    properties:
      hibernate:
        dialect: org.hibernate.dialect.MySQL8Dialect

Я не могу получить доступ к своей базе данных. Что я могу делать не так.

Я создал локальную базу данных со следующими данными подключения:

Name: Local instance
Host: localhost
Port: 3306
Login user: root
Current user: root@localhost
Version: 8.0.33

Ошибка, которую я получаю:

T10:37:09.815-05:00  INFO 12812 --- [           main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
2023-07-05T10:37:10.102-05:00  INFO 12812 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8081 (http) with context path ''
2023-07-05T10:37:10.115-05:00  WARN 12812 --- [           main] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
2023-07-05T10:37:10.130-05:00  INFO 12812 --- [           main] c.b.user.service.UserServiceApplication  : Started UserServiceApplication in 3.897 seconds (process running for 4.33)
2023-07-05T10:37:10.182-05:00  INFO 12812 --- [           main] .s.b.a.l.ConditionEvaluationReportLogger : 
Caused by: java.sql.SQLSyntaxErrorException: Table 'microservices.micro_users' doesn't exist
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121) ~[mysql-connector-j-8.0.33.jar:8.0.33]
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) ~[mysql-connector-j-8.0.33.jar:8.0.33]
at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916) ~[mysql-connector-j-8.0.33.jar:8.0.33]
at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1061) ~[mysql-connector-j-8.0.33.jar:8.0.33]
at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1009) ~[mysql-connector-j-8.0.33.jar:8.0.33]

Может в стартовом логе что-то есть?

Twistleton 05.07.2023 18:15

@Twistleton обновил вопрос, указав подробности. Спасибо

Tanu 06.07.2023 02:57

Вам просто нужно добавить один пробел между ddl-auto:update. И попробуйте перезапустить свой код после изменения ddl-auto: create после успешного запуска, вам нужно установить снова ddl-auto: update.

Dhruman Desai 06.07.2023 09:43
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
3
59
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Добавление пробела в ddl-auto: обновление сработало. Я также заметил, что текст команды ddl-auto изменился на желтый после изменения, как и другие, поэтому нужно что-то искать, когда мы пишем команды в файле yml.

Другие вопросы по теме