JAVA com MYSQL

3 views
Skip to first unread message

Joao de Souza

unread,
Sep 28, 2011, 10:21:31 AM9/28/11
to etecpg-2-se...@googlegroups.com
Marcos, manda o arquivo da ultima aula, por favor.
Segue para quem faltou ou teve dificuldades na aula de REFLECTION. Rodei no meu pc e ta funfando.
Exemplo da penultima aula do professor Alexandre.


Foi criada uma tabela no mySql
tb_UF (id_UF [autoIncrement], nm_UF, sigla_UF).

No JavaIDE, no meu caso o netBeans, foram criadas as classes BancoDeDados, Estado(bean) e inseriEstado(tela).

Estado
Essa classe serve apenas para receber os atributos e propriedades e passa-los adiante, ou seja, ENCAPSULA eles. Essa classe é conhecida como BEAN.


package meupackage;


public class Estado {
    private String estado;
    private String sigla;
    
    public Estado(String estado, String sigla){        
        this.estado = estado;
        this.sigla = sigla;
    }
    
    public String getEstado(){
        return estado;
    }
    
    public String getSigla(){
        return sigla;
    }
}



BancodeDados

package meupackage;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;


public class BancoDeDados { 
    
    private Connection c;
    
    public BancoDeDados() throws SQLException, ClassNotFoundException{     
        c = DriverManager.getConnection("jdbc:mysql://127.0.0.1/nomedoseuSchema","seuUsuarioMyql(root)","suaSenhaMysql");
    }
    
    public void inserirEstado(Estado e) throws SQLException{                                                                 //Criou-se um metodo que recebe o bean Estado como parametro.
        String sql = "INSERT INTO tb_uf (nm_UF, sg_UF) VALUE (?,?)";                                               // O pontos de interrogacao(?) sao os valores a serem inseridos nas colunas declaradas a esquerda
        PreparedStatement ps = c.prepareStatement(sql);                                                                        // Aqui o Query mysql esta comecando a ser preparado, nesse exato momento, esta assim:  "INSERT INTO tb_uf (nm_UF, sg_UF) VALUE (  ,  )" 

        /*          
        ps.(continua preparando o Query)
        setString( afirma que o valor a ser recebido nesse query, sera uma String)
        (1/* lembra do ponto de interrogacao?, aqui esta direcionando tudo para o primeiro ponto de interrogacao */ ,e.getEstado( ) /*retorna 'estado' do bean */ )  
        */

        ps.setString(1, e.getEstado());   // O query passa a ser  "INSERT INTO tb_uf (nm_UF, sg_UF) VALUE ( estado ,     )" 
        ps.setString(2, e.getSigla());     // O query passa a ser  "INSERT INTO tb_uf (nm_UF, sg_UF) VALUE ( estado , sigla )" 
        ps.execute();      // O query é entao, executado no mysql 

  /* Na ultima aula, foi usada uma classe reflection, nesse caso, em vez desse metodo receber apenas 1 bean como parametro, 
receberia uma classe reflection, que vai fazer isso mesmo, espelhar todos os beans, fazendo com que o metodo acime deixe de atender apenas ao BEAN Estado, 
*/

    }   
}



inserirEstado 
// seria a classe teste, no meu caso, criei um formulario e o codigo esta escrito na acao do botao SALVAR


private void btn_salvarActionPerformed(java.awt.event.ActionEvent evt) {                                           
    Estado e = new Estado(txt_estado.getText(), txt_sigla.getText());                    //Cria o objeto, encapsulando na classe Estado os textos inserido nos campos txt_estado e txt_sigla do meu formulario
    BancoDeDados bd = null;                                                                             // Cria o objeto BancoDeDados, que antes de ser "cercado por try-catch", costumava ser assim:  BancoDeDados bd = new BancoDeDados();
        try {
            try {
                bd = new BancoDeDados();
            } catch (ClassNotFoundException ex) {
                Logger.getLogger(InserirEstado.class.getName()).log(Level.SEVERE, null, ex);
            }
        } catch (SQLException ex) {
            Logger.getLogger(InserirEstado.class.getName()).log(Level.SEVERE, null, ex);
        }
        try {
            bd.inserirEstado(e);              // Instancia o bean Estado para a classe BancoDeDados. que executa o Query.
        } catch (SQLException ex) {
            Logger.getLogger(InserirEstado.class.getName()).log(Level.SEVERE, null, ex);
        }
}  


