Acesso a banco de dados usando ODBC

2 respostas
L

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

2 Respostas

wiltonor

Esta linha gerou o ps = conn.prepareStatement(“DELETE from Curso WHERE nome=?”);. Provavelmente o erro está nesta linha conn = DriverManager.getConnection(“jdbc:odbc:Aplicação”,"","");, conn recebeu nulo, é preciso checar a conexão odbc, ela não precisa de um usuário e/ou senha? Pois você nao passou nenhum.

L

Mesmo que eu esteja usando o Access?

Criado 30 de outubro de 2012
Ultima resposta 30 de out. de 2012
Respostas 2
Participantes 2