Olá gente, estou criando uma classe de teste que busca uma lista do banco de dados. Para isso criei um uma classe Exame e uma classe ExameDAO e estou usando o DataSource para criar a conexão com o Banco de Dados MySQL. Porém ao executar a classe de teste aparece a seguinte mensagem no console: "Exception in thread “main” java.lang.NullPointerException
at br.unama.dao.ExameDAO.consultaExame(ExameDAO.java:35)
at br.unama.testes.TestaLista.main(TestaLista.java:15)"
Ficarei grato, caso alguém ajude. Segue abaixo as classes.
identar texto pre-formatado em 4 espaços
package br.unama.modelo;
import java.util.Calendar;
import java.util.Date;
public class Exame {
//Define o tipo do exame, se é um ecocardiograma, eletrocardiograma ou mapa on houter
private int idExame;
private String tipoExame;
private Calendar dataExame;
//Define qual o diagnóstico do médico
private String hipotseDiagnostico;
private String cid;
private String status;
public Exame() {
}
public Exame(int idExame2, String tipoExame2, String dataExame2, String hipotseDiagnostico2, String cid2, String status2) {
super();
this.idExame = idExame;
this.tipoExame = tipoExame;
this.dataExame = dataExame;
this.hipotseDiagnostico = hipotseDiagnostico;
this.cid = cid;
this.status = status;
}
public String getTipoExame() {
return tipoExame;
}
public void setTipoExame(String tipoExame) {
this.tipoExame = tipoExame;
}
public int getIdExame() {
return idExame;
}
public void setIdExame(int idExame) {
this.idExame = idExame;
}
public Calendar getDataExame() {
return dataExame;
}
public void setDataExame(Calendar dataExame) {
this.dataExame = dataExame;
}
public String getHipotseDiagnostico() {
return hipotseDiagnostico;
}
public void setHipotseDiagnostico(String hipotseDiagnostico) {
this.hipotseDiagnostico = hipotseDiagnostico;
}
public String getCid() {
return cid;
}
public void setCid(String cid) {
this.cid = cid;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
}
identar texto pre-formatado em 4 espaços
identar texto pre-formatado em 4 espaços
package br.unama.dao;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import javax.sql.DataSource;
import br.unama.modelo.Exame;
public class ExameDAO {
private DataSource datasource;
private List<Exame> listExame;
public ExameDAO(DataSource ds){
this.datasource = ds;
}
public List<Exame> consultaExame(){
listExame = new ArrayList<Exame>();
Connection con = null;
Statement st = null;
ResultSet result = null;
//obter conexão com o banco de dados
try {
con = datasource.getConnection();
//Criar o SQL
st = con.createStatement();
String sql = "Select * from exame";
//executa o sql
result = st.executeQuery(sql);
//processar os dados retornados
while(result.next()) {
Exame exames = new Exame();
exames.setTipoExame(result.getString("tipoExame"));
exames.setIdExame(result.getInt("idexame"));
Calendar data = Calendar.getInstance();
data.setTime(result.getDate("data-exam"));
exames.setDataExame(data);
exames.setHipotseDiagnostico(result.getString("hipo_diag"));
exames.setCid(result.getString("cid"));
exames.setStatus(result.getString("status"));
/*
String tipoExame = result.getString("tipoExame");
int idExame = result.getInt("idexame");
String dataExame = result.getString("data-exam");
String hipotseDiagnostico = result.getString("hipo_diag");
String cid = result.getString("cid");
String status = result.getString("status");
*/
//Exame exame = new Exame(idExame, tipoExame, dataExame, hipotseDiagnostico, cid, status);
listExame.add(exames);
con.close();
st.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
return listExame;
}
}
identar texto pre-formatado em 4 espaços
identar texto pre-formatado em 4 espaços
package br.unama.testes;
import java.util.Calendar;
import java.util.List;
import br.unama.dao.ExameDAO;
import br.unama.modelo.Exame;
public class TestaLista {
public static void main(String[] args) {
ExameDAO dao = new ExameDAO(null);
List<Exame> exames = dao.consultaExame();
for(Exame exame: exames) {
System.out.println("Tipo Exame: " + exame.getTipoExame());
System.out.println("ID Exame: " + exame.getIdExame() );
System.out.println("Data Exame: "+ exame.getDataExame().getTime()+"\n");
System.out.println("Hipotese Diagnostico" + exame.getHipotseDiagnostico());
System.out.println("CID: " + exame.getCid());
System.out.println("Statuso: " + exame.getStatus());
}
}
}
identar texto pre-formatado em 4 espaços