How to prevent me from recording the same movie again

0

I have this method:

test method of the class loops of the package view

public int teste(){

        String selecao = cbFilmes.getSelectedItem().toString();
        String[] campos_filmes = selecao.replace(" ","").split("-"); // suponho que esteja separado por -
        System.out.println(campos_filmes[0]); // deve pegar o código
        int codigo = Integer.parseInt(campos_filmes[0]);
        java.sql.Connection conn = null;
        java.sql.PreparedStatement pstm = null;
        ResultSet rs = null;    
        boolean testee;
        try{

            conn = ConnectDB.conexaoDB();
            pstm = conn.prepareStatement("Select * From locacoes Where codigo_filme = '"+codigo+"'");           
            rs = pstm.executeQuery();
            if(rs.next()){
                JOptionPane.showMessageDialog(null, "Filme Já Locado!");
                tabbedPane.setSelectedIndex(0);
            }else{
        pstm.close();
            }

            ConnectDB.fecharConexao(conn);


        }catch(SQLException e){
            JOptionPane.showMessageDialog(null, "Erro: "+ e);


    }
        return codigo;

    }

It does a validation to see if the movie is already leased, the following method is what sends the data to class loops of the control package

protected void salvar(){


    String selecao_filmes = cbFilmes.getSelectedItem().toString();
    String[] campos_filmes = selecao_filmes.replace(" ","").split("-"); // suponho que esteja separado por -
    System.out.println(campos_filmes[0]); // deve pegar o código
    int codigo_filme = teste();//Integer.parseInt(campos_filmes[0]);


     //System.out.println(selecao);

    String selecao_funcionario = cbFuncionario.getSelectedItem().toString();
    String[] campos_funcionarios = selecao_funcionario.replace(" ", "").split("-");
    System.out.println(campos_funcionarios[0]);
    int codigo_funcionario = Integer.parseInt(campos_funcionarios[0]);


    String selecao_cliente = cbClientes.getSelectedItem().toString();
    String [] campos_clientes = selecao_cliente.replace(" ", "").split("-");
    System.out.println(campos_clientes[0]);
    int codigo_cliente = Integer.parseInt(campos_clientes[0]);

    String data_locacao = dt_locacao.getText();
    String data_devolucao = dt_devolucao.getText();
 if(data_devolucao.equals("")){
        JOptionPane.showMessageDialog(null, "O campo Data de devolução é Obrigatório!");


    }

    Locacao locacao = new Locacao();
    locacao.setCodigo_cliente(codigo_cliente);
    locacao.setCodigo_funcionario(codigo_funcionario);
    locacao.setCodigo_filme(codigo_filme);
    locacao.setDt_locacao(data_locacao);
    locacao.setDt_devolucao(data_devolucao);

    control.Locacao manutencao = new control.Locacao();
    if(codigo_editar==0){
        manutencao.inserir(locacao);

    }else{
        manutencao.alterar(locacao);
    }

    tabbedPane.setSelectedIndex(1);



}

This is the method that saves in the database:

public void inserir(dao.Locacao locacao) {

if(locacao != null){
    java.sql.Connection conn = null;

    try {
        conn = ConnectDB.conexaoDB();

        java.sql.PreparedStatement pstm;

        pstm = conn.prepareStatement(INSERT);

        pstm.setObject(1, locacao.getCodigo_filme());
        pstm.setObject(2, locacao.getCodigo_funcionario());
        pstm.setObject(3, locacao.getCodigo_cliente());
        pstm.setString(4, locacao.getDt_locacao());
        pstm.setString(5, locacao.getDt_devolucao());


        // Envia para o banco de dados
        Boolean teste;
        teste = pstm.execute();

        // Validar inserção no banco de dados
        if (!teste) {
            JOptionPane.showMessageDialog(null, "Locação cadastrada com sucesso!");

        } else {
            JOptionPane.showMessageDialog(null, "Erro ao cadastrar a Locação!");

        }

        // Fecha a conexão com o banco de dados
        ConnectDB.fecharConexao(conn);

    } catch (SQLException e) {
        JOptionPane.showMessageDialog(null, "Erro ao cadastrar a locacao!"+e.getMessage());

    }


}}

My question is as follows, how would I do to use the test method, so that if the movie is leased, by clicking the save button, I would prevent the user from saving, through the test method, if I I was not very clear, ask me for more information, but please help me!

This is the save button:

    JButton btnSalvar = new JButton("Salvar");
    btnSalvar.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {
            salvar();



        }
    });
    
asked by anonymous 25.10.2016 / 21:55

1 answer

0

Hello, I think I understand what you mean ... Do you need a validation right? Extract

try{

        conn = ConnectDB.conexaoDB();
        pstm = conn.prepareStatement("Select * From locacoes Where codigo_filme = '"+codigo+"'");           
        rs = pstm.executeQuery();
        if(rs.next()){
            JOptionPane.showMessageDialog(null, "Filme Já Locado!");
            tabbedPane.setSelectedIndex(0);
        }else{
    pstm.close();
        }

        ConnectDB.fecharConexao(conn);


    }catch(SQLException e){
        JOptionPane.showMessageDialog(null, "Erro: "+ e);


}

for a method that takes the code as a parameter and has a boolean return. So when it returns true you call your save method on the button.

    
28.10.2016 / 18:35