Oi gente, sou iniciante nessa parte de acesso a banco de dados e gostaria muito de uma ajuda xD
Tenho o seguinte codigo até agora:
package dao;import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList;import dto.CursoDTO;
public class CursoDAO_BD implements CursoDAO {
public void salvar(CursoDTO curso) throws Exception{ PreparedStatement ps = null; Connection conn = null; if (curso == null) throw new Exception ("O valor passado não pode ser nulo!"); try{ String SQL = "INSERT INTO Curso (nome, codigo, totalCreditos, Turno)" + "values (?, ?, ?, ?)"; Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance(); conn = DriverManager.getConnection("jdbc:odbc:Aplicação","",""); ps = conn.prepareStatement (SQL); ps.setString(1, curso.getNome()); ps.setString(2, curso.getCodigo()); ps.setInt(3, curso.getTotalCreditos()); ps.setString(4, curso.getTurno()); /*for (DisciplinaDTO disciplina : disciplinas) { ps.setString(1, novo.getTitulo()); ps.setInt(2, novo.getAno()); ps.setString(3, novo.getTitulo()); }*/
ps.executeUpdate(); } catch (SQLException sqle){ throw new Exception ("Houve erro no fechamento da conexão "); }finally { conn.close(); } } public void excluir(CursoDTO curso) throws Exception{ PreparedStatement ps = null; Connection conn = null; if (curso == null) throw new Exception("O valor passado não pode ser nulo"); try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); conn = DriverManager.getConnection("jdbc:odbc:Aplicação"); ps = conn.prepareStatement("DELETE from Curso WHERE nome=?"); ps.setString (1, curso.getNome()); ps.executeUpdate(); }catch (SQLException sqle) { throw new Exception("Erro ao excluir dados: " + sqle); }finally { conn.close(); } } public void atualizar(CursoDTO curso) throws Exception{ PreparedStatement ps = null; Connection conn = null; if (curso == null) throw new Exception("O valor passado não pode ser nulo"); try{ String SQL = " UPDATE album SET Nome=?, " + " Codigo=? " + " totalCreditos=? " + " Turno=? " + "where Nome=?"; Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); conn = DriverManager.getConnection("jdbc:odbc:Aplicação"); ps = conn.prepareStatement(SQL); ps.setString(1, curso.getNome()); ps.setString(2, curso.getCodigo()); ps.setInt(3, curso.getTotalCreditos()); ps.setString(4, curso.getTurno()); ps.executeUpdate(); }catch (SQLException sqle){ throw new Exception ("Erro ao atualizar dados: " + sqle); }finally { conn.close(); } } public CursoDTO procurarCurso(String nome) throws Exception { PreparedStatement ps = null; Connection conn = null; ResultSet rs = null; try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); conn = DriverManager.getConnection("jdbc:odbc:Aplicação"); ps = conn.prepareStatement("SELECT * FROM Curso where nome=?"); rs = ps.executeQuery( ); if( !rs.next( ) ) { throw new Exception( "Não foi encontrado nenhum" + " registro com o ID: " + nome); } String codigo= rs.getString( 2 ); int totalCreditos = rs.getInt( 3 ); String turno = rs.getString( 4 ); return new CursoDTO(nome,codigo,totalCreditos,turno) ; } catch (SQLException sqle) { throw new Exception(sqle); } finally { conn.close(); } }}
Logo no método salvar o compilador acusa o seguinte erro:
Exception in thread “main” java.lang.NullPointerException
at dao.CursoDAO_BD.salvar(CursoDAO_BD.java:45)
at dto.CursoDTO.salvar(CursoDTO.java:32)
at Aplicação.Teste.main(Teste.java:106)
O que estou fazendo de errado? Já olhei alguns tutoriais pela internet, mas continuo com o erro