Olha só pessoal, gostaria de criar um método que me ajudasse no seguinte sentido, tenho esse código:
if(jch_agp.isSelected()){Stringsqlexclui="DELETE FROM fk_tblink where MEM_CODIGO = "+tf_cod.getText()+" and ATIV_CODIGO = "+tf1.getText();intconseguiu_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:
Stringsqlexclui="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…
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.
publicclassAlunoBanco{// implementação de adicionar, remover, alterar os alunos}publicclassProdutoBanco{// implementação de adicionar, remover, alterar os produtos}publicclassCursoBanco{// implementação de adicionar, remover, alterar os cursos}
lincolngadea
Valeu mesmo henrique,
AInda não implementei mas tenho quase certeza que é isso ai mesmo, vou testar e te falo,
Obrigado…
gqferreira
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=newString[3];parametro[0]=tf1.getText();parametro[1]=tf2.getText();parametro[2]=tf3.getText();for(inti=0;i<parametro.lenght;i++){Stringsqlexclui="DELETE FROM fk_tblink where MEM_CODIGO = "+tf_cod.getText()+" and ATIV_CODIGO = "+parametro[i];intconseguiu_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:
Stringsqlexclui="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:
Marky.Vasconcelos
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.
peczenyj
Como disse o nosso amigo mark_ameba, use Prepared Statement. Na verdade seria interessante vc utilizar o pattern DAO
packageconexao_pkg;importjava.sql.*;importjavax.swing.*;publicclassBancoConect{/*public static void main(String args []) throws SQLException {*/finalprivateStringdriver="org.gjt.mm.mysql.Driver";finalprivateStringurl="jdbc:mysql://Localhost/base_glink";finalprivateStringUser="root";finalprivateStringSenha="1234";privateConnectionconexao;publicStatementstatement;publicResultSetresultSet;publicbooleanconecta(){booleanresult=true;//executa um boleano com inicio verdadeirotry{Class.forName(driver);//Carrega o driverconexao=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(ClassNotFoundExceptionDriver){JOptionPane.showMessageDialog(null,"Driver não localizado!"+Driver);result=false;}catch(SQLExceptionFonte){JOptionPane.showMessageDialog(null,"Erro na conexão"+"com a fonte de dados..."+Fonte);result=false;}returnresult;}publicbooleanconectafk_discip(){booleanresult=true;try{Class.forName(driver);//Carrega o driverconexao=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(ClassNotFoundExceptionDriver){JOptionPane.showMessageDialog(null,"Driver não localizado!"+Driver);result=false;}catch(SQLExceptionFonte){JOptionPane.showMessageDialog(null,"Erro na conexão"+"com a fonte de dados..."+Fonte);result=false;}returnresult;}publicvoiddesconecta(){booleanresult=true;try{conexao.close();JOptionPane.showMessageDialog(null,"Banco Fechado...");}catch(SQLExceptionfecha){JOptionPane.showMessageDialog(null,"Não foi possível "+"fechar o Banco de Dados"+fecha.getMessage());result=false;}}publicvoidexecuteSQL(Stringsql){try{statement=conexao.createStatement();resultSet=statement.executeQuery(sql);}catch(SQLExceptionsqlex){JOptionPane.showMessageDialog(null,"Não foi possível executar o Banco SQL! "+sqlex.getMessage()+","+"Erro do SQL:"+"/n"+sql);}}}
peczenyj
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.
lincolngadea
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…