Páginas

Pesquisar este blog

quinta-feira, 4 de abril de 2019

conf


contrato: M19
ajuste: 3985.5

terça-feira, 21 de setembro de 2010

Mudança de Endereço

Este blog mudou de endereço, clique aqui para ser redirecionado.

quinta-feira, 29 de abril de 2010

Java mon amour: Typical options for a JRA recording


Typical options for a JRA recording

Lenda dos Profissionais de TI

Lenda dos Profissionais de TI

Conta a lenda que quando Deus liberou os conhecimentos das artes entre os homens, determinou que a Tecnologia ficaria restrita a um grupo muito selecionado de sábios, pois entender seus conceitos era uma grande arte! Mas neste pequeno grupo, onde todos se achavam "Semi-Deuses", alguém traiu as determinações divinas… Deus, bravo com a traição, resolveu fazer valer alguns mandamentos para aqueles que escolhessem a tal profissão:

1º – Não terás vida social, familiar ou sentimental.
2º – Não verás teus filhos crescerem.
3º – Não terás feriado, fins de semana ou qualquer outro tipo de folga.
4º – Terás gastrite, se tiveres sorte, se for como os demais, terás úlcera. Às vezes um ou mais enfartos!
5º – A pressa será tua única amiga e as suas refeições principais serão os lanches.
6º – Teus cabelos ficarão brancos antes do tempo, isso se te sobrares cabelos!
7º – Tua sanidade mental será posta em cheque antes que completes 5anos de trabalho.
8º – Dormir será considerado período de folga, logo, não dormirás.
9º – Trabalho será teu assunto preferido, talvez o único!
10º – As pessoas serão divididas em 2 tipos: as que entendem de TI e as que não entendem.
11º – A máquina de café será a tua melhor amiga de trabalho, porém, à cafeína não te farás mais efeito.
12º – Happy Hours serão excelentes oportunidades de ter contato com outras pessoas loucas como você.
13º – Terás sonhos com códigos fonte, bancos de dados e telecomunicações, e resolverás problemas de trabalho neste período.
14º – Exibirás olheiras como troféu de guerra… E o pior: Inexplicavelmente gostarás de tudo isso!
15º – Não poderás adoecer!
16º – Todo dia tudo recomeçará do zero novamente, pois qualquer conhecimento em TI não vale por muito tempo !

quarta-feira, 28 de abril de 2010

Class Finder - Encontrando Classes


Quem nunca precisou de uma classe para descompilá-la e não sabia onde encontrar a mesma.

Eu já passei por várias situações como esta.

Bem, para este fim podemos usar o ClassFinder

Utilitário bastante eficiente!

Basta que você faça o download e execute-o da seguinte maneira:

java -jar classfinder.jar -d dir/ -c AlgumaClasse

-d Especifica o diretório à ser usado. Argumento obrigatório

-c Especifica o nome da classe à ser encontrada dentro dos jars. A busca é feita em case-sensitive, a menos que você use a opção p. Este argumento é obrigatório(must define it!) 
-v Verbose

Espero ter ajudado!
Abraços!
 

sábado, 24 de abril de 2010

Seu código no seu blog como na sua IDE

Eclipse


No eclipse você terá de instalar o Java2Html

Basta que você descompacte jogue seu conteúdo na pasta plugin no diretório de instalação do seu eclipse.

Reinicie o eclipse.

Agora você está apto exportar seu código colorido em html, basta que você selecione a parte do código que você deseja clicar com o botão direito, e escolher a opção Java2Html. Veja a figura abaixo:













Salve em um arquivo, e abra com o brOffice ou Microsoft Word.

Agora você pode copiar e colar seu código onde quiser.

Netbeans


No netbeans, a tarefa se torna ainda mais fácil, basta que você acesse a opção print to html  no menu arquivo.

Faça o mesmo procedimento abrindo seu html com o brOffice ou MS Wordl.


rideick@gmail.com
Follow me on twitter

sábado, 17 de abril de 2010

Como incializar um array de forma correta

Simples!

// Exemplo de um array mal inicializado:

public class Test {
public static void main(String args[]) {
String sa[] = new String[5];
sa[0].charAt(0);
}
}

// Exemplo de um array inicializado corretamente:

public class Test {
public static void main(String args[]) {
String sa[] = new String[5];

for(int i = 0; i < 5; i++) {
sa[i] = new String();
}

sa[0].charAt(0);
}
}

Array Multidimensional em Java


Para este exemplo utilizaremos o conceito de agenda.

