Conexão com Banco de Dados

Documentos relacionados
JPA Com Hibernate. Paulo Ricardo Lisboa de Almeida. 1 Universidade Positivo

Banco de Dados. -Aprendendo conceitos -Usando o SQL Conf para: -Conectar no banco de dados -Criar, alterar, excluir e consultar estruturas de tabelas

Criando uma aplicação web

Hibernate na sua aplicação JavaWeb

JAVA. Professor: Bruno Toledo

Mapeamento Objeto-Relacional

Excel Tabela Dinâmica - Incrementando seus conhecimentos e Aperfeiçoando a sua prática Excel 2010 Uso inteligente da Tabela Dinâmica

TRABALHO FINAL 20 Pontos

Criando um site de Notícias - com Administração de Dados

Java Swing: Netbeans

PROGRAMAÇÃO SERVIDOR MIDDLEWARE JDBC: USANDO O JAVA DB EM SISTEMAS WEB. Prof. Dr. Daniel Caetano

Framework Hibernate/JPA

NOVIDADES DO JAVA PARA PROGRAMADORES C

UFG - Instituto de Informática

Unidade 12: Programação de Banco de Dados com Java Prof. Daniel Caetano

Banco de Dados. Aula 03. Prof. Diemesleno Souza Carvalho

Acesse o Portal do Professor, a partir do Site Institucional do IPOG < Insira as seguintes informações na tela de login:

Aula 05. Prof. Diemesleno Souza Carvalho

Gb Sistemas Atenção clique sobre os tópicos, que irão levá los aos assuntos desejados...

MIDISUL (48) (48) CEP CNPJ:

Super Business. Guia Rápido - Condicional & Devolução SuperSys Tecnologia

Giss Offline. Versão 2.0 (12/2011)

Gerenciamento de disco; criando nova partição

Unidade 11: Programando Swing com o NetBeans Prof. Daniel Caetano

-Entre no menu Cadastros / Terceiros/Optantes -Insira os dados do Empregado ou Fornecedor / clique em Gravar

MANUAL VTWEB CLIENT URBANO

Configuração do Guarda. Detalhes iniciais de instalação e introdução do funcionamento do software.

Continuação... Criando a Interface e adiante

INFORMÁTICA APLICADA AULA 05 WINDOWS XP

MANUAL VTWEB CLIENT SUBURBANO

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Departamento de Computação Curso de Análise e Desenvolvimento de Sistemas Modelagem Conceitual de Dados

Manual Recurso - Atualizar ou Inserir dados Tabelas. FullCopyConvert Data

CRIANDO PERSONALIZAÇÕES/PATCHS DE APARELHOS (BLIBLIOTECAS)

Guia Rápido. Elgin L42-DT Impressora de etiquetas.

INTRODUÇÃO AO MYSQL. Eng. Computação

PROGRAMAÇÃO I INTRODUÇÃO À ORIENTAÇÃO A OBJETOS

Portal de Cotação da FCC S.A.

Tutorial do E3 para Iniciantes Capítulo 15 Consultas

Sumário Objetivos Estudo de caso 1 Detalhamento bloco Estudo de caso 2 Detalhamento do suporte... 19

SGCD 2.0 Sistema Gerenciador de Conteúdo Dinâmico

Configurações do Servidor Escola

TELA INICIAL CADASTRANDO A SENHA. 1. clique no link cadastrar a senha

Introdução. Configuração. Padrão POJO. Framework Pesistência de. Mapeamento Annotation. Objetos. Persistência. Java. Objetos. Prof.

PRIMEIRO PROGRAMA. Neste post iremos construir uma pequena classe destinada para soma de dois números.

Gestão Unificada de Recursos Institucionais GURI

Neste exercício, vamos criar uma Folha de Cálculo, onde vamos utilizar alguns Controlos de Formulários.

Gerabyte AFV (Automação de Força de Venda) Manual do Aplicativo

Manual Autorizador TOTVS

Aprenda a criar Bancos de Dados no Excel

