Gravando checkbox no banco de dados - me ajudem

2 respostas
A

pessoal, tenho um monte de jcheckbox que preciso saber se esta selecionado ou nao, para gravar no banco de dados.

fiz um array como segue o codigo :
// metodo array dos campos jtextfield
    public static JCheckBox [] campos(JCheckBox rest,JCheckBox prod,JCheckBox conv,JCheckBox clie,JCheckBox form,
            JCheckBox vend,JCheckBox forn,JCheckBox plan,JCheckBox grup,JCheckBox cida,JCheckBox doct,JCheckBox usua,JCheckBox fili) {
        JCheckBox [] tf = {rest,prod,conv,clie,form,vend,forn,plan,grup,cida,doct,usua,fili};
       
        
        int i;
        for(i=0 ; i<tf.length ; i++){
            if(tf[i].isSelected()){
                *** nao sei como fazer para gavar "1" nas variaveis ***
            }
            
            } 
        
    return tf;     
    }
mas nao sei como fazer para setar "0"-marcado ou "1"-desmarcado nas seguinte variaves :
String restrito,produto,convenio,cliente,formapgto,vendedores,fornecedores,planocontas,grupos,cidades,doctos,usuarios,filiais;

como ficaria o codigo ?
essa seria a melhor maneira de jogar no banco de dados ?

2 Respostas

ViniGodoy

Acho que o mais fácil é usar um PreparedStatement, e então percorrer o seu vetor de checkboxes marcando o isSelected em cada campo do PreparedStatement. Nesse caso, você nem precisaria das variáveis String que você quer declarar…

No prepared statement, você monta uma consulta como:

INSERT INTO tabela (rest,prod,conv,clie,form,vend,forn,plan,grup,cida,doct,usua,fili) VALUES (?, ?, ?,?,?,?,?,?,?,?,?,?,?,?)

E depois no java você faz:

for (int i = 0; i &lt tf.length; i++) preparedStatement.setBoolean(i+1, tf[i].isSelected());

A

refiz ocodigo, mas o problema é que nao grava nada no banco, nem da qualquer tipo de erro, alguem pode dar uma olhadinha ai no codigo ...

aqui esta parte do codigo que esta o array
// metodo array dos campos jtextfield
    public static JCheckBox [] campos(JCheckBox rest,JCheckBox prod,JCheckBox conv,JCheckBox clie,JCheckBox form,
            JCheckBox vend,JCheckBox forn,JCheckBox plan,JCheckBox grup,JCheckBox cida,JCheckBox doct,JCheckBox usua,JCheckBox fili) {
            JCheckBox [] tf = {rest,prod,conv,clie,form,vend,forn,plan,grup,cida,doct,usua,fili};
         
        try{
            
            Class.forName("org.gjt.mm.mysql.Driver");
            Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/uni20","root","adelmo");
            String SQL = "INSERT INTO cadusu (usu_rest,usu_prod,usu_conv,usu_clie,usu_form,usu_vend,usu_forn,usu_plan,usu_grup,usu_cida,usu_doct,usu_usua,usu_fili) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?)";
            PreparedStatement ps = (PreparedStatement) conn.prepareStatement(SQL);
            
            for (int i = 0; i < tf.length; i++) 
               ps.setBoolean(i+1, tf[i].isSelected());
aqui esta a passagem dos parametros
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
     BD_Usuarios.campos(jch_restrito,jch_produtos,jch_convenios,jch_clientes,jch_formapgto,jch_vendedores,jch_fornecedores,jch_planocontas,jch_grupos,jch_cidades,jch_doctos,jch_usuarios,jch_filiais);        
    }
Criado 28 de abril de 2007
Ultima resposta 28 de abr. de 2007
Respostas 2
Participantes 2