Evitar que uma jText vazia seje enviada pro banco de dados

3 respostas
R
Bom, minha duvida é a seguinte, tenho varios jtext e o usuario pode ou não escrever algo neles, eu quero que quando o usuario não escrever nada o programa não envie nada pro banco de dados, fiz o seguinte codigo:
String gasolina = jtGasolina.getText();
        if(gasolina!=""){
            try{
                String descricao = jtGasolina.getText();
                int qtd = Integer.parseInt(jtQtdGasolina.getText());
                double valorUnitario = Double.parseDouble(jtValorUnitGasolina.getText());
                double valorTotal = Double.parseDouble(jtValorTotalGasolina.getText());
                int codDespesa = Integer.parseInt(codigoDespesa());
                Connection conn = Conexao.conecta();
                Statement stmt = conn.createStatement();
                stmt.executeUpdate("INSERT INTO TB_Despesa (Cod_Despesa, Cod_Evento, Descricao, Quantidade, Valor_Unitario, Valor_Total) VALUES("+codDespesa+", "+jcobCodEventoCadDespesas.getSelectedItem()+",'"+descricao+"', "+qtd+", "+valorUnitario+", "+valorTotal+")");
                stmt.close();
                conn.close();
            }catch(Exception e){
                System.out.println("Erro: " +e.getMessage());
            }
        }
        
        String item2 = jtItem2.getText();
        if(item2!=""){
            try{
                System.out.print("Entrei no if do item2");
                String descricao = jtItem2.getText();
                int qtd = Integer.parseInt(jtQtdItem2.getText());
                double valorUnitario = Double.parseDouble(jtValorUnitItem2.getText());
                double valorTotal = Double.parseDouble(jtValorTotalItem2.getText());
                int codDespesa = Integer.parseInt(codigoDespesa());
                Connection conn = Conexao.conecta();
                Statement stmt = conn.createStatement();
                stmt.executeUpdate("INSERT INTO TB_Despesa (Cod_Despesa, Cod_Evento, Descricao, Quantidade, Valor_Unitario, Valor_Total) VALUES("+codDespesa+", "+jcobCodEventoCadDespesas.getSelectedItem()+",'"+descricao+"', "+qtd+", "+valorUnitario+", "+valorTotal+")");
                stmt.close();
                conn.close();
            }catch(Exception e){
                System.out.println("Erro: " +e.getMessage());
            }
        }
obs: estou iniciando os campos do jtext com campo.setText(""); Ja tentei usar .equalsIgnoreCase("") mas ai ele so entra se o campo estiver vazio. Quero saber como evitar isso.

3 Respostas

furutani

Tenta assim

!campo.equalsIgnoreCase("")
davidbuzatto

Usa um trim antes

// remove qualquer espaço no começo ou final da string
String valor = suaJText.getText().trim();

if ( valor.equalsIgnoreCase( "" ) ) {
    // vazio
}

Falow!

timotta

E tente usar PreparedStatement para evitar SQL Injection

Criado 11 de fevereiro de 2007
Ultima resposta 12 de fev. de 2007
Respostas 3
Participantes 4