Manual Emissor Legal Atualizado 10/08/2016. Cadastro de Clientes

TUTORIAL DO BLOG IMES-CATANDUVA Profº M. Sc. Marcelo Mazetto Moala Profº Esp. Antonio Marcio Paschoal

MANUAL DE UTILIZAÇÃO DO SISTEMA LUX NF-E V

Sumário Objetivos Estudo de caso 1 Criação de template Exercício 1 Detalhamento da peça Exemplo... 23

MANUAL DE PUBLICAÇÃO NO PORTAL CAMPUS MATÃO

SGCD 2.0 Sistema Gerenciador de Conteúdo Dinâmico

MANUAL DE EMISSÃO E INSTALAÇÃO DO CERTIFICADO TIPO A1 (GOOGLE CHROME)

Para realizar uma Importação XML precisamos ir até o Retaguarda e clicar em F4-Compras.

Capacitação Sistema Solar. Ministrantes: Camilla Reitz Francener Cláudia Heusi Silveira

Tutorial NFS-e. 1 Configurar Provedor de Nota Fiscal de Serviço NFS-e Configuração de Conta Corrente Gerar NFS-e...

PCS Laboratório de Engenharia de Software I Tutorial de Modelagem de Dados no RSA v9.5 (por Michelet dal Carpio Chávez)

Importador de Notas Fiscais Eletrônicas

PROGRAMAÇÃO ORIENTADA A OBJETOS. Aula 09a- Acessando os dados através JDBC

A seguir, iremos ilustrar um exemplo prático e rápido das configurações, da montagem e edição de plantas e da plotagem em plotter, passo-a-passo.

Como fazer seus pedidos online

CashDriver Android Instalação

Desenvolvimento Web II

Portal Suprimentos Aperam Cotação Eletrônica. versão 3

Tutorial 1 Configuração Apache Tomcat no NetBeans 8.0 (passo a passo)

Procedimento Instalação Impressora Servidor de impressão/quota

EA975 - Laboratório de Engenharia de Software

1 O QUE É O ZOTERO? INSTALAR O ZOTERO INSTALAR O CONECTOR ZOTERO NOS NAVEGADORES GOOGLE CHROME E MOZILLA FIREFOX...

Manual do Usuário. Sistema de Contas Públicas

Tutorial SQL Server 2014 Express

Conexão com Banco de Dados, Inserção, exclusão e atualização de registros

Executar uma macro clicando em um botão da Barra de Ferramentas de Acesso Rápido

Detalhamento dos lançamentos do Caixa

Instalação e utilização do Software Pináculo SMS

MANUAL DE EMISSÃO E INSTALAÇÃO DO CERTIFICADO TIPO A1 (INTERNET EXPLORER)

Como criar um banco de dados usando o mysql

Transcrição:

Conexão com Banco de Dados

ORM Atualmente os novos sistemas que estão sendo desenvolvidos estão utilizando a técnica de ORM para fazer conexão e acesso a banco de dados. ORM é uma técnica de mapeamento Objeto Relacional (Object-relational mapping). As tabela de um banco de dados são mapeadas para classes, cada registro armazenado em um banco de dados corresponderá a um objeto em linguagem de programação. Uma das principais vantagens é que o programador não precisa se preocupar com códigos SQL, é facil trocar de SGDB e o desenvolvimento do sistema permanece Orientado a Objetos.

Passos para Conexão

1) Criar banco de dados Acesse o phpmyadmin para criar um banco de dados que será utilizado para conectar com o Java.

1) Criar banco de dados Clique na guia banco de dados

1) Criar banco de dados Informe o nome do banco Informe o codificação: utilizado para apresentar corretamente os caracteres com acento. Clique em criar

1) Criar banco de dados Seu banco de dados será criado.

2) Criar novo projeto Clique no botão para criar um novo projeto

2) Criar novo projeto Selecione Java -> Aplicação Java -> Próximo

2) Criar novo projeto Informe o nome do projeto ConexaoBancoDados e Clique em Finalizar.

