Mostrando postagens com marcador postgresl. Mostrar todas as postagens
Mostrando postagens com marcador postgresl. Mostrar todas as postagens

terça-feira, 16 de outubro de 2012

Conectando em um banco de dados com java

 

 

Introdução


O banco de dados hoje em dia é a principal fonte de informação de qualquer impresa hoje em dia.
Hoje vamos ver de maneira simples como se faz um programa java para conectar à um banco de dados (postgresql) e utilizar os dados requiridos pelo mesmo.
Para manipular dados de um banco de dados é necessário seguir alguns passo:


1º Obter conexão

Para efetivar  uma conexão ao banco de dados é necessário utilizar a classe DriverManeger e utilizar seu método getConnection e informar a url para conectar ao banco de dados, abaixo é possível ver um exemplo de método que obtenção de conexão em um banco de dados postgresql:


public Connection getConnection() throws SQLException {
        Connection con = null;
        con = DriverManager
                .getConnection("jdbc:postgresql://localhost/agenda_telefone?user=postgres&password=postgres");

        return con;
}



Para criar uma conexão em banco de dados postgresql é necessário que se adicione ao seu projeto o arquivo .jar ao projeto:
Abaixo é possível ver o trecho responsável por conectar a um banco de dados postgresql:

con = DriverManager    .getConnection("jdbc:postgresql://localhost/agenda_telefone?user=postgres&password=postgres");

A sintaxe básica para utilizar a linha acima é:

jdbc://nome_banco://host/banco_dados?user=usuario&password=password


Onde:

•    nome_banco – Tipo de banco de dados que está sendo utilizado (postgresql/mysql/oracle).

•    banco_dados – Banco de dados que iremos utilizar.

•    user -  Usuário utilizado para conectar ao banco e dados.

•    password – Senha do usuário para conectar ao banco de dados.


Caso sua aplicação deseja-se conecatar ao mysql um exemplo seria:

jdbc:mysql://localhost/agenda_telefone?user=postgres&password=postgres


2º Executar a query

Para executar uma query em java é utilizar a clausula PrepareStatement e a mesma será explicada através do método removePessoa.


Abaixo é possível ver o método removePessoa

    public boolean removePessoa(Pessoa pessoa) throws SQLException {
        Connection con = null;
      String DELETE_PESSOA = "DELETE FROM telefones WHERE pes_id = ?;DELETE     FROM pessoas WHERE pes_id = ?;";
       try {
            con = getConnection();
            PreparedStatement prepared = con.prepareStatement(DELETE_PESSOA);
            prepared.setLong(1, pessoa.getId());
            prepared.setLong(2, pessoa.getId());

            retorno = prepared.execute();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            closeConnnection(con);
        }
        return retorno;

    }


Neste metodo logo que é adquirida uma conexão é instanciado um objeto do tipo PreparedStatement , esse objeto tem como principal objetivo adquirir a query e os parametros caso algum for necessário bem como executar a query e dar um retorno, no caso desta classe é apenas retornado um  boolean informado se query foi executado com sucesso.

A query é passada ao objeto através da linha:

PreparedStatement prepared = con.prepareStatement(DELETE_PESSOA);

Os paramtros são passados através das linhas:

prepared.setLong(1, pessoa.getId());
prepared.setLong(2, pessoa.getId());


Vale salientar que para cada tipo de parametro passado é utilizado um tipo de set dentro do PreparedStatement , caso fosse String por exemplo seria utilizado um prepared.setString.

A sintaxe para passagem de parametro é a seguinte:

    objeto_prepared.set_Tipo_OBJETO(posical_query, objeto);

Onde:

•    objeto_prepared – Objeto do tipo PreparedStatement.

•    set_Tipo_OBJETO -  Tipo de objeto a ser inserido como parametro.

•  posicao_query – Posição do parametro na query, sendo que é dado inicio no parametro 1.

•    objeto – Objeto a ser adicionado como parametro


Exemplo de passagem de paramtro

String query =” SELECT * FROM PESSOAS WHERE PES_ID= ? AND PES_NOME = ?”
...
prepared.setLong(1, pessoa.getId()) ;  //Passando um long como parametro
prepared.setString(2, pessoa.getNome()); // Passando uma String como parametro.

