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.
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…