Sincronizando dados WorkBench para MySQL

olá Pessoal,

Neste post vou mostrar como sincronizar dados do WorkBench com o MySQL, assim as alterações realizadas no Workbench, causará impacto direto no banco, lembrando que esse recurso não fica de forma default por medida de segurança. O post será bem pequeno e objetivo. Vou considerar que você já tem o workbench instalado e uma base de dados no MySQL. Apesar de para uns parecer um posts para usuários básicos,  mas fazer modelagem de dados é algo que acontece com uma certa frequencia à depender do projeto. E saber usar uma ferramenta de modelagem  não é nada mal.

lets go…

Post Relacionado

Starting…

Mas, você deve está se perguntando e se eu alterar as tabelas no WorkBench estas alterações serão refletidas automaticamente no Banco de Dados? A resposta é não. Para que isso seja possível, precisamos informar ao WorkBench que ele deve passar as alterações para o BD.

O processo é bem semelhante ao que fizemos para importar do MySQL para o WorkBench. Basta ir em DataBase ==> Synchronize Model.

Siga as instruções da ferramenta, porém fique atento apenas para a penúltima tela, pois deve ser informado quais tabelas serão atualizadas e certifique-se de ignore aquelas que não sofreram alterações. Do contrário tudo que estiver no BD, será substituído e perdido. Veja, como ficou a nossa:

Espero que tenham gostado do post, vou ficando por aqui, e até próxima.

See ya! Abraços,

JPA com Java Básico MySql

olá pessoal, nesse post vou apresentar como fazer persistência de dados usando apenas JPA, mas com Java Básico o objetivo é ajudar aqueles que estão dando o primeiro passo com a tecnologia. Não confunda este post com este Java Básico + Hibernate JPA + Mysql são parecidos, mas aqui nos não vamos envolver nada de Hibernate, ou seja, será 100% JPA.

Recomendado: Você vai precisar configurar a JPA no seu projeto Java, portanto veja no post abaixo:

*Basta adicionar ao seu projeto o arquivo .jar referente a JPA do pacote hibernate annotations. Nada mais que isso, confira: Java Básico + Hibernate JPA + Mysql

Outros posts relacionados:

Preparando o ambiente desenvolvimento

  1. crie um Java project no eclipse

  2. E monte conforme a estrutura abaixo:

  3. A classe TesteJPA  deve conter o método main.

  4. Não esqueça de adicionar o .jar ao seu projeto. Se tem dúvida com fazer isso veja nos posts citados acima.

Preparando Banco de Dados

Vamos usar o MySql como BD e vou levar em conta que você já tem o mesmo instalado e configurado. Crie apensa um DataBase e uma table para este. Se quiser seguir o exemplo do post o nosso ficou assim:

DataBase: sistemas Table: Cliente

A tabela cliente possui os seguintes campos como VARCHAR(nome,cidade,sobrenome)e um Integer(id). O id é auto_increment e chave-primaria da tabela.

Desenvolvimento

Explicando as anotações
@Entity = é uma entidade que representa uma class bean;
@Table = mapeia com o nome da tabela. Aqui eu coloquei o table para explicar, mas poderia omitir levando em conta que eu teria uma table no meu BD com o mesmo nome da minha class Bean. Ou seja, se você não especificar qual será a tabela do BD, será considerada o nome do Bean. Tenha atenção se você tem tabelas com nomes diferentes em relação ao seu bean;
@Id = tem relação com a chave primaria da sua tabela;
@Column = mapeia com as colunas da sua tabela, segue a mesma regra de table, quando ter colunas com nomes diferentes este campo eh obrigatório, caso contrario non-required ;

Deixe sua classe Cliente.java conforme abaixo:

package br.com.bean;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="cliente")
public class Cliente {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
	private int id;
	private String nome;
	private String cidade;
	private String sobrenome;

	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public String getCidade() {
		return cidade;
	}
	public void setCidade(String cidade) {
		this.cidade = cidade;
	}
	public String getSobrenome() {
		return sobrenome;
	}
	public void setSobrenome(String sobrenome) {
		this.sobrenome = sobrenome;
	} }

A classe ClienteDAO é responsável por implementar o CRUD usando a JPA, vamos ver aqui o salvar, excluir e atualizar. Então atualize seu arquivo ClienteDAO.java conforme abaixo:

package br.com.dao;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

import br.com.bean.Cliente;

public class ClienteDAO {

	EntityManagerFactory emf; 

	private EntityManager getEntityManager(){
		return emf.createEntityManager();
	}
	public ClienteDAO() {
	emf = Persistence.createEntityManagerFactory("sistemas");
	}