Neste exemplo o primeiro interrogação (?) será substituido pelo valor de pessoa.getId() e o segundo pelo valor de pessoa.getNome().


Para obter parametros de uma consulta feita no banco de dados além do objeto do tipo PreparedStatement é necessário utiliar um  do tipo ResultSet que pode ser encontrado no método selectTelefones.

Método selectTelefones


    public List selectTelefones(Telefone telefone)
            throws SQLException {
        Connection con = null;
        List listTelefone = new ArrayList();
        try {
            con = getConnection();
            PreparedStatement prepared = con.prepareStatement(SELECT_TELEFONE);
            prepared.setString(1, telefone.getNumero());
            ResultSet resultSet = prepared.executeQuery();

            while (resultSet.next()) {
                Telefone telefoneTmp = new Telefone();
                telefoneTmp.setId(resultSet.getLong("TEL_ID"));
                telefoneTmp.setNumero(resultSet.getString("TEL_NUMERO"));
                listTelefone.add(telefoneTmp);
            }

        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            closeConnnection(con);
        }
        return listTelefone;

    }


O objeto do tipo ResultSet é obtido na linha:

ResultSet resultSet = prepared.executeQuery();
Para obter os valores contidos no ResultSet é necessário utilizar a seguinte sintaxe:

Sintaxe:

            while (resultSet.next()) {
                variavel = resultSet.get_Tipo_OBJETO("NOME_COLUNA"));
            }

Onde:

•    variavel – Variavel que guardará o valor obtetido através do resultSet.

•    get_Tipo_OBJETO – Tipo de objeto a ser obtido da coluna da tabela.

•    NOME_COLUNA – Nom da coluna que será adquirido o valor que será guardado na variavel.


Abaixo é possíve ver um exemplo contido no próprio programa.


...
            ResultSet resultSet = prepared.executeQuery();

            while (resultSet.next()) {
                Telefone telefoneTmp = new Telefone();
                telefoneTmp.setId(resultSet.getLong("TEL_ID"));
                telefoneTmp.setNumero(resultSet.getString("TEL_NUMERO"));
                listTelefone.add(telefoneTmp);
            }


Observação: O nome das colunas foram definidos no momento que fora criada as tabelas do banco de dados.

3º Fechar a conexão


Assim com um arquivo aberto deve ser fechado, uma conexão aberta também deve ser fachada, para isso é necessári o utilizar o método close.

Abaixo é possível ver um método utilzado para fechar uma conexão do tipo Connection.

