criaÇÃo de um mÉtodo

Olha só pessoal, gostaria de criar um método que me ajudasse no seguinte sentido, tenho esse código:


if(jch_agp.isSelected()){
            String sqlexclui = "DELETE FROM fk_tblink where MEM_CODIGO = " + tf_cod.getText() + " and ATIV_CODIGO = " + tf1.getText();
                int conseguiu_excluir = con_tblink.statement.executeUpdate(sqlexclui);
                if(conseguiu_excluir == 1) {
                    JOptionPane.showMessageDialog(null, "Item excluido! ");
                    con_tblink.executeSQL("select * FROM fk_tblink");
                    con_tblink.resultSet.first();

Preciso repetir ele inumeras vezes na minha aplicação e a unica coisa que vai mudar é o tf1.gettext(); para tf2… tf3… nessa linha:

 String sqlexclui = "DELETE FROM fk_tblink where MEM_CODIGO = " + tf_cod.getText() + " and ATIV_CODIGO = " + tf1.getText();

quero criar um código que não precise repetir esses códigos todos em minha aplicação…

Pode fazer algo assim:

public String sqlexclui(String param1, String param2){
	return "DELETE FROM fk_tblink where MEM_CODIGO = " + param1 + " and ATIV_CODIGO = " + param2;
}

E para chamar:

int conseguiu_excluir = con_tblink.statement.executeUpdate(sqlexclui(tf_cod.getText(), tf1.getText())); 

Espero ter ajudado.

Bem geralmente esses tipos de manipulações de banco é feita na criação de cada tipo de tabela.

Ex: Aluno, Produto, Curso
É criada uma classe, onde manipula-se os dados de cada tabela, para facilitar na hora de chamar
métodos distintos, isso facilita bastante.

public class AlunoBanco {
   // implementação de adicionar, remover, alterar os alunos
}

public class ProdutoBanco {
   // implementação de adicionar, remover, alterar os produtos
}

public class CursoBanco {
   // implementação de adicionar, remover, alterar os cursos
}

Valeu mesmo henrique,

AInda não implementei mas tenho quase certeza que é isso ai mesmo, vou testar e te falo,

Obrigado…

Bom… talvez tenha um meio “mais” correto mais eu faria um String[] com a quantidade textfields que vc tem e preencheria todos, em seguida fazia um for, por exemplo:


String[] parametro = new String[3];
parametro[0]=tf1.getText();
parametro[1]=tf2.getText();
parametro[2]=tf3.getText();

for (int i = 0; i < parametro.lenght;i++){
            String sqlexclui = "DELETE FROM fk_tblink where MEM_CODIGO = " + tf_cod.getText() + " and ATIV_CODIGO = " +parametro[i];
                int conseguiu_excluir = con_tblink.statement.executeUpdate(sqlexclui);
                if(conseguiu_excluir == 1) {
                    JOptionPane.showMessageDialog(null, "Item excluido! ");
                    con_tblink.executeSQL("select * FROM fk_tblink");
                    con_tblink.resultSet.first();
}

Ou se não fosse muitos campos tu poderias fazer assim:

String sqlexclui = "DELETE FROM fk_tblink where MEM_CODIGO = " + tf_cod.getText() + " and ATIV_CODIGO = " +tf1.getText()+" and ATIV_CODIGO = " +tf2.getText()+" and ATIV_CODIGO = " +tf3.getText();

Espero ter ajudado! :thumbup: :thumbup:

Só uma coisa.

Não faça consultas no banco desse jeito, seu sistema fica vulneravel a SQL Injection.

Use o Prepared Statement no lugar disso.

Como disse o nosso amigo mark_ameba, use Prepared Statement. Na verdade seria interessante vc utilizar o pattern DAO

http://java.sun.com/blueprints/corej2eepatterns/Patterns/DataAccessObject.html
http://javafree.uol.com.br/artigo/871452/Introducao-ao-pattern-DAO.html

Blz brothers,

Mas como ficaria uma DAO com prepared Statement??

A minha DAO de conexão está assim:


package conexao_pkg;

import java.sql.*;
import javax.swing.*;

public class BancoConect {

    /*public static void main(String args []) throws SQLException
    {*/
    final private String driver = "org.gjt.mm.mysql.Driver";
    final private String url = "jdbc:mysql://Localhost/base_glink";
    final private String User = "root";
    final private String Senha = "1234";
    private Connection conexao;
    public Statement statement;
    public ResultSet resultSet;

    public boolean conecta() {
        boolean result = true; //executa um boleano com inicio verdadeiro

        try {
            Class.forName(driver); //Carrega o driver
            conexao = DriverManager.getConnection(url, User, Senha); // realiza a conexão
            //JOptionPane.showMessageDialog(null, "Conexão realizada com sucesso!");// se conectar exibe essa mensagem.
            statement = conexao.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
                    ResultSet.CONCUR_READ_ONLY);
            resultSet = statement.executeQuery("select * from membros");
            /*String Lista_dados = "";
            while (resultSet.next()) {
            System.out.println("Código do Membro.: " + resultSet.getInt("Mem_codigo"));
            System.out.println("Nome do Membro.: " + resultSet.getInt("Mem_nome"));
            }*/
        } catch (ClassNotFoundException Driver) {
            JOptionPane.showMessageDialog(null, "Driver não localizado!" + Driver);
            result = false;
        } catch (SQLException Fonte) {
            JOptionPane.showMessageDialog(null, "Erro na conexão" +
                    "com a fonte de dados..." + Fonte);
            result = false;
        }
        return result;
    }

    public boolean conectafk_discip(){
        boolean result = true;
     try {
            Class.forName(driver); //Carrega o driver
            conexao = DriverManager.getConnection(url, User, Senha); // realiza a conexão
            //JOptionPane.showMessageDialog(null, "Conexão realizada com sucesso!");// se conectar exibe essa mensagem.
            statement = conexao.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
                    ResultSet.CONCUR_READ_ONLY);
            resultSet = statement.executeQuery("select * from discipulador");
            /*String Lista_dados = "";
            while (resultSet.next()) {
            System.out.println("Código do Membro.: " + resultSet.getInt("Mem_codigo"));
            System.out.println("Nome do Membro.: " + resultSet.getInt("Mem_nome"));
            }*/
        } catch (ClassNotFoundException Driver) {
            JOptionPane.showMessageDialog(null, "Driver não localizado!" + Driver);
            result = false;
        } catch (SQLException Fonte) {
            JOptionPane.showMessageDialog(null, "Erro na conexão" +
                    "com a fonte de dados..." + Fonte);
            result = false;
        }
        return result;

    }

    public void desconecta() {
        boolean result = true;
        try {
            conexao.close();
            JOptionPane.showMessageDialog(null, "Banco Fechado...");
        } catch (SQLException fecha) {
            JOptionPane.showMessageDialog(null, "Não foi possível " +
                    "fechar o Banco de Dados" + fecha.getMessage());
            result = false;
        }

    }

    public void executeSQL(String sql)
    {
        try
        {
            statement = conexao.createStatement();
            resultSet = statement.executeQuery(sql);
        }
        catch(SQLException sqlex)
        {
            JOptionPane.showMessageDialog(null, "Não foi possível executar o Banco SQL! " +
                    sqlex.getMessage()+"," +"Erro do SQL:" + "/n" +sql);
        }

    }

}

Se isso é um DAO, é um DAO um tanto confuso. Por exemplo não vejo vc fechar a conexão com o banco e isto pode ser FATAL.

Veja o primeiro capitulo da apostila da Caelum FJ-21 (disponivel di gratis no site deles em pdf). Ensina vc ter uma Fabrica de Conexões e um DAO bem simples, tudo separadinho. Não indico de sacanagem mas é uma GRANDE fonte de conhecimento e esta à 1 google de distancia.

Edit: Vc fecha a conexão mas não fecha o statement.

Pow cara, desculpe, sou estudante universitário e estou começando a programar agora, realmente ainda estou confuso com relação a alguns padrões de java, mas conto com vcs pra me dar um help, deixa eu dar um saque aqui na apostila da caelum, estava usando a FJ-11, vou baixar a FJ-21…