Olá Rodrigo, tudo bem com você?
Subindo um docker
com a versão do mysql8
eu consegui reproduzir os mesmos erros que você, e de algumas formas consegui solucionar:
Vamos por algumas alternativas por nivel de recomendação:
Atualizar os drivers para o mysql8
Para isso no pom.xml
faça a seguinte atualização:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.21</version>
</dependency>
E dentro de JPAConfigurator.java
modifique o dialeto
:
props.setProperty("hibernate.dialect", "org.hibernate.dialect.MySQL8Dialect");
Não esqueça de criar o banco de dados como projeto_jpa
e verificar a URL
dataSource.setUrl("jdbc:mysql://localhost:3306/projeto_jpa");
Acredito que dessa maneira já irá funcionar corretamente, eu fiz os testes e não tive nenhum problema :)
Uma outra alternativa, mas menos recomendada, seria criar a senha do modo tradicional no mysql
Conectar no Banco de Dados
Utilizar o comando
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'novaSenha';
FLUSH PRIVILEGES;
Por padrão a senha com o Mysql8
passa por uma criptografia, dessa forma, estamos criando um nova de uma maneira crua, dado que é um banco local não há muitos problemas, e dessa maneira o Spring ira conseguir se conectar com o dialeto do mysql5
:)
Uma outra coisa que eu recomendaria, seria ir fazendo os cursos de Springboot
, pois esse curso de JPA
está sendo refeito no momento, e as vezes você pode querer esperar logo a nova versão :)
O conteúdo apresentado no curso de JPA parte I é suficiente para conseguir fazer tranquilamente :)
Caso pretenda continuar fazendo esse curso, na terça feira um aluno notou um problema que está acontecendo recentemente, que pode acontecer ao clicar no botão de Editar
dos produtos
No caso, é lançar um erro da jsp
não encontrar o mapeamento, neste caso é só seguir os seguintes passos:
Em ProdutoController.java
Vamos mudar a assinatura do @RequestMapping do método salvar para:
@RequestMapping(value="/cadastrar", method=RequestMethod.POST, name="buscarProdutos")
public String salvar(@ModelAttribute @Valid Produto produto, BindingResult result, RedirectAttributes atts) {
E em form.jsp
Vamos trocar a tag <form pela seguinte:
<form class="form-group" method="post" action="<c:url value="/produto/cadastrar"/>">
Abraços e Bons Estudos!