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.