Boa tarde pessoal, estou com o seguinte probleminha aqui.
eu tenho o seguinte método:
public void insereID(ConexaoDAO conexao) throws ParseException {
Produtor produtor = new Produtor();
this.verificaBranco();
try {
PreparedStatement Pstmt1 = this.conexao
.prepareStatement("SELECT nome_produtor,nome_proprietario_imovel_principal,apelido,cpf,cod_ceacdap,nis,sexo,rg,ufdoorgaoemissor,datanasc,nomedamae,cdescolaridade,cdestadocivil,endereco,numerodoendereco FROM Produtor prod,Propriedade prop WHERE prod.cod_produtor = prop.cod_produtor AND prod.cod_produtor < 20 ");
ResultSet rs = Pstmt1.executeQuery();
int chave = 700000;
while (rs.next()) {
produtor.setNome(rs.getString(1));
produtor.setApelido(rs.getString(3));
produtor.setCpfProdutor(rs.getString(4));
produtor.setCodCeac(rs.getString(5));
produtor.setNis(rs.getString(6));
produtor.setSexo(rs.getString(7));
produtor.setRg(rs.getString(8));
produtor.setCodUfEmissor(this.verificaUfOrgaoEmissor(rs.getString(9)));
produtor.setDataNascimento(this.converteDataNascimento(rs.getDate(10)));
produtor.setNomeDaMae(rs.getString(11));
produtor.setCdEscolaridade(this.verificaEscolaridade(rs.getString(12)));
produtor.setCdEstadoCivil((this.verificarEstadoCivil(rs.getString(13))));
produtor.setLocalidadeProdutor(rs.getString(14));
// produtor.setEndereco(rs.getString(14));
produtor.setNdoEndereco(this.verificaNumEnd(rs.getString(15)));
if (rs.getString(2).equals(produtor.getNome())) {
Pstmt1 = this.conexao
.prepareStatement("INSERT INTO FRENTE(CHAVE,ID_PRO,NOME_PROD,APELIDO,CPF_CNPJ,CEAC,NIS,SEXO,TIPO_DOC,INSC_ESTADUAL,UF_DOC,MAE,DATA_NASC,ESCOLARIDADE,EST_CIVIL,TIPO_PRODUTOR,LOCALIDADE_PROD,ENDERECO) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
Pstmt1.setString(1, Integer.toString(chave));
Pstmt1.setString(2, "1");
Pstmt1.setString(3, produtor.getNome());
Pstmt1.setString(4, produtor.getApelido());
Pstmt1.setString(5, produtor.getCpfProdutor());
Pstmt1.setString(6, produtor.getCodCeac());
Pstmt1.setString(7, produtor.getNis());
Pstmt1.setString(8, produtor.getSexo());
Pstmt1.setString(9, "1");
Pstmt1.setString(10,produtor.getRg());
Pstmt1.setString(11,produtor.getCodUfEmissor());
Pstmt1.setString(12,produtor.getNomeDaMae());
Pstmt1.setString(13,produtor.getDataNascimento());
Pstmt1.setString(14, produtor.getCdEscolaridade());
Pstmt1.setString(15,produtor.getCdEstadoCivil());
Pstmt1.setString(16, "1");
Pstmt1.setString(17,produtor.getLocalidadeProdutor());
Pstmt1.setString(18,produtor.getNdoEndereco());
Pstmt1.execute();
} else {
Pstmt1 = this.conexao
.prepareStatement("INSERT INTO FRENTE(CHAVE,ID_PRO,NOME_PROD,APELIDO,CPF_CNPJ,CEAC,NIS,SEXO,TIPO_DOC,INSC_ESTADUAL,UF_DOC,MAE,DATA_NASC,ESCOLARIDADE,EST_CIVIL,TIPO_PRODUTOR,LOCALIDADE_PROD,ENDERECO) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
Pstmt1.setString(1, Integer.toString(chave));
Pstmt1.setString(2, "2");
Pstmt1.setString(3, produtor.getNome());
Pstmt1.setString(4, produtor.getApelido());
Pstmt1.setString(5, produtor.getCpfProdutor());
Pstmt1.setString(6, produtor.getCodCeac());
Pstmt1.setString(7, produtor.getNis());
Pstmt1.setString(8, produtor.getSexo());
Pstmt1.setString(9, "1");
Pstmt1.setString(10,produtor.getRg());
Pstmt1.setString(11,produtor.getCodUfEmissor());
Pstmt1.setString(12,produtor.getNomeDaMae());
Pstmt1.setString(13,produtor.getDataNascimento());
Pstmt1.setString(14, produtor.getCdEscolaridade());
Pstmt1.setString(15,produtor.getCdEstadoCivil());
Pstmt1.setString(16, "1");
Pstmt1.setString(17,produtor.getEndereco());
Pstmt1.setString(18,produtor.getNdoEndereco());
Pstmt1.execute();
}
chave++;
}
Pstmt1.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
o problema é que
quando executo sem esta linha:
produtor.setNdoEndereco(this.verificaNumEnd(rs.getString(15)));
o programa funciona beleza. Mas quando eu utilizo ela. ele da erro.
aqui está o outro método:
public String verificaNumEnd(String numEnd){
if (numEnd == null || numEnd.equals(null)) {
numEnd = " ";
}
return numEnd;
}
o erro que da é o seguinte:
java.sql.SQLException: [Microsoft][Driver ODBC para Microsoft Access] O campo 'FRENTE.ENDERECO' não pode ser uma seqüência de caracteres de comprimento nulo.
at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.SQLExecute(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcPreparedStatement.execute(Unknown Source)
at DAO.ConexaoDAO.insereID(ConexaoDAO.java:135)
at DAO.Teste.main(Teste.java:12)
TESTE OK
Alguém poderia me ajudar?
Agradeço antecipadamente.