Primeiro inicialize seu array da seguinte forma:

        String agenda[][] = new String[][]{{"João", "8898-4452", "Rua Perdigão"},
            {"Pedro", "9984-5569", "Alameda Rio Negro"},
            {"Ana", "7422-9966", "Alameda Porto Alegre"},
            {"Bia", "5555-2244", "Av. do Estado"}};
 
Para a impressão do mesmo utilize dois for's(note que o array tem duas dimensões) da seguinte forma:

            for(int i = 0; i < agenda.length; i++ ){

            System.out.println("--------");

            for(int e = 0; e < agenda[i].length; e++){

                System.out.println(agenda[i][e]);
                
            }
 
Saída:
 
João
8898-4452
Rua Perdigão
--------
Pedro
9984-5569
Alameda Rio Negro
--------
Ana
7422-9966
Alameda Porto Alegre
--------
Bia
5555-2244
Av. do Estado 
  
Rápido e simples!





quinta-feira, 15 de abril de 2010

Transformando Weblogic 32 bits em 64bits


1. Copie as bibliotecas nativas 64-bits de um servidor que tenha um weblogic 64 bits instalado. Copiar os arquivos se encontram em install_dir/wlserver_10.0/Server/native/linux/x86_64 para o servidor weblogic de 32 bits no diretório install_dir/wlserver_10.0/Server/native/linux/x86_64

2. No servidor que você acabou de copiar as libs, altere o arquivo install_dir/wlserver_10.0/common/bin/commEnv.sh, no trecho:

LINUX|Linux)

