Java com Banco de Dados Posgree Prof. Luiz Claudio Ferreira de Souza www.luizclaudiofs.blogspot.com 1
Driver para ligação Java e Postgre http://jdbc.postgresql.org/download.html www.luizclaudiofs.blogspot.com 2
Verificando a versão do java Instalado! No Gerenciador de arquivos ou com o Prompt de comando ativo digite java version www.luizclaudiofs.blogspot.com 3
Fazendo Conexão com o Postgree Clique em serviços: www.luizclaudiofs.blogspot.com 4
Fazendo Conexão com o Postgree Clique com o botão direito do Mouse sobre Banco de Dados e escolha nova conexão www.luizclaudiofs.blogspot.com 5
Fazendo Conexão com o Postgree A janela abaixo aparecerá, direcione para a pasta onde você salvou o arquivo baixado www.luizclaudiofs.blogspot.com 6
Fazendo Conexão com o Postgree Em algumas situações o Netbeans já possui o drive, em outras devemos instalar (adicionar) o drive baixado! www.luizclaudiofs.blogspot.com 7
Conectando ao SGDB Postgre www.luizclaudiofs.blogspot.com 8
Vamos Testar a Conexão com o Banco de Dados Postgre www.luizclaudiofs.blogspot.com 9
www.luizclaudiofs.blogspot.com 10
Clique no botão próximo www.luizclaudiofs.blogspot.com 11
Selecione Públic e clique no botão Próximo, conforme abaixo www.luizclaudiofs.blogspot.com 12
Preservar o nome dado pelo Netbeans e clicar no botão Finalizar www.luizclaudiofs.blogspot.com 13
Observe a conexão com o Banco! www.luizclaudiofs.blogspot.com 14
Vamos a um exemplo de Cadastro de Cliente feito em Java com Postgre Inicialmente temos que criar a base de dados projetojava no Postgre utilizando a linguagem Sql www.luizclaudiofs.blogspot.com 15
Agora vamos criar a tabela usuario na base de dados projetojava www.luizclaudiofs.blogspot.com 16
Agora com a Base de Dados projetojava e a tabela usuario criadas, vamos ao java! www.luizclaudiofs.blogspot.com 17
No Netbeans vamos em arquivo e Novo Projeto www.luizclaudiofs.blogspot.com 18
Selecione Java e Aplicação Java www.luizclaudiofs.blogspot.com 19
Nome do Projeto: MinhaAplicacao, desmarque Criar Classe Principal e clique em finalizar Obs: MinhaAplicacao (Sem ç e sem ~) Escolha a pasta da localização do projeto www.luizclaudiofs.blogspot.com 20
Agora vamos criar os pacotes ou packages Usamos pacotes para organizar as classes semelhantes. Pacotes, a grosso modo, são apenas pastas ou diretórios do sistema operacional onde ficam armazenados os arquivos fonte de Java e são essenciais para o conceito de encapsulamento, no qual são dados níveis de acesso as classes. www.luizclaudiofs.blogspot.com 21
Encapsulamento É a técnica utilizada para esconder uma ideia, ou seja, não expôr detalhes internos para o usuário, tornando partes do sistema mais independentes possível. Por exemplo, quando um controle remoto estraga apenas é trocado ou consertado o controle e não a televisão inteira. Nesse exemplo do controle remoto, acontece a forma clássica de encapsulamento, pois quando o usuário muda de canal não se sabe que programação acontece entre a televisão e o controle para efetuar tal ação. Como um exemplo mais técnico podemos descrever o que acontece em um sistema de vendas, aonde temos cadastros de funcionários, usuários, gerentes, clientes, produtos entre outros. Se por acaso acontecer um problema na parte do usuário é somente nesse setor que será realizada a manutenção não afetando os demais. www.luizclaudiofs.blogspot.com 22
No Projeto criado (MinhaAplicacao) clique com o botão direito, selecione Novo, Pacote java www.luizclaudiofs.blogspot.com 23
No Nome do Pacote digite factory www.luizclaudiofs.blogspot.com 24
Criação dos Pacotes Da mesma forma que você criou o pacote factory crie os pacotes: Modelo, Dao e Gui Ficando assim: www.luizclaudiofs.blogspot.com 25
Pacote e Classes Obs: O nome do pacote e da classe não conterão caracteres utilizados na língua portuguesa ( e ~) Factory significa fábrica e ConnectionFactory significa fábrica de conexões. Factory será o nome do pacote e ConnectionFactory o nome da classe que fará a interface com o driver JDBC de conexão a qualquer banco que desejar. Por isso o nome fábrica, pois o JDBC permite a conexão a qualquer banco: MySQL, Postgree, Oracle, SQL Server, etc., somente alterando a linha do método getconnection. Vamos começar criando a classe ConnectionFactory no pacote factory. Vá com o botão direito até factory e clique com o botão esquerdo em Novo > Classe Java. www.luizclaudiofs.blogspot.com 26
Criando a Classe ConnectionFactory no pacote factory www.luizclaudiofs.blogspot.com 27
Criando a Classe ConnectionFactory no pacote Factory www.luizclaudiofs.blogspot.com 28
O Pacote MinhaAplicacao ficará assim: www.luizclaudiofs.blogspot.com 29
Código para ser acrescentado na classe ConnectionFactory www.luizclaudiofs.blogspot.com 30
Sobre as linhas de código: Connection con = new ConnectionFactory().getConnection(); Note que o método getconnection() é uma fábrica de conexões, isto é, ele cria novas conexões para nós. Basta invocar o método e recebemos uma conexão pronta para uso, não importando de onde elas vieram e eventuais detalhes de criação. Portanto, vamos chamar a classe de ConnectionFactory e o método degetconnection. www.luizclaudiofs.blogspot.com 31
Try e Catch Tratamento de Exceções e Erros Umas das utilidades proporcionadas pela orientação a objetos de Java é a facilidade em tratar possíveis erros de execução chamados de exceções. Sempre que um método de alguma classe é passível de causar algum erro, então, podemos usar o método de tentativa - o try. Tudo que estiver dentro do bloco try será executado até que alguma exceção seja lançada, ou seja, até que algo dê errado. Quando uma exceção é lançada, ela sempre deve ser capturada. O trabalho de captura da exceção é executado pelo bloco catch. Um bloco try pode possuir vários blocos de catch, dependendo do número de exceções que podem ser lançadas por uma classe ou método. O bloco catch obtém o erro criando uma instância da exceção. Portanto, a sintaxe do bloco try catch é: try { // código a ser executado } catch (ClasseDeExceção instânciadaexceção) { // tratamento da exceção } www.luizclaudiofs.blogspot.com 32
Vamos criar uma classe para testar a conectividade ao Postgre, o nome da classe será TestaConexao Você poderá criar a classe dentro do pacote factory www.luizclaudiofs.blogspot.com 33
Linhas de código da classe TestaConexao www.luizclaudiofs.blogspot.com 34
Para executar a aplicação, antes você terá que adicionar a biblioteca o drive do Postgre, vá em bibliotecas e clique com o botão direito e selecione Adicionar JAR/Pasta Após isso, selecione a pasta para onde você fez o download do drive www.luizclaudiofs.blogspot.com 35
Execute a aplicação www.luizclaudiofs.blogspot.com 36
Dentro do pacote Modelo, Crie a Classe Usuário www.luizclaudiofs.blogspot.com 37
Linhas de Código para a Classe Usuário www.luizclaudiofs.blogspot.com 38
Crie no Pacote DAO a classe UsuarioDAO Neste pacote ficam as classes que são responsáveis pela Consulta, Alteração e Deleção de registros nas tabelas do Banco de Dados www.luizclaudiofs.blogspot.com 39
Linhas de código da classe UsuarioDAO www.luizclaudiofs.blogspot.com 40
Linhas de código da classe UsuarioDAO www.luizclaudiofs.blogspot.com 41
Nossa aplicação back-end está toda finalizada. Precisamos aprontar o frontend, isto é, a interface de usuário, a classe que será responsável pela interação com o usuário, ou seja, o formulário de entrada. No Pacote Gui, crie a Classe UsuarioGUI www.luizclaudiofs.blogspot.com 42
Classe UsuarioGUI criada no Pacote gui www.luizclaudiofs.blogspot.com 43
Com a ferramenta Painel, escolha propriedades. Clique em Borda>Borda de título, intitule Cadastrar novo usuário Construa a interface abaixo www.luizclaudiofs.blogspot.com 44
Clique duas vezes no botão Sair para criarmos o seu evento Linha de código para o botão: System.exit(0); www.luizclaudiofs.blogspot.com 45
Clicando em Shift + F6 você poderá ver como ficará sua interface! www.luizclaudiofs.blogspot.com 46
Botão Limpar Linhas de código para o botão Limpar: www.luizclaudiofs.blogspot.com 47
Linhas de Código para o Botão Cadastrar www.luizclaudiofs.blogspot.com 48
Observação! Certamente algumas mensagens de erro aparecerão. Isto porque temos que importar no início do código as classes Usuario (pacote modelo) e UsuarioDAO (pacote dao). Além destas, precisamos importar a classe JOptionPane, responsável pelas janelas de validação, aquelas que aparecem dizendo se o usuário foi ou não cadastrado, se os campos estão vazios, etc. Coloque estas linhas no início do código, abaixo de package gui, na aba Código-fonte: import modelo.usuario; import dao.usuariodao; import javax.swing.joptionpane; www.luizclaudiofs.blogspot.com 49
www.luizclaudiofs.blogspot.com 50