	public void salvar(Cliente cliente){
		EntityManager em = getEntityManager();
		try{
			em.getTransaction().begin(); //inicia o processo de transacao
			em.persist(cliente);//permite fazer insercoes e atualizacoes no bd
			em.getTransaction().commit();//realizo as alteracoes no banco
		}catch (Exception e) {
			em.getTransaction().rollback();// se rolar uma excecao cancelo acao
			e.printStackTrace();//mostro o percurso de onde veio as excecoes
		}finally{
			em.close();
		}
	}
	public void excluir(Cliente cliente){
		EntityManager em = getEntityManager();

		try{
			em.getTransaction().begin();
			cliente = em.merge(cliente);
			em.remove(cliente);
			em.getTransaction().commit();
		}catch (Exception e) {
			em.getTransaction().rollback();
		}
	}
	public void atualizar(Cliente cliente){
		EntityManager em = getEntityManager();
		try{
			em.getTransaction().begin();
			em.merge(cliente);
			em.getTransaction().commit();
		}catch (Exception e) {
			em.getTransaction().rollback();
		}}
	}
  1. Fazendo a persistência de dados no arquivo persistence.xml. Precisamos passar as informações do BD, user, password etc para o arquivo persistence.xml, assim conseguimos a conexao com o nosso BD. Então atualize o arquivo .xml conforme o code abaixo(tive que dar um espaco entre os <  >  pois o plugin para code não estava reconhecendo com XML):

    org.hibernate.ejb.HibernatePersistence
    < persistence-unit name="sistemas" transaction-type="RESOURCE_LOCAL">
    org.hibernate.ejb.HibernatePersistence
            
    		br.com.bean.Cliente
    
                
                < property name="hibernate.dialect" value="org.hibernate.dialect.MySQLInnoDBDialect" />
                < property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />
                < property name="hibernate.connection.url" value="jdbc:mysql://localhost/sistemas" />
                < property name="hibernate.connection.username" value="camilo" />
                < property name="hibernate.connection.password" value="integrator" />
     
                < property name="hibernate.show_sql" value="true" />
                < property name="hibernate.format_sql" value="true" />
                < property name="use_sql_comments" value="true" />
    
            < /properties>
    
        < /persistence-unit>
  2. Atualizando a classe TesteCliente.java. Precisamos ter uma classe para testar o nosso CRUD com JPA. Para isso teremos uma classe java tradicional com o método main. Eu comentei algumas linhas apenas para poder testar outros recursos. Mas, levando em conta que sua table não há nenhuma informação, vamos executar primeiramente a opção salvar.

    package br.com.teste;
    
    import br.com.bean.Cliente;
    import br.com.dao.ClienteDAO;
    
    public class TesteCliente {
    
    	/**
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		ClienteDAO clidao = new ClienteDAO();
    		Cliente cliente = new Cliente();
    	//	cliente.setCidade("salvador");
    		cliente.setNome("recife");
    		cliente.setSobrenome("neto");
    		//cliente.setId(12);
    		clidao.salvar(cliente);
    		//clidao.excluir(cliente);
    	//cliente.setCidade("Sao Paulo");
    		//cliente.setId(15);
    		//clidao.atualizar(cliente);
    	}
    }

Não Esqueça:

  • Esteja certo que você deu um start no seu BD.

  • não esqueça dos .jars no seu projeto.

Verificando dados no BD

  1. Acesse seu banco de dados e veja se a informação inserida realmente consta na tabela. Aqui usei uma ferramenta chamada Mysql Query Browser para facilitar o trabalho com o BD. No meu caso eu fiz varias alterações.

Vou ficado por aqui e espero que tenham gostado do post. Para quem está em primeiro contato com a tecnologia pode parecer difícil, estranho ou complicado essa estrutura da JPA, mas pode ter certeza que é mais produtivo no ciclo de desenvolvimento.

Abraços e até o próximo post.

JPA com Jboss

womanjava

olá pessoal, nesse post vou mostrar como criar um JPA Project e seus beneficios através da ferramenta Jboss Tools. Em um dos meus posts eu expliquei como instalar e configurar o Jboss tools no eclipse.

Montar uma estrutura JPA na “mão-grande” é um pouco cansativo e não tão produtivo quando se tem auxilio de uma ferramenta como Jboss tools. Nao estou dizendo que a ferramenta vai programar por você, ela apenas vai fazer a parte operacional não relacionada a programação, e você como bom desenvolvedor vai estar focado na parte lógica do negócio.

Lets go…

Outros posts:

  1. Abra o Eclipse e o seu workspace (uma vez que tenha instalado o plugin Jboss tools)

  2. Clique em New ==> Project

  3. Na lista que aparece vá até o diretório JPA.

  4. Escolha JPA Project, conforme a imagem abaixo:

    japproject

  5. Clique em next e na próxima pagina vamos dar o nome ao projeto e configurar o servidor. Aqui estamos usando o TomCat. Veja na imagem a seguir:

    namejpa

  6. Clique em next duas vezes. Até encontrar a tela a seguir. Agora precisamos configurar JPA e a plataforma. Depois clique em Finish

    jpaeclipse

  7. Pronto! Agora vc ja tem um projeto apto a usar JPA com os .jars adicionados estrutura ja montada pelo Jboss tools. Confira na imagem abaixo:

    jpaestrutura

Se você não conhecia o Jboss tools fica ai um pouquinho como a ferramenta pode ajudar no dia-dia.. 😉

Abraços! See you later…


Follow me: http://twitter.com/camilolope