Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

teixeiradeco

Null Pointer Exception

Recommended Posts

Fala galera.
Não sei mais o que fazer no código.
Estou tentando enviar para um banco de dados as informações passadas pelo usuário.
Essa informações seriam:
Filia; Nome Completo; Endereco; Cidade.
Depois tentaria traze-las de volta do banco.
Quando executo a JVM indica a exceção:

 

Exception in thread "main" java.lang.NullPointerException

at br.com.IgrejaViva.CadastraMembro.insert(CadastraMembro.java:60)
at br.com.IgrejaViva.CadastraMembro.main(CadastraMembro.java:14)

 

O código é esse:

 

package br.com.IgrejaViva;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Scanner;

public class CadastraMembro{


	public static void main(String[] args) throws SQLException {
		
		insert();
		
		select();
		
	}
	
	public static void insert() throws SQLException{

		@SuppressWarnings("resource")
		Scanner scanner = new Scanner(System.in);
		Membro membro = new Membro();
		ConnectionDB con = new ConnectionDB();

		System.out.println("Bem vindo ao sistema de cadastros");
		System.out.println("Digite 1 para sair !");

		int op = 0;
		while (op != 1) {

			System.out.println("Digite a Filial do Membro");
			membro.setFilial(scanner.nextLine());

			System.out.println("Digite o Nome completo");
			membro.setNome(scanner.nextLine());

			System.out.println("Digite o Endereço");
			membro.setEndereco(scanner.nextLine());

			System.out.println("Digite o Cidade");
			membro.setCidade(scanner.nextLine());



			/*System.out.println(membro.getCidade());
				System.out.println(membro.getNome());
				System.out.println(membro.getFilial());
				System.out.println(membro.getEndereco());*/
			if (op >= 2) {
				
				System.out.println("Digite apenas o numero 1 para sair");
			}
			else op = scanner.nextInt();
		}

		PreparedStatement query = con.prepareStatement("INSERT INTO Membro (filial, nomecompleto, endereco, cidade) VALUES (?, ?, ?, ?)");
		query.setString(1, membro.getFilial()); // AQUI A JVM PARA A EXECUÇÃO
		query.setString(2, membro.getNome());
		query.setString(3, membro.getEndereco());
		query.setString(4, membro.getCidade());
		query.executeQuery();

	}

	public static ArrayList<Membro> select() throws SQLException{

		ConnectionDB con = new ConnectionDB();
		ArrayList<Membro> listaDeMembros = new ArrayList<Membro>();
		Membro membro = new Membro();
		
		PreparedStatement query2 = con.prepareStatement("SELECT * from Membro");
		ResultSet resultados = query2.executeQuery();
		
		while (resultados.next()) {
			listaDeMembros.add(membro);
			membro.setFilial(resultados.getString("filial"));
			membro.setNome(resultados.getString("nomecompleto"));
			membro.setEndereco(resultados.getString("endereco"));
			membro.setCidade(resultados.getString("cidade"));

		}
		return listaDeMembros;
	}
}

 

Se alguém já passou por esse problema ou sabe como posso resolve-lo me ajude!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala camarada.

Estou usando o MS SQL Server Express.

package br.com.IgrejaViva;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class ConnectionDB {

	private static String URL ="jdbc:microsoft:sqlserver://localhost:1433;databaseName=Congresso;";
	private static String usuario = "ANDRETEIXEIRA";
	private static String password = "q1w2e3";  
	private static String DRIVER ="com.microsoft.sqlserver.jdbc.SQLServerDriver" ;


	public static Connection abreConexao() throws SQLException{  
		try {  

			Class.forName(DRIVER);  
			Connection con = DriverManager.getConnection(URL,usuario,password);  
			return con;  

		} catch (ClassNotFoundException e) {  
			throw new SQLException(e.getMessage());  

		}
	}


	public PreparedStatement prepareStatement(String string) {
		// TODO Auto-generated method stub
		return null;
	}
}

Ai está, o código da classe que faz a conexão.

Qual seria o erro de sintaxe?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em momento algum o método "abreConexao()" foi executado. Percebeu?

 

Bem, camarada isso realmente não estava sendo feito.

 

Mas agora o erro é outro.

 

 

Exception in thread "main" java.sql.SQLException: No suitable driver found for jdbc:microsoft:sqlserver://localhost:1433;databaseName=Congresso;
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at br.com.IgrejaViva.ConnectionDB.abreConexao(ConnectionDB.java:20)
at br.com.IgrejaViva.CadastraMembro.insert(CadastraMembro.java:26)
at br.com.IgrejaViva.CadastraMembro.main(CadastraMembro.java:14)

 

Verifiquei o build path e o jar do sqlserver mas continua acusando esse erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando crio minha classe de conexão, faço dessa forma:

(ORACLE)

import java.sql.*;

public class DefaultDAO {

    protected Connection connection;
    protected Statement state;
    protected PreparedStatement pstate;
    protected ResultSet result;
    private final String DRIVER = "jdbc:oracle:thin:USUARIO/SENHA@//localhost:1521/XE";
    private final String JDBC = "oracle.jdbc.OracleDriver";
    public String lastErrorMessage = "";
 
    protected boolean connect() {
        boolean success = false;
        try {
            Class.forName(JDBC);
            connection = DriverManager.getConnection(DRIVER);
            state = connection.createStatement();
            success = true;
        } catch (ClassNotFoundException | SQLException e) {
            lastErrorMessage = e.getMessage();
        }
        return success;
    }

    protected boolean disconnect() {
        boolean success = false;
        try {
            connection.close();
            success = true;
        } catch (SQLException e) {
            lastErrorMessage = e.getErrorCode() + " || " + e.getMessage();
        }
        return success;
    }
}

Não sei se ajuda em algo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ele ta tentando conectar a um banco SQL server sem ter o driver, tente usar MySQL...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.