Fórum Null Pointer Exception #471678
01/03/2014
0
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 e Cidade.
Depois tentaria traze-las de volta do banco.
Quando executo a JVM indica a exceção:
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());
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()); // onde a JVM interrompe 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!
Andre Teixeira
Curtir tópico
+ 0Posts
01/03/2014
André Camargo
Gostei + 0
02/03/2014
Andre Teixeira
Eu estou usando o MS SQL Server Express.
Os campos no banco de dados são exatamente os que estão na linha 52, dentro do INSERT.
Eu entendo que há esse erro de lógica.
A minha intensão é fazer o insert no banco, testando essa conexão.
Gostei + 0
03/03/2014
André Camargo
Gostei + 0
03/03/2014
Andre Teixeira
Dá uma olhada no código de conexão.
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;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;
}
}Eu descobri que não estava executando o abreConexao() na main.
Mas mesmo depois de fazer o java continua me retornando a exceção do driver do sqlserver.
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)
Já verifiquei várias vezes a build path e o jar do driver sqlserver.
Mesmo assim o java joga a exceção.
Gostei + 0
03/03/2014
André Camargo
Dá uma olhada no código de conexão.
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;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;
}
}Eu descobri que não estava executando o abreConexao() na main.
Mas mesmo depois de fazer o java continua me retornando a exceção do driver do sqlserver.
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)
Já verifiquei várias vezes a build path e o jar do driver sqlserver.
Mesmo assim o java joga a exceção.
Assim, tu já adicionou a biblioteca do banco?
Gostei + 0
03/03/2014
Andre Teixeira
Onde encontro a biblioteca?
Gostei + 0
03/03/2014
André Camargo
Gostei + 0
03/03/2014
Andre Teixeira
Se for ao .jar do sqlserver driver que está se referindo, eu já fiz o procedimento de importação desse driver.
Inclusive apagando o jar e refazendo o build path.
Gostei + 0
03/03/2014
André Camargo
Gostei + 0
03/03/2014
André Camargo
private static String URL ="jdbc:sqlserver://localhost:1433;databaseName=teste;";
Testa com a porta. ve se o banco está rodando.
Gostei + 0
10/03/2014
Andre Teixeira
private static String URL ="jdbc:sqlserver://localhost:1433;databaseName=teste;";
Testa com a porta. ve se o banco está rodando.
Boa noite amigo.
Eu verifiquei na minha URL que tinha um 'microsoft' sobrando.
Mas agora o erro que ocorre é esse:
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:190)
at com.microsoft.sqlserver.jdbc.SQLServerException.ConvertConnectExceptionToSQLServerException(SQLServerException.java:241)
at com.microsoft.sqlserver.jdbc.SocketFinder.findSocket(IOBuffer.java:2243)
at com.microsoft.sqlserver.jdbc.TDSChannel.open(IOBuffer.java:491)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1309)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:991)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:827)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1012)
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:61)
at br.com.IgrejaViva.CadastraMembro.main(CadastraMembro.java:14)
Já configurei firewall, sql managment studio mas nada funcionou.
Gostei + 0
10/03/2014
André Camargo
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)