Fórum Associação Binaria com Banco de dados em Java #484945
08/07/2014
0
Ola,
Tenho uma classe unidade e outra policial, cada unidade deve ter um comandante(policial)
Eu fiz a associação binaria dessa forma
Meu Banco de dados se encontra dessa forma
O problema esta quando vou carregar os objetos da unidade e policial
o metodo esta dessa forma
O erro é de NullPointerException nas linhas
String Re = rs.getString("ReCmt");
policial = new Policial();
policial = daopolicial.buscar(Re);
unidade.setCmt(policial);
O problema é que o metodo funciona normalmente no cadastro de policial
segue código do método
Tenho uma classe unidade e outra policial, cada unidade deve ter um comandante(policial)
Eu fiz a associação binaria dessa forma
public class Unidade {
private String CodUni;
private String NomeUni;
private String End;
private int N;
private Policial cmt = null;
....
public class Policial {
private String Re;
private String Qra;
private String Nome;
private String Posto;
.....
Meu Banco de dados se encontra dessa forma
create table `bdcia`.tbpolicial
(
idpolicial INT not null primary key,
Re VARCHAR(10) not null,
Qra VARCHAR(45),
Nome VARCHAR(100),
PostoGraduacao VARCHAR(45)
)
create table `bdcia`.tbunidade
(
CodUni VARCHAR(10) not null primary key,
NomeUni VARCHAR(50),
Endereco VARCHAR(150),
N INT,
ReCmt VARCHAR(10)
)
O problema esta quando vou carregar os objetos da unidade e policial
o metodo esta dessa forma
public Unidade buscar(String CodUnidade) throws ClassNotFoundException{
Unidade unidade = null;
try{
Connection conn = new Conexao().getconnection();
String sql = "select * from tbunidade where CodUni = ?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, CodUnidade);
ResultSet rs = ps.executeQuery();
if(rs.next()){
unidade = new Unidade(rs.getString("CodUni"),rs.getString("NomeUni"));
unidade.setBairro(rs.getString("Bairro"));
unidade.setCep(rs.getString("Cep"));
unidade.setCidade(rs.getString("Cep"));
unidade.setEnd(rs.getString("Endereco"));
unidade.setN(rs.getInt("N"));
unidade.setSede(rs.getBoolean("sede"));
unidade.setTelefone(rs.getString("Telefone"));
String Re = rs.getString("ReCmt");
policial = new Policial();
policial = daopolicial.buscar(Re);
unidade.setCmt(policial);
System.out.println("Nome comandante: "+unidade.getCmt().getNome());
}
}catch(SQLException ex) {
Logger.getLogger(daoUnidades.class.getName()).log(Level.SEVERE, null, ex);
}
return unidade;
}
}
O erro é de NullPointerException nas linhas
String Re = rs.getString("ReCmt");
policial = new Policial();
policial = daopolicial.buscar(Re);
unidade.setCmt(policial);
O problema é que o metodo funciona normalmente no cadastro de policial
segue código do método
public Policial buscar(String Re) throws ClassNotFoundException {
Policial policial = null;
try {
Connection conn = new Conexao().getconnection();
String sql = "select * from tbpolicial where Re=?";
PreparedStatement ps;
ps = conn.prepareStatement(sql);
ps.setString(1, Re);
ResultSet rs = ps.executeQuery();
if (rs.next()) {
String Qra = rs.getString("Qra");
policial = new Policial(Re, Qra);
policial.setNome(rs.getString("Nome"));
policial.setPosto(rs.getString("PostoGraduacao"));
policial.setEnd(rs.getString("Endereco"));
Michel Furtado.
Curtir tópico
+ 0
Responder
Posts
09/07/2014
Ronaldo Lanhellas
Bom, primeiro que não vi onde está declarada a variável "policial", você está instanciando sem declarar, mude:
De:
Para:
Outra coisa, é que não faz sentido nenhum você criar um objeto Policial e depois atribuir a esse objeto uma outra instancia de outro local. O mas correto seria:
De:
String Re = rs.getString("ReCmt");
policial = new Policial();
policial = daopolicial.buscar(Re);
Para:
String Re = rs.getString("ReCmt");
Policial policial = new Policial();
policial = daopolicial.buscar(Re);
Outra coisa, é que não faz sentido nenhum você criar um objeto Policial e depois atribuir a esse objeto uma outra instancia de outro local. O mas correto seria:
String Re = rs.getString("ReCmt");
Policial policial = null;
policial = daopolicial.buscar(Re);
if (policial == null) {
throw new RuntimeException("O objeto policial é nulo, cheque o método daopolicial.buscar(Re)");
}
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)