3) Criar unidade de persistência A unidade de persistência é utilizada para realizar configurações do banco de dados, do provedor JPA e para indicar as classes que serão mapeadas. Para criar a unidade de persistência precisamos criar um arquivo chamado persistence.xml este deverá estar localizado na pasta META-INF.

2) Criar unidade de persistência Agora que o projeto foi criado, clique com o botão direito em cima do projeto, selecione novo e clique em outros.

3) Criar unidade de persistência Na janela que aparecer em categorias selecione Persistência e em Tipos de arquivos selecione Unidade de Persistência.

3) Criar unidade de persistência Altere os dados conforme abaixo: Selecione Hibernate Selecione Nova Conexão de Banco de Dados

3) Criar unidade de persistência Informe o driver MySQL

3) Criar unidade de persistência Informe o nome do banco de dados Informe o nome do usuário e senha: lembre-se de clicar em lembrar senha Clique em testar conexão Se a conexão foi bem sucedida clique em finalizar

3) Criar unidade de persistência Confira o nome da Unidade de Persistência e certifique-se de estar utilizando o Hibernate Deixe marcado criar (*) explicação próximo slide

3) Criar unidade de persistência Na estratégia de geração de tabela temos 3 opções: A primeira criar: cria as tabela no banco de dados se elas ainda não existirem, as tabelas são criadas de acordo com as classes, seus atributo e anotações. A segunda Eliminar e Criar: Apaga todas as tabelas do banco de dados e as cria novamente, essa opção é util quando queremos atualizar a estrutura do banco de dados, no entanto, ela é perigosa, uma vez, que todos os dados cadastrados no banco são apagados. A terceira e ultima nenhuma: não faz nada no banco de dados.

3) Criar unidade de persistência Após clicar em finalizar um novo pacote META-INF será criado e dentro deste pacote existirá sua unidade de persistência. Note que em bibliotecas vários arquivos serão adicionados, mas ainda falta o driver JDBC responsável por conectar nossa aplicação com o SGDB MySql

4) Importar Driver JDBC - MySQL Clique com o botão direito do mouse em cima da pasta Bibliotecas no menu que aparecer clique em Adicionar Biblioteca.

4) Importar Driver JDBC - MySQL Na janela que aparecer procure por Driver JDBC do MySQL selecione-o e clique em Adicionar Biblioteca.

4) Importar Driver JDBC - MySQL O Driver será adicionado a biblioteca do projeto.

5) Criando Modelo Quando criamos um banco de dados criamos tabela e nessas tabelas temos colunas para armazenar os dados. Quando criamos programas Orientados a Objetos criamos classes para representar as coisas do mundo real que queremos manipular. As tabelas (entidade) são semelhantes as nossas classes em Java, de modo grosso, a única diferença é que as Classes podem possuir comportamentos (métodos) e as tabelas (entidades) apenas armazenam valores. Então iremos criar classes e mapear (transformar) elas em tabelas para armazenar dados no banco.

5) Criando Modelo Para começar vamos criar um pacote para armazenar todas as nossas classes de persistência (classes que irão armazenar dados no banco). Clique com o botão direito do mouse no projeto, selecione novo -> pacote.

5) Criando Modelo Dê o nome do pacote de model e clique em finalizar

5) Criando Modelo Dentro deste pacote iremos criar todas as classes que possuem a lógica da aplicação. Para este exemplo criaremos apenas uma classe. Clique com o botão direito no pacote model selecione novo -> Classe

5) Criando Modelo Dê o nome da classe de funcionário e clique em finalizar

5) Criando Modelo Na classe funcionário crie os atributos idfuncionário, nome, cpf, conforme apresentado abaixo:

5) Criando Modelo Vamos gerar os getter e setter agora para cada atributo: Clique com o botão direito do mouse dentro da classe e selecione o menu Inserir Código

5) Criando Modelo Selecione Getter e Setter

5) Criando Modelo Selecione todos os campos e clique em gerar

5) Criando Modelo Agora que nossa classe está completa podemos iniciar o mapeamento.

