Tenho o arquivo JAR da conexão do mySQL com o Java chamado "mysql-connector-java-8.0.17(1).jar", coloquei o mesmo dentro do diretório Lib (defini o mesmo para ser um local de acesso de jars).
Meu XML ficou assim:
<persistence-unit name="loja" transaction-type="RESOURCE_LOCAL">
<properties>
<property name="javax.persistence.jdbc.driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost/loja"/>
<property name="javax.persistence.jdbc.user" value="root"/>
<property name="javax.persistence.jdbc.password" value="*MinhaSenha*"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
</properties>
</persistence-unit>
Ocorre os erros de "Could not obtain connection to query metadata", "Unable to create requested service", "Cannot get a connection as the driver manager is not properly initialized", "Error calling Driver#connect", " Unknown database 'loja' " (este último erro eu não entendi. Pois segundo o prof o update criaria a tabela caso não existisse).
Segue abaixo a classe main:
package br.com.alura.loja.testes;
import java.math.BigDecimal;
import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence;
import br.com.alura.loja.dao.CategoriaDao; import br.com.alura.loja.dao.ProdutoDao; import br.com.alura.loja.modelo.Categoria; import br.com.alura.loja.modelo.Produto; import br.com.alura.loja.util.JPAUtil;
public class CadastroDeProduto {
public static void main(String[] args) {
Categoria celulares = new Categoria("CELULARES");
Produto celular = new Produto("Xiaomi Redmi", "Muito legal", new BigDecimal("800"), celulares);
EntityManagerFactory factory = Persistence
.createEntityManagerFactory("loja");
EntityManager em = JPAUtil.getEntityManager();
ProdutoDao produtoDao = new ProdutoDao(em);
CategoriaDao categoriaDao = new CategoriaDao(em);
em.getTransaction().begin();
categoriaDao.cadastrar(celulares);
produtoDao.cadastrar(celular);
em.getTransaction().commit();
em.close();
}
}
O professor fez através do banco de dados H2. Eu pesquisei sobre a conexão com o MySql 8.0 Command Line Client e o que consegui foi o código em XML acima. Mas ocorrem os erros informados. O que tem de errado?