Isso foi o que entendi, posso estar enganado, e provavelmente os nomes colocados estao incorretos, as vezes tenho duvidas do que que é parametro ou variavel ou valor ou apenas referencia.
Gostaria que alguem me ajudasse, postando esse mesmo codigo com um select pra mostrar em um JCombo e pra uma lista.

Att.
Joao de Souza

    


Marcos Costa

unread,
Sep 29, 2011, 4:48:03 PM9/29/11
to etecpg 2ª semestre 2010
Ok João, converse comigo e te dou uma ajuda, blz?

Pois agora ando sem tempro pra ficar pensando muito.
Mostre pra mim executando.
Traga pra mim o projeto, eu tenho o netbeans no note, eu rodo nele.

On 28 set, 11:21, Joao de Souza <etecj...@gmail.com> wrote:
> Marcos, manda o arquivo da ultima aula, por favor.
> Segue para quem faltou ou teve dificuldades na aula de REFLECTION. Rodei no
> meu pc e ta funfando.
> Exemplo da penultima aula do professor Alexandre.
>
> Foi criada uma tabela no mySql
> *tb_UF (id_UF [autoIncrement], nm_UF, sigla_UF).*
>
> No JavaIDE, no meu caso o netBeans, foram criadas as classes BancoDeDados,
> Estado(bean) e inseriEstado(tela).
>
> *Estado*
> Essa classe serve apenas para receber os atributos e propriedades e
> passa-los adiante, ou seja, ENCAPSULA eles. Essa classe é conhecida como
> BEAN.
>
> package meupackage;
>
> public class Estado {
>     private String estado;
>     private String sigla;
>
>     public Estado(String estado, String sigla){        
>         this.estado = estado;
>         this.sigla = sigla;
>     }
>
>     public String getEstado(){
>         return estado;
>     }
>
>     public String getSigla(){
>         return sigla;
>     }
>
> }
>
> *BancodeDados*
>
> package meupackage;
>
> import java.sql.Connection;
> import java.sql.DriverManager;
> import java.sql.PreparedStatement;
> import java.sql.ResultSet;
> import java.sql.SQLException;
> import java.util.ArrayList;
>
> public class BancoDeDados {
>
>     private Connection c;
>
>     public BancoDeDados() throws SQLException, ClassNotFoundException{    
>         c =
> DriverManager.getConnection("jdbc:mysql://127.0.0.1/nomedoseuSchema","seuUsuarioMyql(root)","suaSenhaMysql");
>     }
>
>     public void inserirEstado(Estado e) throws SQLException{                
>                                                 //Criou-se um metodo que
> recebe o bean Estado como parametro.
>         *String sql = "INSERT INTO tb_uf (nm_UF, sg_UF) VALUE (?,?)";*      
>                                          // O pontos de interrogacao(?) sao
> os valores a serem inseridos nas colunas declaradas a esquerda
>         PreparedStatement ps = c.prepareStatement(sql);                    
>                                                    // Aqui o Query mysql
> esta comecando a ser preparado, nesse exato momento, esta assim: * "INSERT
> INTO tb_uf (nm_UF, sg_UF) VALUE (  ,  )"*
>
> *        /**          
> *        ps.(continua preparando o Query)*
> *        setString( afirma que o valor a ser recebido nesse query, sera uma
> String)*
> *        (1/* lembra do ponto de interrogacao?, aqui esta direcionando tudo
> para o primeiro ponto de interrogacao */ ,e.getEstado( ) /*retorna 'estado'
> do bean */ )  *
> *        */*
> *
> *
>         ps.setString(1, e.getEstado());   // O query passa a ser * "INSERT
> INTO tb_uf (nm_UF, sg_UF) VALUE ( estado ,     )"*
>         ps.setString(2, e.getSigla());     // O query passa a ser * "INSERT
> INTO tb_uf (nm_UF, sg_UF) VALUE ( estado , sigla )"*
>         ps.execute();      // O query é entao, executado no mysql* *
>
>   /* Na ultima aula, foi usada uma classe reflection, nesse caso, em vez
> desse metodo receber apenas 1 bean como parametro,
> receberia uma classe reflection, que vai fazer isso mesmo, espelhar todos os
> beans, fazendo com que o metodo acime deixe de atender apenas ao BEAN
> Estado,
> */
>
>     }  
>
> }
>
> *inserirEstado *
Reply all
Reply to author
Forward
0 new messages