Java + HSQLDB (NullPointer)

1. Java + HSQLDB (NullPointer)

Perfil removido
removido

(usa Nenhuma)

Enviado em 23/01/2014 - 22:41h

Pessoal, boa noite !

Eu e um amigo criamos uma aplicação Java com banco de dados Mysql.. resumindo: A aplicação controla cadastro de clientes e ordens de serviço de uma assistência técnica de celulares.. Agora acertamos alguns detalhes, decidimos trocar o banco de dados para HSQLDB, para não ter a necessidade de instalar o banco de dados separado.

Quando fizemos isso, algumas partes do programa deixaram de funcionar, conseguimos corrigir a maior parte, porém sobrou um problema que não conseguimos encontrar onde está..

Temos um botão para acessar as ordens de serviço procurando pelo número, este botão chama o método abaixo:

<code>
public int buscarOs(int os) throws SQLException {
ResultSet rs;
Statement stt;
this.getConect();
String url = "SELECT id_os, nome, t_fixo, t_cel, dt_entrada,dt_saida, marca, modelo, imei, status, defeito, serv_prestado, valor "
+ "FROM ordens JOIN clientes ON id_os =" + os + " AND ordens.id_cliente = clientes.id_cliente JOIN aparelhos ON ordens.id_aparelho = aparelhos.id_aparelho";
stt = con.createStatement();
rs = stt.executeQuery(url);
while (rs.next()) {
this.idOs = rs.getInt("id_os");
this.nome = rs.getString("nome");
this.tel1 = rs.getString("t_fixo");
this.tel2 = rs.getString("t_cel");
this.dtEnt = rs.getDate("dt_entrada");
this.dtSai = rs.getDate("dt_saida");
this.marca = rs.getString("marca");
this.modelo = rs.getString("modelo");
this.imei = rs.getString("imei");
this.status = rs.getString("status");
this.defeito = rs.getString("defeito");
this.servPres = rs.getString("serv_prestado");
this.valor = rs.getString("valor");
}

stt.close();
rs.close();
return this.idOs;
}
</code>

E após executar o método acima, um outro formulário utiliza esse método abaixo (para colocar as informações do 1º método, nos campos do outro formulário);

<code>
public void setarValuesCampo() {

tb_Os.setText(Integer.toString(idOs));
tb_Nome.setText(nome);
tb_TelRes.setText(tel1);
tb_TelCel.setText(tel2);
tb_dtEntrada.setText(formatarDate.format(dtEnt));
tb_Marca.setText(marca);
tb_Modelo.setText(modelo);
tb_Imei.setText(imei);
ta_Defeito.setText(defeito);
ta_ServicoPrest.setText(servPres);
tb_ValorServ.setText(valor);
verfStatus(status);
if (dtSai != null) {
tb_dtSaida.setText(formatarDate.format(dtSai));
} else {
tb_dtSaida.setText("");
}

}
</code>

Alguém pode ajudar a encontrar o problema? Já to ficando frustrado e me sentindo burro aki >.< Quando utilizamos no Mysql funciona tudo ok, no HSQLDB gera esses problemas:

<code>


Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at Formularios.frm_MostrarOS.setarValuesCampo(frm_MostrarOS.java:465)
at Formularios.frm_MostrarOS.formWindowOpened(frm_MostrarOS.java:500)
at Formularios.frm_MostrarOS.access$000(frm_MostrarOS.java:16)
at Formularios.frm_MostrarOS$1.windowOpened(frm_MostrarOS.java:92)
at java.awt.Window.processWindowEvent(Window.java:2048)
at javax.swing.JFrame.processWindowEvent(JFrame.java:296)
at java.awt.Window.processEvent(Window.java:2009)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:708)
at java.awt.EventQueue$4.run(EventQueue.java:706)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91
</code>


  


2. Re: Java + HSQLDB (NullPointer)

Paulo Dias
di4s

(usa XUbuntu)

Enviado em 24/01/2014 - 13:13h

oi,

o que o metodo this.getConect() faz? pelo o nome ele devolve um objeto Connect, mas você não salvou a referencia para esse objeto.

é a variavel con? é uma variavel de classe?




3. intaw...

Adriano S Amorim
adryanoamorim

(usa elementary OS)

Enviado em 24/01/2014 - 15:51h

sou o Amigo do Rafael ai da pergunta em questao...


este metodo so estabelece a conexao com o banco...

a variavel con e do tipo CONNECTION...


4. Re: Java + HSQLDB (NullPointer)

Paulo Dias
di4s

(usa XUbuntu)

Enviado em 24/01/2014 - 16:03h

ok, mas ela foi instanciada?

você tem certeza que con tem um objeto Connection?


visto o codigo, penso que deveria ser algo assim:

this.con = this.getConnect();


senão, em algum lugar dentro do metodo this.getConnect()

a variável con tem que receber um objeto Connection


5. Resposta

Adriano S Amorim
adryanoamorim

(usa elementary OS)

Enviado em 27/01/2014 - 10:47h

Amigao...a variavel con... foi instanciada como global no inicio da classe...criamos uma classe que contem todos os metodos de interação com o banco...optei pra num ficar criando uma instancia para cada metodo intaw botei ela global.


6. Re: Java + HSQLDB (NullPointer)

Paulo Dias
di4s

(usa XUbuntu)

Enviado em 27/01/2014 - 13:51h

ok,

você ainda está tendo dificuldades? precisa de ajuda?

se sim, é importante ter mais informações sobre o seu programa. Pelo que parece, você esqueceu de instanciar alguma coisa, e está tentando setar um valor null em algum campo.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts