Pegando dados do banco de dados MySql

Pessoal, tenho ate vergonha de mostrar esse meu codigo, pq to tendo dificuldades demais pra aprender a mexer com isso mas preciso da ajuda de vcs…

Quando eu abrir meu formulario Cad_Cidades, eu quero que o textfield Codigo e Nome sejam preenchidos com os dados da primeira linha da minha tabela “cidades”.

[code]public class Cad_Cidades extends javax.swing.JFrame {

/**
 * Creates new form Cad_Cidades
 */
public Cad_Cidades() {
    initComponents();
    Conexao con_cidade = new Conexao();
    try {
        PreparedStatement stmt = con_cidade.connection.prepareStatement("select * from cidades");
        ResultSet rs = stmt.executeQuery();
        rs.first();
        tf_codigo.setText(con_cidade.ResultSet.getString("codigo"));
    } catch (Exception e) {
    }

}[/code]

[code]public class Conexao {

public Connection connection;

public Conexao(){
	this.connection = new ConnectionFactory().getConnection();
    }

}[/code]

[code]public class ConnectionFactory {

public Connection getConnection(){
	try {
		return DriverManager.getConnection(
				"jdbc:mysql://localhost/sakila", "root", "1234");
	} catch (SQLException e) {
		throw new RuntimeException(e);
	}
}

}[/code]

eu nao consigo utilizar o ResultSet.getString. Alguem pode me ajudar?

Obrigado

Tente fazer assim:

Conexao con = new Conexao(); try { PreparedStatement stmt = con.prepareStatement("select * from cidades"); ResultSet rs = stmt.executeQuery(); rs.next(); tf_codigo.setText(rs.getString("codigo"));

Talvez resolva.

Mostre a Exception também se não resolver…

[quote] ResultSet rs = stmt.executeQuery(); rs.first(); tf_codigo.setText(con_cidade.ResultSet.getString("codigo")); [/quote]

Aqui um clássico exemplo da “programação orientada a magia”.
Para que serve a variável rs que você acabou de preencher com o resultado do executeQuery?
De onde vem esse valor con_cidade.ResultSet?

E a propósito, enquanto você não ler corretamente a documentação do JDBC, evite dentro da medida do possível usar “first” e “last”.
Eles só fazem o que dizem quando se cria o Statement de forma especial (não a padrão). Use sempre “next”.

Obrigado rafal agora compilou sem problemas mas o Textfield Codigo e Nome continuam vazios…oq sera q pode ser??

Certo Entanglement, eh q sou novato e vi no tutorial que pra posicionar na primeira linha do db tinha q usar o First…e depois usaria o Next para ir para as proximas linhas…nao entendo mto bem ^^

[quote=jpedr0]Obrigado rafal agora compilou sem problemas mas o Textfield Codigo e Nome continuam vazios…oq sera q pode ser??

Certo Entanglement, eh q sou novato e vi no tutorial que pra posicionar na primeira linha do db tinha q usar o First…e depois usaria o Next para ir para as proximas linhas…nao entendo mto bem ^^[/quote]

Tente usar as convenções para programar também, seu código deve ser claro, por exemplo sua variável con_cidade, deveria ter o nome de apenas conexao, pois é uma classe que vai efetuar a conexão com o banco e mais nada.

Entendi, pode deixar. Mas vc sabe oq tem de errado que os campos continuam vazios quando compilo?

Ja descobri, tava direcionado a uma base de dados diferente sem perceber…

Obrigado pela ajuda

[quote=jpedr0]Obrigado rafal agora compilou sem problemas mas o Textfield Codigo e Nome continuam vazios…oq sera q pode ser??

Certo Entanglement, eh q sou novato e vi no tutorial que pra posicionar na primeira linha do db tinha q usar o First…e depois usaria o Next para ir para as proximas linhas…nao entendo mto bem ^^[/quote]

Que tutorial é esse? Fiquei curioso. Deve ser alguma daquelas video-aulas que mais atrapalham que ajudam :frowning:

Sao as video aulas do Prof. Neri…o problema eh q livros soh dao conceitos, nao acho livro q ensina na pratica o que fazer infelizmente =/

Professor Neri é um excelente professor, problema é que voce percebe que ATE HOJE ele programa como se tivesse parado no tempo, nao segue as convencoes e etc… mas a video-aula de hibernate dele é muito boa (em questao de aprendizado na pratica), a unica que assisti, mas gostei.

O Hibernate torna esses tipos de tarefas mais fáceis?? Quando eu posso começar a estudar ele? Tem algum pré requisito?

Melhor voce aprender Hibernate depois de ter estudado JDBC e bastante sintaxe SQL. Voce pode começar quando quiser uai =D.

Eu to tendo problema com a continuação… =/

[code]public class Cad_Cidades extends javax.swing.JFrame {

public Cad_Cidades() {
    initComponents();
    Conexao conexao = new Conexao();
    try {
        PreparedStatement stmt = conexao.connection.prepareStatement("select * from cidades");
        ResultSet rs = stmt.executeQuery();
        rs.first();
        tf_codigo.setText(rs.getString("codigo"));
        tf_nome.setText(rs.getString("nome"));
    } catch (Exception e) {
    }

}

private void botao_proximoActionPerformed(java.awt.event.ActionEvent evt) {
try {
Conexao conexao = new Conexao();
PreparedStatement stmt = conexao.connection.prepareStatement(“select * from cidades”);
ResultSet rs = stmt.executeQuery();
rs.next();
tf_codigo.setText(rs.getString(“codigo”));
tf_nome.setText(rs.getString(“nome”));
} catch (Exception e) {
}
}[/code]

Depois de ter feito os TextField nome e codigo receberem o valor da primeira linha do bd, eu queria q fosse pra proxima linha qndo clicasse no botao_proximo. Mas nao ta funcionando qndo clico no botao… Me desculpem pelas duvidas idiotas pessoal =x

Tente fechar o resultSet a cada ação.

public Cad_Cidades() {  
        initComponents();  
        Conexao conexao = new Conexao();  
        try {  
            PreparedStatement stmt = conexao.connection.prepareStatement("select * from cidades");  
            ResultSet rs = stmt.executeQuery();  
            rs.first();  
            tf_codigo.setText(rs.getString("codigo"));  
            tf_nome.setText(rs.getString("nome"));  
            rs.close();
        } catch (Exception e) {  
        }  

private void botao_proximoActionPerformed(java.awt.event.ActionEvent evt) {  
        try {  
            PreparedStatement stmt = conexao.connection.prepareStatement("select * from cidades");  
            ResultSet rs = stmt.executeQuery();  
            rs.next();  
            tf_codigo.setText(rs.getString("codigo"));  
            tf_nome.setText(rs.getString("nome"));  
            rs.close();
        } catch (Exception e) {  
        }  
    }  

boa, tava esquecendo disso… Mas ainda nada acontece quando clico no botao.

faz um debug, e ve se entra no metodo, talvez ate esteja acontecendo, o que ta faltando é voce atualizar o componente onde é mostrado os dados.

como atualizo o componente?

Fez o debug ? verificou se esta entrando no metodo realmente ?

Deixa pra lah entao…eu nao sei usar o debugger T-T kkkkkk

é facil, vai no google que c acha, agora deixa eu resolver umas broncas aqui, boa sorte =D

Pelo que vi ta entrando no metodo sim…alguem tem ideia do pq nao ta mudando os valores dos TextFields??