Pessoal,
Estou tentando importar um arquivo .txt para um BD e a aplicação está apresentando o seguinte erro:
Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException
Minha Classe Importacao:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import javax.swing.JOptionPane;
public class Importacao {
private File file;
private StringBuffer sb;
private FileReader reader;
private BufferedReader bufReader;
private String lugar;
private String arquivo;
private String caminho_Completo;
public String var;
public String linha = “”;
public String sql;
String agencia,conta,documento,valor,banco,lote, sequencial, motivo;
public Importacao(String arquivo)
{
this.lugar = “c:\Osvaldo”;
this.arquivo = arquivo;
this.caminho_Completo = getLugar() +"\"+arquivo;
this.var = “”;
this.linha = “”;
this.agencia = " ";
this. conta = “”;
this. documento = “”;
this.valor = “”;
this. banco = “”;
this.lote = “”;
this. sequencial = “”;
this.motivo = “”;
this.sql = “”;
file = new File(getCaminho_Completo());
sb = new StringBuffer();
}
public String getLugar()
{
return lugar;
}
public String getArquivo()
{
return arquivo;
}
public String getCaminho_Completo()
{
return caminho_Completo;
}
public void importa(Conexao1 con){
try{
reader = new FileReader(file);
bufReader = new BufferedReader(reader);
while (linha!=null) {
linha = bufReader.readLine();
if (linha.charAt(32)== ' ' )
{
continue;
}
agencia = linha.substring(3, 7);
conta = linha.substring(7, 16);
documento = linha.substring(17, 23);
valor = linha.substring(24, 34);
banco = linha.substring(38,41);
lote = linha.substring(41,48);
sequencial = linha.substring(48, 51);
motivo = linha.substring(51, 53);
Cheque_DSR cheque_DSR = new Cheque_DSR(agencia, conta, documento, valor, banco, lote, sequencial, motivo);
String sql_inclusao = "INSERT INTO tbldsr733(agencia, conta, documento, valor, banco, lote, sequencial, motivo)";
sql_inclusao += "values('"+cheque_DSR.getAgencia()+"'"+cheque_DSR.getConta()+"'"+"'"+cheque_DSR.getDocumento()+"'"+"'"+cheque_DSR.getValor()+"'"+"'"+cheque_DSR.getBanco()+"'"+"'"+cheque_DSR.getLote()+"'"+"'"+cheque_DSR.getSequencial()+"'"+"'"+cheque_DSR.getMotivo()+"')";
con.Executa_SQL(sql_inclusao);
if (linha!=null) {
sb.append( linha + "\r\n" );
}
}
// while (linha!=null);
// while (linha!=null);
bufReader.close();
reader.close();
con.Fecha_Conexao();
}
catch (IOException e) {
e.printStackTrace();
}
}
}
E minha classe Conexao1:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;
import java.sql.PreparedStatement;
public class Conexao1 {
private Connection connection;
private Statement statement;
private ResultSet rs,resultSet;
private ResultSetMetaData resultSetMD;
private PreparedStatement Pstatement;
private String caminho;
private boolean conexao_aberta;
private String usuario;
private String senha;
public int i = 0;
public Conexao1(String caminho, String usuario, String senha)
{
this.caminho = caminho;
this.usuario = usuario;
this.senha = senha;
this. conexao_aberta = false;
}
public Connection getconnection()
{
return connection;
}
public Statement getstatement()
{
return statement;
}
public ResultSet getresultSet()
{
return rs;
}
public String getCaminho()
{
return caminho;
}
public String getUsuario()
{
return usuario;
}
public String getSenha()
{
return senha;
}
public void setCaminho(String c)
{
if ( Conexao_Aberta() )
Fecha_Conexao();
//
if ( c.length() < 22 )
caminho = "jdbc:mysql://" + "10.34.101.180" + ":3306/" + "rotinas";
else
caminho = c;
}
public String Abre_Conexao()
{
String resp="";
try
{
// cria a conexao
connection = DriverManager.getConnection(getCaminho(),getUsuario(),getSenha());
statement = connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE,ResultSet.HOLD_CURSORS_OVER_COMMIT);
statement = connection.createStatement();
// consulta o banco de dados
Pstatement = connection.prepareStatement("select agencia,conta,documento,valor,banco,lote,sequencial,motivo from tblDsr733",ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
rs = Pstatement.executeQuery();
rs.next();
//
resp=resp.concat("Conexão ABERTA\n");
conexao_aberta = true;
}
catch (SQLException sqlException)
{
resp=resp.concat("Conexão NÃO estabelecida\n");
}
//
return resp;
}
public String Executa_SQL(String x)
{
int retorno = 0;
String resp = “”;
if ( conexao_aberta )
{
try
{
System.out.println(x);
retorno = statement.executeUpdate(x);
resp=resp.concat("Sentença SQL executada com sucesso!\n");
}
catch (SQLException sqlException)
{
resp=resp.concat("Erro ao tentar executar a sentença SQL\n");
}
}
else
{
resp=resp.concat("A Conexão se encontra fechada\n");
}
//
return resp;
}
// public void Inserir_BD(){
// connection.
// }
public String Fecha_Conexao()
{
String resp = "";
//
if ( conexao_aberta )
{
try
{
// Executa_SQL("Update Contatos set Nome = nome");
connection.commit();
connection.close();
conexao_aberta = false;
statement.close();
resp=resp.concat("Conexão FECHADA\n");
}
catch (SQLException sqlException)
{
resp=resp.concat("Conexão NÃO pode ser fechada\n");
}
}
else
{
resp=resp.concat("Conexão JÁ se encontra fechada\n");
}
//
return resp;
}
public boolean Conexao_Aberta()
{
return conexao_aberta;
}
}
