quarta-feira, 21 de dezembro de 2011

Conectando Aplicação Java Com Banco de Dados

Fala galera!!! \0/
Estou aqui novamente para mostrar à vocês uma coisa excepcional no desenvolvimento em qualquer linguagem 'CONEXÃO COM O BANCO DE DADOS!'. Isso mesmo, hoje vamos aprender como fazer isso de uma forma bem simples. Então vamos lá!
Segue abaixo a Classe de Conexão:
public class Conexao {
static String status = "";
public static Connection getConnection(){
Connection con = null;
try {
Class.forName("com.mysql.jdbc.Driver");     //pega a classe Driver
String url = "jdbc:mysql://localhost/publico?user=root&password=";      //publico é o schema, root o usuario, e no meu caso nao tem senha.
con = DriverManager.getConnection(url);      //conecta ao banco.
status = "Conexão Aberta";         //muda o status para conexão aberta.
} catch (ClassNotFoundException e) {
status = e.getMessage();
} catch (SQLException e) {
status = e.getMessage();
} catch (Exception e){
status = e.getMessage();
}
return con;//retorna a conexao.
}
Agora que já temos a Classe Conexao, podemos começar a ‘brincar’ com nosso banco.
Criarei uma Classe chamada ComandosSql, que terá três métodos. Um para criar uma tabela, um para inserir um registro, e outro para consultar um registro. Segue então abaixo:
public class ComandosSql {
public void criaTabela(Statement stm) throws SQLException{
stm.execute("CREATE table pessoa(" +     //cria a tabela pessoa com os campos
"id_pessoa int auto_increment," +       //pk da tabela, com auto increment
"constraint sq_pessoa primary key(id_pessoa),"+      //sequence da tabela.
"nome char varying(200)," +      //nome da pessoa
"cpf char varying(14)" +       //cpf da pessoa
");");
}
public void inserePessoa(Statement stm, String id_pessoa, String nomePessoa, String cpf) throws SQLException{
stm.execute("insert into pessoa(id_pessoa,nome,cpf) values (" +    //cod sql para inserir um registro em um tabela
"'"+id_pessoa+"'," +    //valor da primary key
"'"+nomePessoa+"'," +    //valor do nome da pessoa
"'"+cpf+"')");     //valor do cpf
}
public void consultaRegistro(Statement stm, String nomePessoa) throws SQLException{
ResultSet resultSet = stm.executeQuery("select f.nome,f.cpf " +     //pega cpf e nome
"from pessoa f " +    //da tabela pessoa
"where f.nome='"+nomePessoa+"'");    //onde nome = nome passado
if(resultSet.next()){    //se tem resultado
System.out.println("Nome: "+resultSet.getString("f.nome")+     //imprime nome
"\nCpf: "+resultSet.getString("cpf"));    //e cpf.
}
}
}
Com a Classe criada, falta apenas executar os métodos, que é o que faremos na classe Main que segue abaixo:
public class Iniciar {
public static void main(String[] args) {
Connection con = Conexao.getConnection();//pega conexao e conecta.
System.out.println(Conexao.status);//imprime estado da conexao
try {
Statement stm = con.createStatement();//instancia um statment
ComandosSql comandosSql = new ComandosSql();//intancia um comandosSql
comandosSql.criaTabela(stm);//cria tabela
comandosSql.inserePessoa(stm,"1","Flavio Mendes", "000.000.000-00");//insere a pessoa
comandosSql.consultaRegistro(stm,"Flavio Mendes");//pesquisa nome.
} catch (SQLException e) {
e.printStackTrace();
}
}
}
É isso ai galera, mais uma dica dada à todos aqueles que seguem este blog e, aos demais que querem aprender um pouco mais sobre esta linguagem...
Abraços!

quarta-feira, 14 de dezembro de 2011

JNI e JNA


Fala galera! 
Após um tempo longe (bem longe para falar a verdade lá no congresso nacional), voltei aqui para mostrar-lhes o que na verdade é JNI e JNA e como utiliza-las para conectarmos uma impressora à nossa aplicação java!!! Vamos lá e bons códigos!
Diagrama JNI / JNA
Hoje, vamos ver o quando é fácil fazer um Cupom Fiscal no Java utilizando a camada JNA.
Primeiramente crie um novo projeto.
Agora baixe o driver JNA no site da daruma: http://www.desenvolvedoresdaruma.com.br
O conteúdo da pasta vem zipado, extraia estes arquivos.

Retorne ao Projeto Java, clique com o botão direito em Bibliotecas e em seguida clique em Adicionar JAR/pasta...
Selecione agora o conteúdo da pasta com o driver DarumaFramework.JAR,e clique em OK.
Pronto! Já esta importada a camada JNA DarumaFramework paraseu projeto.


Agora necessitamos importar a camada JNA de maneira quepossamos manipular suas funções através do código do projeto.
Em nosso caso iremos importar o pacote com os métodos uteis para todos osprodutos que é representado pela classe UTIL e os métodos das ImpressorasFiscais contidos na classe ECF.
Conforme abaixo:

Crie uma pequena interface gráfica em um formulário, semelhante ao exemploabaixo:
Agora na prática!


Verificando Porta e a Velocidade da Impressora 
1
2
3
4
5
private void mainPanelPropertyChange(java.beans.PropertyChangeEvent evt) {
        int iRetorno;
        iRetorno= ECF.eBuscarPortaVelocidade();
         
}


Abertura de Cupom Fiscal
1
2
3
4
5
private void cmd_abrirMouseClicked(java.awt.event.MouseEvent evt) {
   int iRetorno;
   iRetorno= ECF.iCFAbrirPadrao();
}
Registro de Item

1
2
3
4
5
6
7
8
9
10
11
private void cmd_venderMouseClicked(java.awt.event.MouseEvent evt) {
       int iRetorno;
       cmd_abrir.setEnabled(false);
       String aliquota, preco, codigo, descricao;
       aliquota= txt_aliquoata.getText();
       preco=txt_preco.getText();
       codigo=txt_cod.getText();
       descricao=txt_desc.getText();
        
       iRetorno= ECF.iCFVenderResumido(aliquota, preco, codigo, descricao);
}
Totalização do Cupom Fiscal
1
2
3
4
5
6
7
8
9
10
11
12
13
private void cmd_totalizarMouseClicked(java.awt.event.MouseEvent evt) {
  
        pnl_venda.setEnabled(false);
        cmd_vender.setEnabled(false);
        int iRetorno= ECF.iCFTotalizarCupomPadrao();
         
             if(iRetorno==1){
                   JOptionPane.showMessageDialog(null, "Cupom Fiscal Totalizado!");
                  }
            else
                   {
     JOptionPane.showMessageDialog(null, "Cupom Fiscal não Totalizado!");
                    }
Efetua Pagamento Padrão (Dinheiro)
1
2
3
4
private void cmd_pgtoMouseClicked(java.awt.event.MouseEvent evt) {
        cmd_totalizar.setEnabled(false);
        int iRetorno= ECF.iCFEfetuarPagamentoPadrao();
 }
Encerramento de Cupom Fiscal
1
2
3
4
private void cmd_finalizaMouseClicked(java.awt.event.MouseEvent evt) {
        cmd_pgto.setEnabled(false);
        int iRetorno= ECF.iCFEncerrarConfigMsg("Volte Sempre!");
    }  


É isso ai galera! Espero que mais uma vez tenha sido útil para vocês e que todos tenham desmitificado esta etapa da programação.
Abraços de seu amigo Bruno Rafael!

Admin: Bruno

Olá Galera! muito grato por estarem acessando nosso blog. Espero que seja possível transmitir de forma compreensível um pouco de meus conhecimentos em programação, para esta comunidade de desenvolvedores que cresce cada vez mais! Espero que Gostem! Abraço! E meu enorme obrigado à Renato Simões, Átila Soares,Wanderson Quinto, Emerson e a toda galera que sempre ajudou meu sincero obrigado....
Especialmente a Natalia Failache e Rita de Cassia que sempre apoiaram este sonho....

De seu amigo Bruno Rafael.