public void closeConnnection(Connection con) {
        try {
            con.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }




Conclusão

Como foi possível ver ao longo do post, a aquisição e utilização de dados de um banco de dados pode vir a ser bem simples.




segunda-feira, 10 de setembro de 2012

Instalando o postgresql no linux

Introdução


O postgreSql é um execelente banco de dados gratuíto, o mesmo é simples e rápido. Neste post irei explicar como se faz a instalação do mesmo no linux.


Instalação

Neste post vou explicar como se faz a instalação do postgresql através da interface gráfica. 
Para obter o binário do postgresql primeiramente é necessário entrar no site do desenvolvendo do mesmo e ir na área de downloads, como pode ser visto abaixo:


O link para área de downloads é http://www.postgresql.org/download/ .

Escolha a distribuição linux que você deseja usa em seu computador, no meu caso escolhi a distribuição ubuntu, logo que você escolher a distribuição desejada e clicar na mesma uma nova pagína abrirá como é possível ver abaixo:




Agora vá até o subtítulo "Graphical installer" e clique no link download. Logo que você será direcionando para um a nova página que terá as versões do postgres bem como tipo de arquitetura do sistema (32bits / 64 bits) para download.




Agora basta você clicar na versão da distribuição e  o tipo de arquitetura que você deseja realizar o download. No meu caso eu realizei o download da versão 9.1 com a arquitetura 64 bits.



Abra o terminal e vá até o local onde está o arquivo obtido pelo download e o execute como super usuário.



Sintaxe:

sudo ./nome_binario


Onde:

  •  nome_binario - Nome do binário do postgresql que será utilizado para instalação.

Exemplo:

Neste exemplo o nome do binário é postgresql-9.1.5-1-linux-x64.run logo o comando ficará:
 
 sudo ./postgresql-9.1.5-1-linux-x64.run







Logo após executar o comando será iniciado o processo de instalação do postgresql.



A tela inicial para instalação do postgresql pode ser vista abaixo, basta clicar em Next para continuar o processo de instalação.



A próxima tela é a tela que se escolhe o local onde se instala o postgresql.Após confirmar os dados click em Next.



Na próxima tela será configurado local onde será guardado os dados do banco de dados no disco. Após confirmar os dados click em Next.



Na tela abaixo é possível configurar o senha do usuário principal (postgresql) do banco de dados. Após a confirmar os dados click em Next.



Na próxima tela será configura a porta que será dada conexões para o banco de dados por padrão a porta é a 5432. Após confirmar os dados click em Next.



Na próxima tela click apenas em Next para continuar com a instalação.




Como é possível visualizar abaixo foi dado o inicio instalação do postgresql.




Agora o postgresql já está instalado em seu sistema para prosseguir de modo simples basta desabilitar a opção "Stack Builder may ...", esta opção abre uma nova tela para instalar ferramentas adicionais para manipulação do banco de dados postgresql.







sexta-feira, 26 de novembro de 2010

Oracle: Diferença entre Join interno e join externo



Uma dúvida que surge quando começamos a fazer o join (junção de duas tabelas) é diferenciar de primeiro caso a diferença entre join interno (inner join) e join externo(outer join).
Hoje vamos ver de maneira simples como pode ser explicado tal confusão:


JOIN EXTERNO (OUTER JOIN)

O Join externo acontece quando desejamos pegar todas informações de duas tabelas destintas. Caso durante a junção da tabelas haja campos que não tenham valores (null) esses campos serão preenchidos com null. Cabe salientar que é possível escolher qual tabela favorecer neste tipo de join, pode ser a tabela da direita ou da esquerda. Como pode ser visto abaixo:

Sintaxe: 

SELECT COLUNAS 
FROM TABELA1 
RIGHT/LEFT OUTER JOIN  TABELA2 ON TABELA1.ID=TABELA2.ID_TAB1

Cabe salientar que no RIGHT/LEFT é utilizado só uma das opções ou RIGHT ou LEFT

Exemplo:

Neste exemplo existe duas tabelas distintas CIDADE e FABRICANTE, irei fazer um join externo para direita(right) das mesmas:

SELECT * FROM fabricante RIGHT OUTER JOIN cidade ON fabricante.cidade_id = cidade.id

Caso você esteja utilizando o Oracle o outer join pode ser feito utilizando a notação (+) ao lado tabela que você deseja que seja favorecida:

Sintaxe:

SELECT CAMPOS 
FROM TABELA1,TABELA2 
WHERE TABELA1.ID(+)=TABELA2.ID_TAB2

Exemplo:

SELECT
FROM CIDADE,FABRICANTE
WHERE
CIDADE.ID(+)=FABRICANTE.CIDADE_ID

Click na imagem para aumenta-la


JOIN INTERNO (INNER JOIN)

O Join interno acontece quando desejamos pegar todas informações de duas tabelas distintas, ao contrario do join interno este tipo de join pega somente as combinações validas onde não existe valores nulos.

Sintaxe: 

SELECT COLUNAS 
FROM TABELA1 
INNER JOIN  TABELA2 ON TABELA1.ID=TABELA2.ID_TAB1

Exemplo:

Neste exemplo existe duas tabelas destintas CIDADE e FABRICANTE, irei fazer um join interno.

SELECT * FROM fabricante  INNER JOIN cidade ON fabricante.cidade_id = cidade.id

Existe uma maneira mais fácil  e menor de fazer este tipo de join como é exposto abaixo:

Sintaxe:

SELECT CAMPOS 
FROM TABELA1,TABELA2 
WHERE TABELA1.ID=TABELA2.ID_TAB2

Exemplo:

SELECT * 
FROM CIDADE,FABRICANTE
WHERE
CIDADE.ID=FABRICANTE.CIDADE_ID


Click na imagem para aumenta-la