Erro ao fazer consulta no banco postgresql no javafx

7 respostas
java
M

Estou tendo o seguinte erro no meu metodo pesquisar:

Conectado

Exception in thread JavaFX Application Thread java.lang.RuntimeException: java.lang.reflect.InvocationTargetException

at javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1774)

at javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1657)

at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)

at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)

at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)

at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)

at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)

at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)

at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)

at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)

at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)

at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)

at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)

at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)

at javafx.event.Event.fireEvent(Event.java:198)

at javafx.scene.Node.fireEvent(Node.java:8413)

at javafx.scene.control.Button.fire(Button.java:185)

at com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:182)

at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:96)

at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:89)

at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218)

at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)

at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)

at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)

at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)

at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)

at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)

at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)

at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)

at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)

at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)

at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)

at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)

at javafx.event.Event.fireEvent(Event.java:198)

at javafx.scene.Scene$MouseHandler.process(Scene.java:3757)

at javafx.scene.Scene$MouseHandler.access$1500(Scene.java:3485)

at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1762)

at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2494)

at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:381)

at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:295)

at java.security.AccessController.doPrivileged(Native Method)

at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$353(GlassViewEventHandler.java:417)

at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:389)

at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:416)

at com.sun.glass.ui.View.handleMouseEvent(View.java:555)

at com.sun.glass.ui.View.notifyMouse(View.java:937)

at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)

at com.sun.glass.ui.win.WinApplication.lambda$null$147(WinApplication.java:177)

at java.lang.Thread.run(Unknown Source)

Caused by: java.lang.reflect.InvocationTargetException

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

at java.lang.reflect.Method.invoke(Unknown Source)

at sun.reflect.misc.Trampoline.invoke(Unknown Source)

at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

at java.lang.reflect.Method.invoke(Unknown Source)

at sun.reflect.misc.MethodUtil.invoke(Unknown Source)

at javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1771)

 48 more

Caused by: java.lang.NullPointerException

at control.ListaDiscosControl.pesquisarDisco(ListaDiscosControl.java:122)

 58 more

botao pesquisar:

@FXML

void pesquisarDisco() {

DiscoDAO dao = new DiscoDAO();

try{

List resultado =  dao.pesquisarResitro(txtPesquisarDisco.getText());
if(resultado.isEmpty()){
			Main.caixaDialogoInformacao("Nenhum funcionario encontrado");
			limparCampos();
		}else{
			discos.setItems(FXCollections.observableList(resultado));
		}
	}catch(Exception e){
		Main.caixaDialogoErro("Houve problemas ao realizar pesquisa.\n " + e.getMessage());
		limparCampos();
	}	
}

metodo pesquisar:

public List<Disco> pesquisarResitro(String nomeDisco){
	Conexao con = new Conexao();		
	List<Disco> discos = new ArrayList<>();		
	String sql = "SELECT * FROM \"DISCO\" WHERE \"NM_DISCO\" LIKE '%" +nomeDisco+ "%';";
	
	try {
		PreparedStatement ps = con.getConexao().prepareStatement(sql);			
		ResultSet rs = ps.executeQuery();
		
		while(rs.next()){
			Disco disco = new Disco();
			disco.setIdDisco(rs.getInt("ID_DISCO"));
			disco.setNomeDisco(rs.getString("NM_DISCO"));
			disco.setNomeCantor(rs.getString("NM_CANTOR"));
			disco.setNomeProdutor(rs.getString("NM_PRODUTOR"));
			disco.setNomeSelo(rs.getString("SELO"));
			disco.setNomeSelo(rs.getString("VERTENTE"));
			disco.setAnoProducao(rs.getString("ANO_PRODUCAO"));
			disco.setFormato(rs.getString("FORMATO"));
			disco.setObs(rs.getString("OBS"));
			
			discos.add(disco);
		}
		rs.close();
		ps.close();
		
	} catch (SQLException e) {
		throw new RuntimeException(e.getMessage());
	}
	
	return discos;
}

Alguem consegue me ajudar?
OBS: Capturei o erro tirando a tratativa de erro.

7 Respostas

D

Não precisa duplicar tópicos. Basta responder no original que você consegue resolver o problema.

M

desculpa por duplicar topicos…mas vc consegue me ajudar?

D

Responda o que perguntei no primeiro tópico.

M

discos.setItems(FXCollections.observableList(resultado));

D

Onde você instanciou a variável discos?

M

da classe “ListaDiscosControl” discos é uma table view
na classe “DiscoDAO” eu criei ela nessa linha: “List discos = new ArrayList<>();”

M

@FXML
private TableView discos;

Criado 30 de janeiro de 2018
Ultima resposta 30 de jan. de 2018
Respostas 7
Participantes 2