6) Mapear Classe Mapear uma classe significa que vamos associar ela a uma tabela no banco de dados, o mapeamento é realizando utilizando anotações especificas, toda anotação inicia-se com um @. Uma anotação sempre deve vir antes do tipo que ela está anotando. A primeira anotação que vamos realizar é para informar que a classe é persistente, ou seja que os objetos que forem gerados a partir dessa classe poder ser armazenados em um banco de dados.

6) Mapear Classe A anotação @Entity informa que a classe é uma Entidade (lembre-se de banco de dados - Entidade e Relacionamento ER) ou seja ela será uma tabela no banco. Para utilizar essa anotação tivermos que realizar a importação da linha 3.

6) Mapear Classe A próxima anotação que iremos realizar é para informar quem será a chave primária da tabela, neste caso também iremos dizer que essa chave deve ser auto incremento. Importação necessária Anotação para chave primária Anotação para auto-incremento

6) Mapear Classe Existe várias outras anotações que iremos ver nas próximas aulas. Veja que cada anotação deve ficar em cima do elemento que desejo anotar, não posso colocar o @Entity em cima do atributo ou de um método, pois isso iria gerar um erro, da mesma forma @Id não poderia ser adicionado em cima da classe. Então e necessário tomar cuidado ao realizar as anotações.

7) CRUD O termo CRUD é um acrônimo para: Create (Criar) Retrive (Consultar) Update (Atualizar) Delete (Excluir) Ou seja, são as operações básicas de um banco de dados. Para realizar essas operações utilizando o JPA-ORM necessitamos de um Gerenciador de Entidade. Um gerenciador de entidade é um objeto capaz de realizar as operações de CRUD com um objeto de uma classe que esteja anotada com a anotação @Entity

7) CRUD Vamos criar um pacote para realizar as operações de CRUD. Clique no projeto com o botão direito do mouse, selecione novo -> pacote.

7) CRUD Dê o nome do pacote de view

7) CRUD Clique com o botão direito do mouse em cima do pacote view, selecione novo - > Form JFrame

7) CRUD Dê o nome para o formulário de JFrmCadFuncionario, após clique em finalizar.

7) CRUD Crie o seguinte formulário com 4 botões, três campos de texto com rótulos e uma tabela.

7) CRUD Clique na guia código fonte, em baixo da classe crie o código no na imagem abaixo: Nome da Unidade de Persistência arquivo persistence.xml O código acima cria uma fábrica de Gerenciadores de Entidade (EntityManager) para uma Unidade de Persistência. Atenção esse processo é caro (lento) e deve ser realizado o mínimo de vezes possível.

7) CRUD Após criar a fabrica vamos criar os gerenciadores de entidade.

7) CRUD Para adicionar um objeto no banco de dados, dê dois cliques no botão adicionar e digite o código abaixo:

7) CRUD Linhas 189-192: Criam um objeto da classe funcionário se alteram o valor do seus atributos com os valores dos campos de texto preenchidos pelo usuário. Linha 194: Toda operação no banco de dados deve ser realizada dentro de uma transação, isso permite que tudo seja executado se não ocorrer falhas e caso uma falha todas as operações sejam descartadas, deixando o banco de dados consistente. Apenas as consultas não precisam estar dentro de uma transação. Uma transação inicia-se com begin, se tudo ocorreu certo então damos um commit (para confirmar a escrita dos dados no banco) caso algo errado ocorra damos um rollback (para voltar com os dado antigos do banco de dados) Linha 195: o método persist() do gerenciador de entidades (EntityManager) é o responsável por gravar um objeto no banco de dados.

7) CRUD Vamos testar o primeiro código, antes de executar o projeto podemos verificar que nosso banco de dados não possui nenhuma tabela. Após executar o programa uma tabela de funcionários deverá ser criada.

7) CRUD Executamos o projeto e atualizamos a página do phpmyadmin, é possível observar que a tabela funcionário foi criada.

7) CRUD Também é possível verificar que a tabela está vazia.

