Erro SQL

14 respostas
W
Seguinte galera, estou fazendo um preenchimento de combobox a partir do banco. Este código está rodando perfeitamente, mas em outra tela, precisei fazer a mesma coisa, só que ao invés de tbProjeto é tbDepartamento e o nome do Cbx tb muda... E este novo código está dando java.lang.NullPointerExceptionnull Este está certo :
try{
					
					Statement stmt = dbconn.createStatement();  
				    ResultSet resultSet = stmt.executeQuery("select * from tbFuncMen");  
					while(resultSet.next())
					{
						cbxProjFunc.addItem(resultSet.getString(2));
					}
					resultSet = stmt.executeQuery("select * from tbFuncHor");
					while(resultSet.next())
					{
						cbxProjFunc.addItem(resultSet.getString(2));
					}
					cbxProjFunc.updateUI();
					
					resultSet = stmt.executeQuery("select * from tbProjeto");
					while(resultSet.next())
					{
						cbxProjProjeto.addItem(resultSet.getString(2));
					}
					cbxProjProjeto.updateUI();
					
					
					
					
					
						
				}					
				catch(Exception ex){
					System.out.println("Falha na Conexão");
					System.out.println(ex.toString()+ex.getMessage());
				}
Este está com a excessão java.lang.NullPointerExceptionnull.
try{
			
			statement = dbconn.createStatement();  
		    ResultSet resultSet = statement.executeQuery("select * from tbFuncMen");  
			while(resultSet.next())
			{
				cbxDepFunc.addItem(resultSet.getString(2));
			}
			resultSet = statement.executeQuery("select * from tbFuncHor");
			while(resultSet.next())
			{
				cbxDepFunc.addItem(resultSet.getString(2));
			}
			cbxDepFunc.updateUI();
			
			resultSet = statement.executeQuery("select * from tbDepartamento");
			while(resultSet.next())
			{
				cbxDepDep.addItem(resultSet.getString(2));
			}
			cbxDepDep.updateUI();
			
			
			
			
			
				
		}					
		catch(Exception ex){
			System.out.println("Falha na Conexão");
			System.out.println(ex.toString()+ex.getMessage());
		}

Alguem pode me ajudar??

14 Respostas

pmlm

NullPointerException não deve ter nada a ver com o SQL. Mostra o stacktrace

W

java.lang.NullPointerException at fatec.proo.prjProjeto.AlocarFuncDep.initialize(AlocarFuncDep.java:68) at fatec.proo.prjProjeto.AlocarFuncDep.<init>(AlocarFuncDep.java:35) at fatec.proo.prjProjeto.Menu$4.actionPerformed(Menu.java:174) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.AbstractButton.doClick(Unknown Source) at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source) at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)

pmlm

willspbr:
java.lang.NullPointerException at fatec.proo.prjProjeto.AlocarFuncDep.initialize(AlocarFuncDep.java:68)

O que há na linha 68 da class AlocarFuncDep?

W
Statement stmt = dbconn.createStatement();
pmlm

Então dbconn é null nesse momento.

W

Então como posso resolver isto? Se puder colocar algum código que me ajuda eu agradeço.

pmlm

Se no outro está a funcionar, nesse deve faltar a inicialização da variável.

W

Ela já esta inicializada como nula

pmlm

Então esse é o problema!

W

Então o que devo colocar? O outro código está correto e está inicializado como null tb.

ViniGodoy

Em algum momento você não cria sua conexão?

W
Meu código está assim :
package fatec.proo.prjProjeto;


