Nesse post vou mostrar a vocês um exemplo de CRUD que foi feito usando a linguagem Java e os frameworks Hibernate e Spring. O sistema que será implementado é bem genérico e tem o objetivo principal de mostrar como é possível implementar uma aplicação simples e as configurações necessárias para integrar as tecnologias.
Gosta de ver exemplos de CRUD para aprender mais sobre linguagens e frameworks? Confira nossa coleção de exemplos de CRUD.
Qual tecnologia foi utilizada para construir este sistema?
Para construir este exemplo utilizamos:
Como rodar o exemplo?
Primeiramente faça o download do projeto no nosso github. Antes de qualquer coisa, certifique-se que você possui o MySQL instalado e crie uma base de dados com o nome “learntoimplementspring”. Se você já possui o Netbeans e o tomcat instalado somente adicionar o projeto ao netbeans e executa-lo já subirá o servidor e conectará ao banco de dados. Não se esqueça de mudar as credencias do banco de dados no arquivo: JpaConfiguration.
O que eu gostei/não gostei na tecnologia utilizada?
O maven gerencia as bibliotecas bem, no entanto existem problemas de conflitos entre o netbeans e o maven que causam erros. O Spring possui muitas annotations e saber o que cada uma delas significa é bastante complicado. O spring permite o gerenciamento dos Entity managers dentro de sua biblioteca, não é necessário adicionar o EJB.
package config;
import java.util.Properties;
import javax.persistence.EntityManagerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import org.springframework.orm.jpa.JpaTransactionManager;
import org.springframework.orm.jpa.JpaVendorAdapter;
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;
import org.springframework.transaction.annotation.EnableTransactionManagement;
@EnableTransactionManagement
public class JpaConfiguration {
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory(){
LocalContainerEntityManagerFactoryBean factoryBean
= new LocalContainerEntityManagerFactoryBean();
JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setUsername("root");
dataSource.setPassword("suasenha");
dataSource.setUrl("jdbc:mysql://localhost:3306/learntoimplementspring");
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
factoryBean.setDataSource(dataSource);
factoryBean.setJpaVendorAdapter(vendorAdapter);
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);
return factoryBean;
}
@Bean
public JpaTransactionManager transactionManager(EntityManagerFactory emf){
return new JpaTransactionManager(emf);
}
}
Nesse exemplo de aplicação web com Java, hibernate e spring você pode aproveitar de todo poder desses frameworks.