Criando uma ConnectionFactory java com Xml

A maioria das aplicações trabalha com persistência de dados, ou seja, é necessário Gravar, Recuperar, Alterar e Deletar dados em algum Banco de Dados. Para essas 4 operações básicas é usada a sigla CRUD (Create, Read, Update, Delete) e é necessário uma conexão com o banco de dados para realizá-las. Para isso, é sempre criada uma classe com método(s) de Fábrica de Conexão (Connection Factory) e o código para isso fica parecido com o código mostrado na imagem abaixo:

Connection Factory

Os dados necessários para uma conexão com o banco são:

  • Usuário;
  • Senha;
  • URL de conexão;
  • Banco de Dados;

Porém, no exemplo da imagem acima, essas configurações ficam amarradas ao código, sendo necessário reescrever a classe e recompilar o programa a cada vez que qualquer um desses dados é alterado. Então a melhor sugestão seria criar um arquivo de configuração externo ao programa que mantem esses dados. Para isso utilizaremos dos recursos das classes: java.util.Properties, java.io.FileInputStreamjava.io.FileOutputStream.

Primeiro, criaremos uma classe que cuidará dessa parte, podemos nomeá-la JdbcConnection:

public class JdbcConnection {
private String user;
private String passwd;
private String url;
private String database;
//Criar getters e setters
}

Como o arquivo de configuração ainda não existe, teremos que criar, dentro da classe JdbcConnection um método para criação do arquivo Xml utilizando um objeto Properties:

    public void setProps(){
        Properties props = new Properties();

        props.setProperty("jdbc.user", "postgres");
        props.setProperty("jdbc.passwd", "senha");
        props.setProperty("jdbc.url", "jdbc:postgresql://localhost:5433");
        props.setProperty("jdbc.dataBase","banco");

        try {
            FileOutputStream fos = new FileOutputStream("config.xml");
            props.storeToXML(fos, "FILE JDBC PROPERTIES:","ISO-8859-1");
            fos.close();

        }catch (IOException e){
            System.out.println(e.getMessage());
        }

    }

Assim, será criado um arquivo parecido com esse:

<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>FILE JDBC PROPERTIES:</comment>
<entry key="jdbc.passwd">error#404</entry>
<entry key="jdbc.url">jdbc:postgresql://localhost:5433</entry>
<entry key="jdbc.user">postgres</entry>
<entry key="jdbc.dataBase">ponto</entry>
</properties>

Através das informações contidas nesse arquivo, iremos preencher os atributos de um objeto JdbcConnection, e para isso criamos o método abaixo:

    public void getProps (){
        Properties props = new Properties();

        try {
            //Setamos o arquivo que será lido
            FileInputStream fis = new FileInputStream("config.xml");
            //método load faz a leitura através do objeto fis
            props.loadFromXML(fis);
        } catch (IOException e) {
            System.out.println(e.getMessage());
        }
        //Captura o valor da propriedade, através do nome da propriedade(Key)
        this.setUser(props.getProperty("jdbc.user"));
        this.setPasswd(props.getProperty("jdbc.passwd"));
        this.setUrl(props.getProperty("jdbc.url"));
        this.setDatabase(props.getProperty("jdbc.dataBase"));

    }

E para finalizar, o nosso método de Conexão ficaria mais ou menos dessa forma:

    public static Connection getConnection(){
        Connection con = null;
        try {
            JdbcConnection jdbc = new JdbcConnection();
            jdbc.getProps();
            if (jdbc.getUrl() == null) {
                jdbc.setProps();
                jdbc.getProps();
            }

            con = (Connection) DriverManager.getConnection(jdbc.getUrl() + "/" + jdbc.getDatabase(), jdbc.getUser(), jdbc.getPasswd());
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
        return con;
    }

Note que é preciso testar se o arquivo existe, para que os atributos do objeto jdbc não venham vazios. A maneira mais prática e didática que veio na minha mente foi testar se algum dos atributos ainda está nulo mesmo depois da chamada jdbc.getProps(); e, caso esteja nulo, chamo jdbc.setProps(); com as configurações “amarradas” no código-fonte do seu sistema. Porém, depois do arquivo gerado é possível alterar sem problemas.

6 dicas para efetuar uma compra online segura

Faltando menos de um mês para o Natal, os brasileiros estão em plena jornada de compras. Para fugir das filas, lojas lotadas e do risco de não encontrar o produto esperado, a cada ano que passa é maior o número de consumidores que optam pela comodidade das compras online. Um levantamento da e-bit, empresa especializada em informações de comércio eletrônico, aponta que este ano o varejo online brasileiro deve faturar cerca de R$3,25 bilhões só no período do Natal, um crescimento de 25% em relação a 2011. Na ansiedade de fechar uma boa compra, porém, muitos internautas acabam se esquecendo de um item essencial para a garantia de um bom negócio: a segurança.

 

Para evitar futuras dores de cabeça, dicas básicas ajudam a garantir uma compra online segura. “Hoje, é preciso ter cuidado não somente com o ambiente virtual, mas com o próprio meio pelo qual a compra está sendo realizada. Em um mundo onde cada vez mais a mobilidade é realidade, a tendência é que haja um aumento nas compras realizadas também por meio de smartphones e tablets, e esses dispositivos também devem estar seguros”, afirma Patrick Faria, especialista da empresa de Segurança da Informação Módulo.

 

Algumas dicas vão além do aspecto tecnológico, como desconfiar de promoções muito tentadoras e ler todas as informações da oferta anunciada. Para compras na internet, o especialista ressalta que, seguindo apenas algumas dicas básicas, listadas abaixo, já é possível diminuir consideravelmente a chance de cair em uma armadilha virtual.

Dicas ao consumidor:

 

1) Delete e-mails que chegam para você com propagandas não solicitadas, de modo a evitar alguma possível contaminação da sua máquina por vírus.

 

2) Escolha lojas que você conheça e apresentem o mesmo nível de qualidade nos ambientes físico e virtual.

 

3) Ao entrar no site, verifique se todos os links funcionam corretamente. Muitos fraudadores lançam mão de cópias de páginas reais e nestas páginas clonadas a maior parte dos links não funciona.

 

4) Verifique se existe um cadeado no rodapé da página. Clique nesse cadeado para verificar a existência de um certificado digital válido, que indica que a empresa onde você está fazendo a compra segue os preceitos legais da internet no Brasil para compras online.

 

5) Certifique-se de que está trabalhando em um ambiente seguro sempre que for inserir informações do seu cartão de crédito ou dados pessoais, como CPF. Empresas de certificação digital possuem bandeiras disponíveis em links na página da compra. Clique nesses links para verificar se estão abrindo corretamente. Assim, é possível ter mais garantia de que as informações que você disponibilizou serão protegidas e não serão utilizadas por outras pessoas.

 

6) Garanta a segurança do seu dispositivo móvel. Instale somente aplicativos confiáveis, preferencialmente de lojas oficiais, habilite a função Bluetooth somente durante o período em que for utilizado e não modifique o sistema, evitando procedimentos de desbloqueio não oficiais, como o “Jail Break” do iPhone e versões modificadas de “firmware” (sistema operacional do smartphone ou tablet). Além de causarem a perda da garantia, essas alterações podem incluir vírus ou programas que permitam o controle remoto do seu aparelho, como – roubo de informações da lista de contatos, envio das coordenadas geográficas do dispositivo e envio de fotos tiradas naquele dispositivo.

 

fonte: Assessoria de Imprensa da Módulo