{JAVA} Como Gravar CheckBox no banco postgres

Criei uma um campo “sit_cadastro” do tipo integer no banco, gostaria de Armazenar valor 0 ou 1 nele (BLOQUEADO OU NAO), usando uma ChekBox.**
**o numero “6” representa a posicao da coluna “sit_cadastro” no banco , “cbUsuSitCads” e o nome da minha varial checkBox e pst é a abreviacao do “PreparedStatement”.

pst.setString  (6, (cbUsuSitCadas.getText()));

Fala ai Mauro_Silva, bom dia
O ideal é que o campo no postgres seja do tipo BIT pois esse só aceita valores 0 ou 1. Definir esse tipo de campo como integer vc permite que erros possam ocorrer, do tipo dados incorretos serem armazenados tipo o campo aceita 6 , 7 89, 90.

Abraços
Max

Blz FacaNaCaveira, entao brother, mais esse e apenas um checkBox, o usuario nao vai colocar numeros, apenas marcar(bloquear o usuario) ou desmarcar (desbloquear o usuario) acho que pode continuar como int, eu so nao sei como fazer essa verificacao no codigo, caso marcado verdadeiro ou seja 1 desmarcado falso 0

 private void adicionar(){
        String sql  = "INSERT INTO public.usuario (id, login, nome, senha, id_tiposetor, id_situacaocadastro, id_loja) values(?, ?, ?, ?, ?, ?, ?)";
        try {
            pst = conexao.prepareStatement(sql);
            pst.setInt(1,Integer.parseInt(txtUsuId.getText()));
            pst.setString(2,txtUsuLogin.getText());
            pst.setString(3,txtUsuNome.getText());
            pst.setInt(4,Integer.parseInt(pwUsuSenha.getText()));
            pst.setInt(5, Integer.parseInt(txtUsuIdSetor.getText()));
            pst.setString  (6, (cbUsuSitCadas.getText()));
            pst.setString(7,txtUsuIdLoja.getText());
            // A LINHA A BAIXO ATUALIZA A TABELA NO BANCO
            pst.executeUpdate();
            
            
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e);
        }

Já tem tempo que não mexo com swing, mas se me lembro um checkbox em swing tem o método isSelected que retorna true se está selecionado ou false caso não.
Por questão de boas práticas e se no futuro vc for melhorar o código, na verdade mais ainda por questão de segurança o certo para ficar no campo do BD é ser do tipo boolean isso evitará problemas que vc poderá ter e não vai saber, então é melhor se prevenir agora:

  1. Crie o campo na tabela que seja do tipo boolean e faça:
pst.setBoolean(6,cbUsuSitCadas.isSelected());

Veja que fica totalmente explícito o que o código tá fazendo e evitando problemas que poderão ocorrer no futuro.

Acredito que no seu banco de dados você esteja armazenando um valor do tipo char(1) para o campo id_situacaocadastro, sendo assim você armazena possíveis valores como A para cadastros Ativos e B para cadastros Bloqueados.

pst.setString(6,cbUsuSitCadas.isSelected() ? "'B'" : "'A'");

Eu ja passei por isso uma vez, fiquei perdido em como salvar os dados do Checkbox.

Eu tinha alguns Checkboxes para poder controlar o que funcionário ia poder fazer no sistema, como: cadastro(funcionario, produto, venda), venda mensal, pesquisa, etc.

Eu fiz o seguinte: criei um campo do tipo tinyint(1) no banco e uma variavel boolean para controlar cada ação que poderia ser feito.

psg.setBoolean(3, funcionario.isCadastrarProduto());

Quando você salva no banco um valor boolean true, o tinyint fica com valor 1, se for false fica com 0.

Para receber o valor do banco, você faz: resultSet.getBoolean(numeroColuna);