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

Spring não cria a tabela no DB

Seguindo os passos da aula 2 de Spring MVC, subi meu servidor para o Spring criar as tabelas no mysql, porém ao consultar as tabelas do meu db(show tables;) ele da como vazia, mesmo depois de reestartar o servidor para ele criar as tabelas, alguma sugestão? O banco está criado(casadocodigo). Algumas observações: O mysql que tenho instalado é a versão 8.0 (baixado diretamente do site) e nas versões mais recentes a senha não pode ser vazia, então meu login ficou user: root e password: root, no meu código alterei para : dataSource.setUsername("root"); dataSource.setPassword("root"); Porém tenho uma dúvida, quando dou um SELECT USER(); no mysql ele me devolve uma tabela com o seguinte user: root@localhost mesmo testando e alterando no dataSource.setUsername("root"); para: dataSource.setUsername("root@localhost"); ele também não cria as tabelas.

Vi no log do console e percebi o seguinte erro ADVERTÊNCIA: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:casadocodigo' did not find a matching property.

4 respostas

algum instrutor para me auxiliar?

Bom dia, Igor.

Sobre o usuário root@localhost está correto é seu usuário root. E sobre o fato de não criar as tabelas, você está usando o Hibernate como ORM? Se sim dá uma olhada se você está configurando com algumas dessas opções abaixo:

Validate: validar o schema, não faz mudanças no banco de dados. Update: faz update o schema. Create: cria o schema, destruindo dados anteriores. Create-drop: drop o schema quando ao terminar a sessão.

Bom dia, Anderson Sim estou usando o Hibernate configurado como update, segue abaixo o código:

@EnableTransactionManagement
public class JPAConfiguration {

    @Bean
    public LocalContainerEntityManagerFactoryBean entityManagerFactory() { //criar uma configuração pro entityManager
        LocalContainerEntityManagerFactoryBean factoryBean = new LocalContainerEntityManagerFactoryBean();

        JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter(); //
        factoryBean.setJpaVendorAdapter(vendorAdapter);
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setUsername("root");
        dataSource.setPassword("root");
        dataSource.setUrl("jdbc:mysql://localhost:3306/casadocodigo");
        dataSource.setDriverClassName("com.mysql.jdbc.Driver"); 

        factoryBean.setDataSource(dataSource);
        Properties props = new Properties();
        props.setProperty("hibernate.dialect", "org.hibernate.dialect.MySQL5Dialect");
        props.setProperty("hibernate.show_sql", "true");
        props.setProperty("hibernate.hbm2ddl.auto", "update");
        factoryBean.setJpaProperties(props);

        factoryBean.setPackagesToScan("br.com.casadocodigo.loja.models");
        return factoryBean;
    }

    @Bean
    public JpaTransactionManager transactionManager(EntityManagerFactory emf) {
        return new JpaTransactionManager(emf);
    }


}
solução!

Bom dia Anderson, após diversos testes, mudanças e pesquisas descobri a solução. O problema estava na versão do Mysql Server, eu estava usando a versão 8 ( a mais recente) e não obtive sucesso, resolvi desinstalar e subir a versão mais antiga, e assim funcionou certinho, ele conseguiu conexão com o banco. Agradeço sua disposição em tentar solucionar meu problema.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software