import java.awt.Rectangle;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class AlocarFuncDep extends JFrame {

	private static final long serialVersionUID = 1L;
	private JPanel jContentPane = null;
	private JLabel jLabel = null;
	private JLabel jLabel1 = null;
	private JButton btnAlocar = null;
	private JButton btnSair = null;
	private JComboBox cbxDepFunc = null;
	private JComboBox cbxDepDep = null;

	private Connection dbconn;
	private Statement stmt = null;

	/**
	 * This is the default constructor
	 */
	public AlocarFuncDep() {
		super();
		initialize();
		
		try{
			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
			
			String url="jdbc:odbc:bdExemplo";
			String user="";
			String password="";
			//efetua conexão
			dbconn=DriverManager.getConnection(url,user,password);
			stmt=dbconn.createStatement();
			System.out.println("Conexão Ok");
		}catch(Exception ex){
			System.out.println("Falha na Conexão");
			System.out.println(ex.toString()+ex.getMessage());
		}
	}
	

	/**
	 * This method initializes this
	 * 
	 * @return void
	 */
	private void initialize() {
		this.setSize(389, 200);
		this.setContentPane(getJContentPane());
		this.setTitle("Alocar Funcionário em Departamento");
		
		try{
			
			stmt = dbconn.createStatement();  
		    ResultSet resultSet = stmt.executeQuery("select * from tbFuncMen");  
			while(resultSet.next())
			{
				cbxDepFunc.addItem(resultSet.getString(2));
			}
			resultSet = stmt.executeQuery("select * from tbFuncHor");
			while(resultSet.next())
			{
				cbxDepFunc.addItem(resultSet.getString(2));
			}
			cbxDepFunc.updateUI();
			
			resultSet = stmt.executeQuery("select * from tbProjeto");
			while(resultSet.next())
			{
				cbxDepDep.addItem(resultSet.getString(2));
			}
			cbxDepDep.updateUI();
			
		}					
		catch(Exception ex){
			ex.printStackTrace();
		}
	}

	/**
	 * This method initializes jContentPane
	 * 
	 * @return javax.swing.JPanel
	 */
	private JPanel getJContentPane() {
		if (jContentPane == null) {
			jLabel1 = new JLabel();
			jLabel1.setBounds(new Rectangle(30, 64, 108, 25));
			jLabel1.setText("Departamento");
			jLabel = new JLabel();
			jLabel.setBounds(new Rectangle(30, 28, 76, 25));
			jLabel.setText("Funcionário");
			jContentPane = new JPanel();
			jContentPane.setLayout(null);
			jContentPane.add(jLabel, null);
			jContentPane.add(jLabel1, null);
			jContentPane.add(getBtnAlocar(), null);
			jContentPane.add(getBtnSair(), null);
			jContentPane.add(getCbxDepFunc(), null);
			jContentPane.add(getCbxDepDep(), null);
		}
		return jContentPane;
	}

	/**
	 * This method initializes btnAlocar	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getBtnAlocar() {
		if (btnAlocar == null) {
			btnAlocar = new JButton();
			btnAlocar.setBounds(new Rectangle(44, 105, 87, 25));
			btnAlocar.setText("Alocar");
		}
		return btnAlocar;
	}

	/**
	 * This method initializes btnSair	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getBtnSair() {
		if (btnSair == null) {
			btnSair = new JButton();
			btnSair.setBounds(new Rectangle(149, 105, 89, 26));
			btnSair.setText("Sair");
			btnSair.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					dispose();
				}
			});
		}
		return btnSair;
	}

	/**
	 * This method initializes cbxDepFunc	
	 * 	
	 * @return javax.swing.JComboBox	
	 */
	private JComboBox getCbxDepFunc() {
		if (cbxDepFunc == null) {
			cbxDepFunc = new JComboBox();
			cbxDepFunc.setBounds(new Rectangle(148, 26, 198, 29));

		}
		return cbxDepFunc;
	}

	/**
	 * This method initializes cbxDepDep	
	 * 	
	 * @return javax.swing.JComboBox	
	 */
	private JComboBox getCbxDepDep() {
		if (cbxDepDep == null) {
			cbxDepDep = new JComboBox();
			cbxDepDep.setBounds(new Rectangle(148, 61, 198, 31));
		}
		return cbxDepDep;
	}

}  //  @jve:decl-index=0:visual-constraint="10,10"
ViniGodoy

Ponha a linha do initialize() por último em seu construtor.

Note que no código atual, você está criando a conexão só após o initialize() executar. Entretanto, parte do seu initialize já depende de uma conexão criada.

W

Resolvido… Muito obrigado!

Criado 9 de junho de 2012
Ultima resposta 10 de jun. de 2012
Respostas 14
Participantes 3