Olá amigos, alguém poderia me ajudar dando uma idéia de código para buscar uma informação em uma tabela em um banco?
Seguinte:
Criei um form com um JTextField chamado “comando_sql_txt”, e um JButton chamado “buscar_comando”.
Quero clicar no botao e trazer as informações de uma tabela chamada “senac1” no banco de dados.
Tenho 2 idéias:
- Trazer a primeira informação desta tabela, e quando o usuário clicar nela novamente, apagar ela do banco e trazer a próxima informação.
- trazer a primeira informação desta tabela, e criar um JButton para o usuário apaga-la da tabela, e poder clicar no JButton “comando_sql_txt”, para trazer a próxima informação desta tabela.
PS: O aplicativo já conecta ao banco, está tudo certo, basta só gerar os códigos para o JButton trazer a informação.
Alguém por favor poderia me ajudar?
Obrigado…
só não entendi uma parte…onde vc quer jogar o resultado da consulta no banco?
vc pode usar um actionListener no botão e enviar um comando sql.
algo do tipo;
seuBotão.addActionListener
(
new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
Class.forName(driver);
Connection con = DriverManager.getConnection(conexão, user, password);
Statement stm = con.createStatement();
//seleciona todos os dados da suaTabela
String seleciona = "select * from suaTabela"
//retorno da consulta
ResultSet rs = stm.executeQuery(seleciona);
//variável auxiliar
int i = 1;
//enquanto houver linhas de retorno da consulta executa:
while(rs.next())
{
System.out.println(rs.getString(i));
i++;
}
}
}
);
assim vc tem o retorno da consulta sendo impresso no console.
espero q ajude pra alguma coisa… 
flws
Eu quero jogar o resultado em um JTextField que criei, tem como?
E eu já possuo uma classe para conectar ao banco, como posso usa-la para conectar esse codigo que voce passou agora, com esta classe abaixo?
[code]
public class BancoSql {
Connection bancosql_conn;
public BancoSql(String user, String pass)
Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance();
String conecta = "jdbc:jtds:sqlserver:/JC-T3F5WUIIQ12L:3148/senac;user="+user+";password="+pass;
// String conecta = "jdbc:mysql://localhost:3306/java?user="+user+"&password="+pass;;
bancosql_conn = DriverManager.getConnection(conecta);[/code]
cara, vc queria jogar no textfield uma linha do resultado e depois de uma ação ele apaga e mostra a próxima linha é isso??? se for, até tem como mas não seria algo tão simples…
quanto à sua classe de conexão, eu nunca precisei de algo do tipo, mas vc pode tentar o seguinte:
1º - declare o objeto con como public para ter acesso em outra classe:
public class BancoSql {
public Connection bancosql_conn;
public BancoSql()
String user;
String pass;
Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance();
String conecta = "jdbc:jtds:sqlserver:/JC-T3F5WUIIQ12L:3148/senac;user="+user+";password="+pass;
// String conecta = "jdbc:mysql://localhost:3306/java?user="+user+"&password="+pass;;
bancosql_conn = DriverManager.getConnection(conecta);
Depois na outra classe que vc quer fazer uma consulta vc pode declarar assim (vamos supor que seja na classe que eu te passei):
//primeiro vc importa a sua classe de conexão para ter acesso aos seus //atributos e componentes
import BancoSql;
seuBotão.addActionListener
(
new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
BancoSql dados = new BancoSql();
Statement stm = dados.bancosql_conn.createStatement();
//seleciona todos os dados da suaTabela
String seleciona = "select * from suaTabela"
//retorno da consulta
ResultSet rs = stm.executeQuery(seleciona);
//variável auxiliar
int i = 1;
//enquanto houver linhas de retorno da consulta executa:
while(rs.next())
{
System.out.println(rs.getString(i));
i++;
}
}
}
);
acho que isso resolve teu problema…
qualquer coisa me dá um toque…
flws
O codigo que passou está gerando alguns erros.
Abaixo o codigo da minha classe de conexão:
[code]package conexao_banco;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class bancosql{
public Connection bancosql_conn;
/** Abre a conexão com o SQL */
public bancosql(String user, String pass)
throws Exception{
try{
Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance();
String conecta = "jdbc:jtds:sqlserver:/JC-T3F5WUIIQ12L:3148/senac;user="+user+";password="+pass;
// String conecta = "jdbc:mysql://localhost:3306/java?user="+user+"&password="+pass;;
bancosql_conn = DriverManager.getConnection(conecta);
}catch(ClassNotFoundException cnfe){
Exception my_ex = new Exception("O driver para acesso ao banco de dados não foi encontrado.");
throw my_ex;
}catch(SQLException se){
Exception my_ex = new Exception("A conexão com o banco de dados não foi realizada. Verifique usuário e senha.");
throw my_ex;
}catch(Exception e){
Exception my_ex = new Exception("Erro desconhecido.");
throw my_ex;
}
}
public Connection getConnection(){
return bancosql_conn;
}
public void close()
throws Exception{
try{
bancosql_conn.close();
}catch(SQLException se){
Exception my_ex = new Exception("A conexão com o banco de dados não pode ser fechada.");
throw my_ex;
}catch(Exception e){
Exception my_ex = new Exception("Erro desconhecido.");
throw my_ex;
}
}
}
[/code]
Então, quero clicar em um botão chamado buscar_comando:
private void buscar_comandoActionPerformed(java.awt.event.ActionEvent evt)
E trazer para um JTextField a primeira informação da tabela senac1.
Após isso funcionando, quero:
- Clicar no mesmo botão, trazer a proxima informação da tabela senac1
ou
- Criar um botao apagar, para apagar essa primeira informação e trazer a proxima informação da tabela, que após ter sido apagada, passa a ser a primeira.
Conseguiu me entender agora?
Mas não estou conseguindo nem trazer a primeira da tabela ainda… 