ResultSet dá algum erro [JAVA/SQL]
Fala pessoal, tô aprendendo sobre sql e estou criando um CRUD usando a Interface Gráfica do Java.
Nesse ponto, está dando um erro. Ao debugar, ele para de executar exatamente na linha "rs.first();" e então pula para o catch e retorna null.
import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import conexao.Conexao; import eclipse.Curso; public class CursoDAO { private Conexao conexao; private Connection conn; public CursoDAO() { //DATA ACESS OBJECT - Objeto de Acesso as Dados this.conexao = new Conexao(); //Instanciou a classe para ter acesso ao método de gerar a conexao this.conn = this.conexao.getConexao(); //Jogou a criacao para a variavel conn. } //Inserir um novo curso dentro da tabela public void inserir(Curso curso) { String sql = "INSERT INTO cursos (nomecurso, nivel, duracao) VALUES " + "(?, ?, ?)"; //Essas interrogações chamam-se parâmetros e servem para prevenir "sql inject", ou/e códigos maliciosos try { //PreparedStatement deve estar dentro de um trycatch PreparedStatement stmt = this.conn.prepareStatement(sql); //Esse método já recebe o código sql que queremos executar stmt.setString(1, curso.getNomecurso()); //Setando os parametros que serão passados para o banco stmt.setString(2, curso.getNivel()); stmt.setInt(3, curso.getDuracao()); stmt.execute(); //Executando o comando dentro do mysql } catch (Exception e) { System.out.println("Erro ao inserir curso:" + e.getMessage()); } } public Curso getCurso(int id) { String sql = "SELECT * FROM cursos WHERE id = ?"; try { PreparedStatement stmt = this.conn.prepareStatement(sql); stmt.setInt(1, id); ResultSet rs = stmt.executeQuery(); //Retorna os dados do tipo ResultSet Curso curso = new Curso(); //Primeiramente posiciona o ResultSet na primeira posição ACONTECE O ERRO>> rs.first(); //Colocar as informaçoes para dentro da variavel curso curso.setId(id); curso.setNomecurso(rs.getString("nomecurso")); curso.setNivel(rs.getString("nivel")); curso.setDuracao(rs.getInt("duracao")); return curso; } catch (Exception e) { return null; //Deixa para o formulário dar o retorno da mensagem } } }
O primeiro método, inserir curso, está funcionando perfeitamente.
Fiz o teste fora da interface gráfica, criei outra classe e deu o mesmo erro. Curso == null.
Se puderem me dar uma ajuda, agradeço.