arch=`uname –m

if [arch =’x86_64’]

arch=’i686’

fi

Remova as linhas:

if [arch =’x86_64’]

arch=’i686’

fi

3. Reinicie o NodeManager e seus Managed Servers.

domingo, 21 de março de 2010

Java para Web - Aprendendo a programar - Parte II - JSP, Javabean, Mysql com login criptografado

Nesta segunda parte vou postar os códigos que consegui desenvolver durante este período. Consegui fazer um pequeno código, com autenticacao usando o banco de dados mysql, consulta de cadastro e inclusão no banco de dados.

Desculpem me se o código estiver um tanto quanto tosco. Lembro que estou apenas aprendendo.

index.jsp


<%-- 
    Document   : index
    Created on : 16/03/2010, 15:39:11
    Author     : Alexandro Félix Pereira
--%>


<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">


<%--Cria instâncias das classes userBean e UserDataBean--%>
<jsp:useBean id="user" class="com.vignette.vps.UserBean" scope="page"/>
<jsp:useBean id="userData" class="com.vignette.vps.UserDataBean" scope="page"/>


<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Pet Plus</title>
    </head>
    <body>
        <%-- Seta todas as propriedades do java bean UserBean, que
         equivalem ao nome dos campos "input" abaixo --%>
        <jsp:setProperty name="user" property="*"/>
        <%
        /*Testa se os campos userName ou senha são diferente de null, caso algum seja,
        significa que temos uma consulta à ser realizada, caso contrário exibe os
        campos para consulta*/
        if(user.getUserName() == null |
           user.getSenha() == null){
        %>
        <form action="index.jsp" method="post">
            <table>
                <tr><th>Usuário:</th>
                    <th><input name="userName" type="text"/></th>
                </tr>
                <tr><th>Senha:</th>
                    <th><input name="senha" type="password"/></th>
                </tr>
            </table>
            <input type="submit" name="Entrar" value="Enviar"/>
        </form>
    <%
    /*Verifica as credenciais do usuário, caso o retorno seja "true", redireciona
      o usuário para home.jsp*/
    }else if(userData.getCredentials(user.getUserName(), user.getSenha())){
    %>
        <jsp:forward page = "home.jsp"/>
    <%
    /*Caso usuário ou senha estejam incorretos, será exibida a mensagem abaixo  */
    }else{
        out.println("Usuário ou senha incorretos");      
    %>
    <br />
    <%-- Link recarrega a pagina apos insercao de dados incorreta --%>
    <a href="index.jsp">Voltar</a>    
    <% } %><%-- finaliza o "else" --%>
    </body>
</html>


##################################################
home.jsp



<%-- 
    Document   : home
    Created on : 16/03/2010, 16:17:01
    Author     : Alexandro Félix Pereira
--%>


<%@page contentType="text/html" pageEncoding="UTF-8"
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Pet Plus</title>
    </head>
    <body>
        <h2><strong>O que deseja fazer?</strong></h2>
        <table>
            <tr>
                <th><a href="listaClientes.jsp">Consultar Clientes</a></th>
            </tr>
            <tr>
                <th><a href="incluirClientes.jsp">Cadastrar Clientes</a></th>
            </tr>
        </table>        
    </body>
</html>


##################################################
listaClientes.jsp

<%-- 
    Document   : listaClientes
    Created on : 17/03/2010, 12:31:29
    Author     : Alexandro Félix Pereira
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">
<%--Cria instâncias das classes userBean e UserDataBean--%>
<jsp:useBean id="userData" class="com.vignette.vps.UserDataBean" scope="page"/>
<jsp:useBean id="user" class="com.vignette.vps.UserBean" scope="page"/>

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Consulta Clientes</title>
    </head>
    <%--Seta prpriedades--%>
    <jsp:setProperty name="user" property="*"/>
    <%-- Se nome ou id igual null, exibe a página para consulta --%>
    <%
    if((user.getId() == null && user.getNome() == null)){
    %>
    <body>
        <h2><strong>O que deseja fazer?</strong></h2>
        <form action="listaClientes.jsp">
        <table>
            <tr>
                <th align="left">Id:</th>
                <th align="left"><input type="text" name="id" value="" size="30" /></th>
            </tr>
            <tr>
                <th align="left">Nome do cliente:</th>
                <th align="left"><input type="text" name="nome" value="" size="30" /></th>
            </tr>            
        </table>
            <input type="submit" value="Consultar" name="consultar" />
        </form>
    <%  /*
        se o retorno do metodo listaClientes for verdadeiro, exibe o resultado
        da consulta
        */
        }else if(userData.listaClientes(user.getNome(), user.getId())){
    %>
        <table width="90%" border="1">
          <tr>
    <%  // write out the header cells containing the column labels
         for (int i=1; i<=userData.getColumns(); i++) {
              out.write("<th>" + userData.getRsmd().getColumnLabel(i) + "</th>");
         }
    %>
    </tr>
    <% // now write out one row for each entry in the database table
         while (userData.getResult().next()) {
            out.write("<tr>");
            for (int i=1; i<=userData.getColumns(); i++) {
               out.write("<td>" + userData.getResult().getString(i) + "</td>");
            }
            out.write("</tr>");
         }     
     }
    %>
    </table>
    </body>
</html>
##################################################
incluirClientes.jsp
<%-- 
    Document   : incluirClientes
    Created on : Mar 21, 2010, 6:05:29 PM
    Author     : rideick
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<%--Cria instâncias das classes userBean e UserDataBean--%>
<jsp:useBean id="user" class="com.vignette.vps.UserBean" scope="request"/>
<jsp:useBean id="userData" class="com.vignette.vps.UserDataBean" scope="request"/>

<HTML>
    <HEAD><META http-equiv="Content-Type" content="text/html; charset=UTF-8">
          <TITLE>Incluir Clientes</TITLE>
    </HEAD>
    <BODY>
        <%-- Define as propriedades do bean user--%>
        <jsp:setProperty name="user" property="*"/>
        <%
        //se nome diferente de null exibe a página para inclusão de cliente
        if(user.getNome() == null){
        %>
        <H3>Incluir Cliente</H3>
        <FORM action="incluirClientes.jsp" method="get">
            <TABLE>
                <TBODY><TR><TH align="left">Nome do Cliente:</TH>
                    <TH><INPUT type="text" name="nome" value="" size="60"></TH>
                </TR>
                <TR><TH align="left">Endereço:</TH>
                    <TH><INPUT type="text" name="end1" value="" size="60"></TH>
                </TR>
                <TR><TH align="left">Endereço Secundário:</TH>
                    <TH><INPUT type="text" name="end2" size="60"></TH>
                </TR>
                <TR><TH align="left">CEP:</TH>
                    <TH><INPUT type="text" name="cep" size="60"></TH>
                </TR>
                <TR><TH align="left">Cidade:</TH>
                    <TH><INPUT type="text" name="cidade" size="60"></TH>
                </TR>
                <TR><TH align="left">Estado</TH>
                    <TH><INPUT type="text" name="estado" size="60"></TH>
                </TR>
                <TR><TH align="left">Telefone:</TH>
                    <TH><INPUT type="text" name="telefone" size="60"></TH>
                </TR>
                <TR><TH align="left">Fax:</TH>
                    <TH><INPUT type="text" name="fax" size="60"></TH>
                </TR>
                <TR><TH align="left">E-mail:</TH>
                    <TH><INPUT type="text" name="email" size="60"></TH>
                </TR>
                <TR><TH align="left">Código de Desconto:</TH>
                    <TH><INPUT type="text" name="cod_desc" size="60"></TH>
                </TR>
                <TR><TH align="left">Limite de Crédito:</TH>
                    <TH><INPUT type="text" name="lim_cred" size="60"></TH>
                </TR>
            </TBODY></TABLE>
            <INPUT type="submit" value="Incluir" name="incluir">
        </FORM>
        <%
        }else{
            //construcao do sql para inclusão do cliente
            userData.setSql(user.getId(),user.getNome(),user.getEnd1(),user.getEnd2(),
                            user.getCep(),user.getCidade(),user.getEstado(),user.getTelefone(),
                            user.getFax(),user.getEmail(),user.getCod_desc(),user.getLim_cred());
            //se as linhas afetadas maior ou igual a 1, exibe mensagem de sucesso.
         }if(userData.getLinhas() >= 1){
        %>
        <strong>Dados inseridos com sucesso</strong><br />
        <a href="incluirClientes.jsp">Voltar</a>
        <%
        }
        %>
    </BODY>
</HTML>
##################################################
UserBean.java

package com.vignette.vps;

import java.io.Serializable;
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
 *
 * @author rideick
 */
public class UserBean implements Serializable{

    private String userName,senha,id,nome,end1,end2,
                   cep,cidade,estado,telefone,fax,email,
                   cod_desc,lim_cred;

    /**
     * @return the nome
     */
    public String getNome() {
        return nome;
    }

    /**
     * @param nome the nome to set
     */
    public void setNome(String nome) {
        this.nome = nome;
    }

    /**
     * @return the senha
     */
    public String getSenha() {
        return senha;
    }

    /**
     * @param senha the senha to set
     */
    public void setSenha(String senha) {

        try {
        MessageDigest md5 = MessageDigest.getInstance("MD5");
        md5.update(senha.getBytes());
        BigInteger hash = new BigInteger(1, md5.digest());
        senha = hash.toString(16);
        } catch (NoSuchAlgorithmException nsae) {

        }

        this.senha = senha;
    }

    /**
     * @return the id
     */
    public String getId() {
        return id;
    }

    /**
     * @param id the id to set
     */
    public void setId(String id) {
        this.id = id;
    }

    /**
     * @return the userName
     */
    public String getUserName() {
        return userName;
    }

    /**
     * @param userName the userName to set
     */
    public void setUserName(String userName) {
        this.userName = userName;
    }

    /**
     * @return the end1
     */
    public String getEnd1() {
        return end1;
    }

    /**
     * @param end1 the end1 to set
     */
    public void setEnd1(String end1) {
        this.end1 = end1;
    }

    /**
     * @return the end2
     */
    public String getEnd2() {
        return end2;
    }

    /**
     * @param end2 the end2 to set
     */
    public void setEnd2(String end2) {
        this.end2 = end2;
    }

    /**
     * @return the cep
     */
    public String getCep() {
        return cep;
    }

    /**
     * @param cep the cep to set
     */
    public void setCep(String cep) {
        this.cep = cep;
    }

    /**
     * @return the cidade
     */
    public String getCidade() {
        return cidade;
    }

    /**
     * @param cidade the cidade to set
     */
    public void setCidade(String cidade) {
        this.cidade = cidade;
    }

    /**
     * @return the estado
     */
    public String getEstado() {
        return estado;
    }

    /**
     * @param estado the estado to set
     */
    public void setEstado(String estado) {
        this.estado = estado;
    }

    /**
     * @return the telefone
     */
    public String getTelefone() {
        return telefone;
    }

    /**
     * @param telefone the telefone to set
     */
    public void setTelefone(String telefone) {
        this.telefone = telefone;
    }

    /**
     * @return the fax
     */
    public String getFax() {
        return fax;
    }

    /**
     * @param fax the fax to set
     */
    public void setFax(String fax) {
        this.fax = fax;
    }

    /**
     * @return the email
     */
    public String getEmail() {
        return email;
    }

    /**
     * @param email the email to set
     */
    public void setEmail(String email) {
        this.email = email;
    }

    /**
     * @return the cod_desc
     */
    public String getCod_desc() {
        return cod_desc;
    }

    /**
     * @param cod_desc the cod_desc to set
     */
    public void setCod_desc(String cod_desc) {
        this.cod_desc = cod_desc;
    }

    /**
     * @return the lim_cred
     */
    public String getLim_cred() {
        return lim_cred;
    }

    /**
     * @param lim_cred the lim_cred to set
     */
    public void setLim_cred(String lim_cred) {
        this.lim_cred = lim_cred;
    }

}
##################################################
UserDataBean.java
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.vignette.vps;

import javax.naming.NamingException;
import javax.sql.*;
import java.sql.*;
import javax.naming.Context;
import javax.naming.InitialContext;

/**
 *
 * @author Alexandro Felix Pereira
 */
public class UserDataBean {
    
    private Statement pstmt = null;
    private PreparedStatement pst = null;
    private ResultSetMetaData rsmd = null;
    private ResultSet result = null;
    private Context ctx = new InitialContext();
    private DataSource ds = (DataSource) ctx.lookup("petplus");
    private Connection connection = ds.getConnection();

    String usrName, pass;
    private boolean credentials = false;
    private int columns = 0;
    private int linhas = 0;

    private String sql = null;

    UserBean usrBean = new UserBean();

    public UserDataBean()
            throws SQLException, NamingException{
    }

    public boolean getCredentials(String userName, String senha) 
            throws SQLException, NamingException{

        String sql = "SELECT user_name,password " +
                     "FROM users " +
                     "WHERE user_name='" + userName + "' " +
                     "AND password='" + senha + "'";

        try{
            
            setPstmt(getConnection().createStatement());

            setResult(getPstmt().executeQuery(sql));

            while(result.next()){

                if( getResult().getString("user_name").equals(userName) &&
                    getResult().getString("password").equals(senha)){

                    credentials = true;

                }

            }
            
        }
        catch(SQLException e){

            System.out.println("Exception na consulta: SELECT user_name,password " +
                                              "FROM users " +
                                              "WHERE user_name='" + userName + "' " +
                                              "AND password='" + senha + "'" + e);

        }

        return credentials;

    }

    public boolean listaClientes(String nome, String id) throws SQLException{

        setPstmt(getConnection().createStatement());

        try{
        if (ds != null) {

            if(id == null && nome == null){

                    setResult(getPstmt().executeQuery("SELECT customer_id as id, " +
                                                     "name as nome, " + "city as cidade, " +
                                                     "" + "phone as telefone, " + "state as estado, " +
                                                     "addressline1 as endereço, " +
                                                     "addressline2 as endereço_alternativo, " +
                                                     "credit_limit as limite_de_crédito " +
                                                     "FROM customer " +
                                                     "ORDER BY name"));

            }else if(id != null && nome == null){

                    setResult(getPstmt().executeQuery("SELECT customer_id as id, name as nome, city as cidade, " +
                                                      "phone as telefone, state as estado, " +
                                                      "addressline1 as endereço, " +
                                                      "addressline2 as endereço_alternativo, " +
                                                      "credit_limit as limite_de_credito " +
                                                      "FROM customer " +
                                                      "WHERE customer_id=" + id + " " +
                                                      "ORDER BY name"));

            }else if(id != null && nome != null){

                    setResult(getPstmt().executeQuery("SELECT customer_id as id, name as nome, city as cidade, " +
                                                      "phone as telefone, state as estado, " +
                                                      "addressline1 as endereço, " +
                                                      "addressline2 as endereço_alternativo, " +
                                                      "credit_limit as limite_de_credito " +
                                                      "FROM customer " +
                                                      "WHERE customer_id=" + id + " " +
                                                      "AND LOWER(name) LIKE '%" + nome + "%' " +
                                                      "ORDER BY name"));
            }else{

                    setResult(getPstmt().executeQuery("SELECT customer_id as id, name as nome, city as cidade, " +
                                                      "phone as telefone, state as estado, " +
                                                      "addressline1 as endereço, " +
                                                      "addressline2 as endereço_alternativo, " +
                                                      "credit_limit as limite_de_credito " +
                                                      "FROM customer " +
                                                      "WHERE LOWER(name) " +
                                                      "LIKE '%" + nome + "%' " +
                                                      "ORDER BY name"));
            }

            if(result != null ){
                credentials = true;
            }
        }
     }
     catch (SQLException e) {
        System.out.println("Error occurred " + e);
      }
      
      try {
            setRsmd(getResult().getMetaData());
            setColumns(getRsmd().getColumnCount());
      }
      catch (SQLException e) {
         System.out.println("Error occurred " + e);
      }
     return credentials;

    }

    public void setSql(String id,String nome,String end1,String end2,
            String cep,String cidade,String estado,String telefone,
            String fax,String email,String cod_desc,String lim_cred) throws SQLException{
        
        pstmt = connection.createStatement();

        sql = "INSERT INTO customer " +
              "(discount_code, zip, name, " +
              "addressline1, addressline2, city, state, phone, " +
              "fax, email, credit_limit) " +
              "VALUES ('" + cod_desc + "','" +
              cep +"','" + nome + "','" + end1 + "','" + end2 +"','" +
              cidade + "','" + estado + "','" + telefone
              + "','" + fax + "','" + email + "'," + lim_cred + ")";

        setLinhas(pstmt.executeUpdate(sql));
        
    }

    public String getSql(){

        return sql;
    }

    /**
     * @return the columns
     */
    public int getColumns() {
        
        return columns;
    }

    /**
     * @param columns the columns to set
     */
    public void setColumns(int columns) {
        this.columns = columns;
    }

    /**
     * @return the rsmd
     */
    public ResultSetMetaData getRsmd() {
        return rsmd;
    }

    /**
     * @param rsmd the rsmd to set
     */
    public void setRsmd(ResultSetMetaData rsmd) {
        this.rsmd = rsmd;
    }

    /**
     * @return the result
     */
    public ResultSet getResult() {
        return result;
    }

    /**
     * @param result the result to set
     */
    public void setResult(ResultSet result) {
        this.result = result;
    }

    /**
     * @return the connection
     */
    public Connection getConnection() {
        return connection;
    }

    /**
     * @param connection the connection to set
     */
    public void setConnection(Connection connection) {
        this.connection = connection;
    }

    /**
     * @return the pstmt
     */
    public Statement getPstmt() {
        return pstmt;
    }

    /**
     * @param pstmt the pstmt to set
     */
    public void setPstmt(Statement pstmt) {
        this.pstmt = pstmt;
    }  
    /**
     * @return the pst
     */
    public PreparedStatement getPst() {
        return pst;
    }

    /**
     * @param pst the pst to set
     */
    public void setPst(String sql) throws SQLException {

        pst = connection.prepareStatement(sql);
        
    }
    /**
     * @return the linhas
     */
    public int getLinhas() {
        return linhas;
    }

    /**
     * @param linhas the linhas to set
     */
    public void setLinhas(int linhas) {
        this.linhas = linhas;
    }

    @Override
    public void finalize() throws SQLException{

        try{
            result.close();
            connection.close();
            pstmt.close();
        }
        catch(SQLException e){
            System.out.print(e);
        }

    }


}




quinta-feira, 18 de março de 2010

Java para Web - Aprendendo a programar

Depois de um tempo de inatividade, estou eu aqui de volta à "blogar". Agora para passar um pouco minha experiência com programação para web.

Bem, sempre tive vontade de desenvolver aplicações, pois considero a programação, uma arte. Acredito que seja uma grande satisfação, desenvolver algo útil onde você pode facilitar a vida das pessoas através de seu trabalho, e dessa forma, contribuir com o meio em que você vive.
Até hoje tenho desenvolvido, pequenos programas em variadas linguagens, php, C, java e shell script, uma boa gama de linguagens, para alguém que até agora tem na programação, umas espécie de hobby. Contudo, na maioria dos casos, os programas desenvolvidos, só serviram para o meu próprio deleito, nada sofisticados, multi usuário, ou que atendesse a uma certa quantidade de pessoas.

Agora que relatei alguns dos motivos, que me levaram, a realmente aprender a programar. Vou tentar passar um pouco da minha experiência, relatando dificuldades e o que houver de mais relevante, e claro, sempre que aprender algo novo, postarei aqui, para ajudar novos "programadores" como eu.

A duas semanas atrás, estava na livraria Saraiva, e encontrei um livro chamado: Denvolvendo aplicações para web com jsp, servlets, javaserver faces, hibernate, ejb 3 persitense e ajax. Li um pouco o que havia no mesmo e resolvi comprar. É um livro muito, estou usando ele como base no meu aprendizado, que hoje, está fazendo mais ou menos uma semana desde seu início. Até agora, aprendi um pouco sobre servlets, jsp, e javabeans. Já consegui fazer uma página de login, efetuando a consulta em um data source, no app server, uma página para inclusão de dados e outra para consulta de dados. Nada mal para uma semana.

Hoje, aprendi um novo conceito, aprendi que não é uma boa prática, criar a conexão ao banco de dados, dentro da jsp. Devemos fazer isto através de um javabean. Dessa maneira, tornamos nosso código mais legível, mais coeso, e o reaproveitamento de código é mais eficiente. Estou tendo uma certa dificuldade, mas acho que amanhã, consigo transferir toda a parte de conexão com banco, para javabean.

O aprendizado tem sido fantástico, algo que tem me motivado, e me mantido na frente do computador. Estou me fascinando por esta área, e espero que com os conhecimentos adquiridos, possa ajudar outras pessoas a resolver seus problemas, e passar conhecimento às mesmas.

Por hoje é só.

Abraços e boa noite!

terça-feira, 27 de outubro de 2009

Linus Torvalds Aprova Windows 7...



Não gente, não é o fim do mundo, o que aconteceu é que a sra M$ resolveu montar um quiosque em frente a um Simpósio de Software Livre que estava acontecendo no Japão. Linus, para não perder a oportunidade, foi tirar uma onda com o querido sistema da M$. Que não é lá uma carroça, mas também não é nada de mais.

Vocês podem checar a notícia nos links:



Então galera aliviados? :D

Até a próxima.

segunda-feira, 26 de outubro de 2009

Windows 7

Depois de se dar conta do Fiasco que o Windows Vista estava sendo, nossa querida M$ resolveu lançar a mais nova e revolucionári a versão do Windows já mais vista em todos os tempos, o tão esperado Windows 7. Então, a tão esperada versão deste querido sistema foi lançada. E pasmem! É melhor que o seu sucessor (o que não é lá grande coisa). É um sistema estável, estou usando-o a mais ou menos duas semanas, e até agora não travou uma vez se quer, além de ser mais rápido que o Vista, mas ainda mais lento que o XP. Tudo bem, sei que todos nós conhecemos vários sistemas que não travam e etc. Mas se falando de Windows e M$, estabilidade e velocidade nunca foram a praia desta querida empresa. Afinal, quem não lembra das famosas blue screens? Em alguns momentos era simplesmente impossível usar tal sistema, 95, 98, Me(pior de todos) erão umas carroças, você tinha que usar e sempre estar salvando seu documento a cada 30 segundos, caso não... o estrago estaria feito. Por tanto velocidade e estabilidade é um feito e tanto ( se trantando de M$ ). Porém, está muito cedo ainda, com disse minha estou usando a apenas alguns dias, e todos sabemos que este sistema piora com o passar do tempo. Vamos ver como ele se comporta.

domingo, 30 de agosto de 2009

Obtendo a SCJA

SCJA

A SCJA é uma certificação que tem como alvo, desenvolvedores iniciantes ou gerentes que desejam entender a tecnologia java como um todo. Ela aborda a tecnologia java como um todo. Aborda conhecimentos básicos de algorítimo, orientação objetos, uml, J2EE... abordando de uma maneira não profunda, porém cuidado, não quer dizer quem você deve apenas saber como criar uma variável, o teste inclui análise de código com várias pegadinhas.

Agora que sabemos um pouco mais sobre a SCJA, vou delatar os métodos que adotei, e que me tornaram capaz de obter esta certificação.

Aquisição do livro SCJA de Marcelo Castellani

http://www.submarino.com.br/busca?q=scja&dep=+&x=0&y=0

Este livro por si, não é suficiente para o êxito no teste, além disso você terá de consultar a documentação do Java.
API do java
o teste vai te cobrar um bom conhecimento. Ler o tutorial do J2ee e familiarizar-se com as tecnologias Java.

Algorítimo

Fazer pequenos programas, ajuda na assimilação dos objetivos da prova.

Uml

Considero este requisito, o mais fácil dentre todos os outros do exame, juntamente com a parte de algorítimo. O exame não se aprofunda muito neste assunto, basicamente você terá de saber como identificar, uma classe concreta, abstrata, um objeto, atributos públicos e privados, herança e alguma coisa a mais.

Após um bom estudo do material adquirido, siga para os simulados, eles ajudam bastante, pois com os mesmos você poderá identificar suas áreas fortes e fracas, e também acostumar com o estilo de questões da prova.

Books
http://www.amazon.com/Certified-Associate-Study-CX-310-019-Certification/dp/0071490035/ref=sr_1_1?ie=UTF8&s=books&qid=1251690396&sr=8-1
http://www.amazon.com/Certified-Associate-Study-Guide-CX-310-019/dp/1598729020/ref=sr_1_2?ie=UTF8&s=books&qid=1251690396&sr=8-2

Api Java
http://java.sun.com/j2se/1.5.0/docs/api/

Simulados
http://www.whizlabs.com/
http://www.javacertificationexams.com/scja-mock-exams.php
http://www.cafe4java.com/mockexams/scja/mock1/q1.php 
http://www.javabeat.net/cert/scja/mock-exam/
J2EE
http://java.sun.com/blueprints/guidelines/designing_enterprise_applications/apmTOC.html
http://java.sun.com/javaee/5/docs/tutorial/doc/

Objetivos

Section 1: Fundamental Object-Oriented Concepts


  • Describe, compare, and contrast primitives (integer, floating point, boolean, and character), enumeration types, and objects.
  • Describe, compare, and contrast concrete classes, abstract classes, and interfaces, and how inheritance applies to them.
  • Describe, compare, and contrast class compositions, and associations (including multiplicity: (one-to-one, one-to-many, and many-to-many), and association navigation.
  • Describe information hiding (using private attributes and methods), encapsulation, and exposing object functionality using public methods; and describe the JavaBeans conventions for setter and getter methods.
  • Describe polymorphism as it applies to classes and interfaces, and describe and apply the "program to an interface" principle.


Section 2: UML Representation of Object-Oriented Concepts


  • Recognize the UML representation of classes, (including attributes and operations, abstract classes, and interfaces), the UML representation of inheritance (both implementation and interface), and the UML representation of class member visibility modifiers (-/private and +/public).
  • Recognize the UML representation of class associations, compositions, association multiplicity indicators, and association navigation indicators.


Section 3: Java Implementation of Object-Oriented Concepts


  • Notes: code examples may use the 'new' operator.
  • Develop code that uses primitives, enumeration types, and object references, and recognize literals of these types.
  • Develop code that declares concrete classes, abstract classes, and interfaces, code that supports implementation and interface inheritance, code that declares instance attributes and methods, and code that uses the Java access modifiers: private and public.
  • Develop code that implements simple class associations, code that implements multiplicity using arrays, and recognize code that implements compositions as opposed to simple associations, and code that correctly implements association navigation.
  • Develop code that uses polymorphism for both classes and interfaces, and recognize code that uses the "program to an interface" principle.


Section 4: Algorithm Design and Implementation


  • Describe, compare, and contrast these three fundamental types of statements: assignment, conditional, and iteration, and given a description of an algorithm, select the appropriate type of statement to design the algorithm.
  • Given an algorithm as pseudo-code, determine the correct scope for a variable used in the algorithm, and develop code to declare variables in any of the following scopes: instance variable, method parameter, and local variable.
  • Given an algorithm as pseudo-code, develop method code that implements the algorithm using conditional statements (if and switch), iteration statements (for, for-each, while, and do-while), assignment statements, and break and continue statements to control the flow within switch and iteration statements.
  • Given an algorithm with multiple inputs and an output, develop method code that implements the algorithm using method parameters, a return type, and the return statement, and recognize the effects when object references and primitives are passed into methods that modify them.
  • Given an algorithm as pseudo-code, develop code that correctly applies the appropriate operators including assignment operators (limited to: =, +=, -=), arithmetic operators (limited to: +, -, *, /, %, ++, --), relational operators (limited to: <, <=, >, >=, ==, !=), logical operators (limited to: !, &&, ||) to produce a desired result. Also, write code that determines the equality of two objects or two primitives.
  • Develop code that uses the concatenation operator (+), and the following methods from class String: charAt, indexOf, trim, substring, replace, length, startsWith, and endsWith.


Section 5: Java Development Fundamentals


  • Describe the purpose of packages in the Java language, and recognize the proper use of import and package statements.
  • Demonstrate the proper use of the "javac" command (including the command-line options: -d and –classpath), and demonstrate the proper use of the "java" command (including the command-line options: -classpath, -D and –version).
  • Describe the purpose and types of classes for the following Java packages: java.awt, javax.swing, java.io, java.net, java.util.


Section 6: Java Platforms and Integration Technologies


  • Distinguish the basic characteristics of the three Java platforms: J2SE, J2ME, and J2EE, and given a high-level architectural goal, select the appropriate Java platform or platforms.
  • Describe at a high level the benefits and basic characteristics of RMI.
  • Describe at a high level the benefits and basic characteristics of JDBC, SQL, and RDBMS technologies.
  • Describe at a high level the benefits and basic characteristics of JNDI, messaging, and JMS technologies.


Section 7: Client Technologies


  • Describe at a high level the basic characteristics, benefits and drawbacks of creating thin-clients using HTML and JavaScript and the related deployment issues and solutions.
  • Describe at a high level the basic characteristics, benefits, drawbacks, and deployment issues related to creating clients using J2ME midlets.
  • Describe at a high level the basic characteristics, benefits, drawbacks, and deployment issues related to creating fat-clients using Applets.
  • Describe at a high level the basic characteristics, benefits, drawbacks, and deployment issues related to creating fat-clients using Swing.


Section 8: Server Technologies


  • Describe at a high level the basic characteristics of: EJB, servlets, JSP, JMS, JNDI, SMTP, JAX-RPC, Web Services (including SOAP, UDDI, WSDL, and XML), and JavaMail.
  • Describe at a high level the basic characteristics of servlet and JSP support for HTML thin-clients.
  • Describe at a high level the use and basic characteristics of EJB session, entity and message-driven beans.
  • Describe at a high level the fundamental benefits and drawbacks of using J2EE server-side technologies, and describe and compare the basic characteristics of the web-tier, business-tier, and EIS tier.

Espero ter ajudado de alguma forma.

Abraços!