Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

[Dúvida] Problemas com JPA e MySQL

Meu arquivo pom.xml está assim:

project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> modelVersion>4.0.0 groupId>br.com.alura artifactId>lojacursomaven version>0.0.1-SNAPSHOT

build> plugins> plugin> groupId>org.apache.maven.plugins artifactId>maven-compiler-plugin version>3.8.0 configuration> release>11 /configuration> /plugin> /plugins> /build>

dependencies>

dependency>
    groupId>org.hibernate</groupId>
    artifactId>hibernate-entitymanager</artifactId>
    version>5.4.27.Final</version>
/dependency>

dependency>
    groupId>mysql</groupId>
    artifactId>mysql-connector-java</artifactId>
    version>8.0.32</version>
/dependency>

/dependencies> /project>

porém, quando rodo a classe de para cadastrar produtos, recebo todas essas exceptions:

java.lang.IllegalStateException: Cannot get a connection as the driver manager is not properly initialized Exception in thread "main" org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] Caused by: org.hibernate.exception.SQLGrammarException: Error calling Driver#connect Caused by: java.sql.SQLSyntaxErrorException: Unknown database 'lojacursomaven'

Alguém poderia me auxiliar?

6 respostas

Meu persistence.xml assim:

?xml version="1.0" encoding="UTF-8"?> persistence version="2.2" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_2.xsd"> persistence-unit name="lojacursomaven" transaction-type="RESOURCE_LOCAL"> properties> property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" /> property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/lojacursomaven"/> property name="javax.persistence.jdbc.user" value="root"/> property name="javax.persistence.jdbc.password" value="senha do meu bd"/> property name="hibernate.dialect" value="org.hibernate.dialect.MySQL8Dialect"/> property name="hibernate.show_sql" value="true" /> property name="hibernate.hbm2ddl.auto" value="update"/>

/properties>

/persistence-unit> /persistence> /

Todos os sinais de "<" faltantes nos codigos acima constam no meu código, tirei aqui pois nao estava conseguindo postar o código com eles, na pre visualização sumia.

Produto está assim:

package br.com.alura.loja.modelo;

import java.math.BigDecimal;

import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table;

@Entity @Table(name = "produtos") public class Produto {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String nome;
private String descricao;
private BigDecimal preco;

public Long getId() {
    return id;
}

public void setId(Long id) {
    this.id = id;
}

public String getNome() {
    return nome;
}

public void setNome(String nome) {
    this.nome = nome;
}

public String getDescricao() {
    return descricao;
}

public void setDescricao(String descricao) {
    this.descricao = descricao;
}

public BigDecimal getPreco() {
    return preco;
}

public void setPreco(BigDecimal preco) {
    this.preco = preco;
}

}

E CadastroDeProdutos assim:

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.modelo.Produto;

public class CadastroDeProdutos {

public static void main(String[] args) {
    Produto celular = new Produto();
    celular .setNome("Xiaomi Redmi");
    celular.setDescricao("Muito legal");
    celular.setPreco(new BigDecimal("800"));

    EntityManagerFactory factory = Persistence.createEntityManagerFactory("lojacursomaven");
    EntityManager em =  factory.createEntityManager();

    em.getTransaction().begin();
    em.persist(celular);
    em.getTransaction().commit();
    em.close();

    }

}

solução!

Oi Kevin,

O erro: Unknown database 'lojacursomaven'

Você precisa ter o banco de dados já criado no seu MySQL

Obrigado instrutor! Imaginei que o db ia ser criado posterior ao run! Valeu.