7) CRUD Preenchemos o formulário com os dados de um funcionário e clicamos em adicionar.

7) CRUD Atualizando novamente a página do phpmyadmin verificamos que os dados foram armazenados no banco.

7) CRUD Vamo incrementar o método de adicionar para mostrar os dados na tabela e limpar os campos após a inserção.

7) CRUD O método atualizar tabela é semelhante ao que tínhamos realizado nas aulas passadas, no entanto a lista de funcionários utilizada é preenchida com os dados vindos do banco. Para isso utilizamos a linguagem de consulta JPQL Java Persistence Query Language ela é semelhante ao SQL, mas é voltada para objetos, nas próximas aulas vamos focar nas consultas.

7) CRUD

7) CRUD Método adicionar atualizado

7) CRUD Para excluir um registro clique duas vezes sobre o botão excluir e digite o seguinte código.

7) CRUD Linha 235: Obtém o índice da linha selecionada na tabela, se não existe linha selecionada da tabela o valor será -1, se a primeira linha estiver selecionada o valor será 0 e assim por diante. Linha 237: Verifica se a tabela possui uma linha selecionada Linha 239: coloca dentro da variável index o valor da primeira coluna da linha selecionada Linha 240: Recupera do banco de dados o funcionário que possui o id igual o index passado para o parâmetro find, ao retornar o objeto coloca dentro da variável f Linha 241: Inicia uma transação Linha 242: Remove o objeto do banco de dados Linha 243: Finaliza a transação

7) CRUD Só é possível excluir e alterar objetos que o EntityManager conhece, ou seja que ele esteja gerenciando. Um objeto é gerenciado quando ele acabou de ser adicionado ou foi retornado do banco de dados por uma consulta. No código anterior se tivéssemos simplesmente pegado os dados da tabela e criado um objeto novo e mandando o EntityManager excluir seria gerado uma Exceção (erro), pois o EntityManager não conhece aquele objeto (não o gerencia), portanto não pode exclui-lo nem altera-lo. Por isso é necessário utilizar o find para buscar no banco o objeto.

7) CRUD Exemplo de código com erro, não é possível excluir o objeto, pois o EntityManager(em) não conhece o objeto.

7) CRUD Para atualizar um registro o processo é semelhante ao de excluir, vamos criar o código para preencher os campos de texto quando a pessoa clicar sobre um registro na tabela (jtable). Clique com o botão direito na tabela, selecione eventos -> Mouse -> mouseclicked

7) CRUD

7) CRUD Clique duas vezes no botão atualizar e digite o código abaixo:

7) CRUD Linha 290: Verifica se o campo de texto código não está vazio Linha 291: Converte o valor do campo de texto código para inteiro e armazena o valor na variavel idfuncionario Linha 292: Pega o funcionário do banco de dados que possui o idfuncionario e coloca dentro da variavel f Linhas 293 e 294: Altera o valor dos atributos do funcionário Linha 295 e 297: Inicia e finaliza uma transação Linha 296: Atualiza o registro no banco de dados com os valores dos atributos do objeto

7) CRUD Neste exemplo iremos mostrar uma forma simples de recupera objeto(registro) através de seu atributo Id. Dê dois cliques no botão consultar e copie o seguinte código.

Exercícios 1. Pesquise mais na internet sobre JPA, ORM (Object-relational mapping) e Hibernate, faça um resumo das principais ideias. 2. O que é Unidade de Persistência? 3. Em uma Unidade de Persistência quais são as estratégias de geração de tabelas? 4. Para que serve um Driver JDBC? 5. O que é uma Annotation (Anotação)? 6. O que é um EntityManager? 7. Pesquise porque criar um EntityManagerFactory é caro (lento).

Exercícios 8. Para que serve o método merge() do EntityManager? Dê um exemplo de uso. 9. Para que serve o método persist() do EntityManager? Dê um exemplo de uso. 10. Para que serve o método remove() do EntityManager? Dê um exemplo de uso. 11. Para que serve o método find() do EntityManager? Dê um exemplo de uso.