Jump to content

POWERED BY:

violin101

JAVA - Ajuda com erro.

Recommended Posts

Caros amigos, saudações.

 

Estou escrevendo um Sistema Java Web e quando clico no Botão Salvar, o Java acusa esse erro:

ERROR: Cannot invoke "Object.toString()" because the return value of "java.util.Map.get(Object)" is null

 

Já tentei de várias formas resolver esse problema, mas não estou conseguindo.

Por favor, alguém pode me ajudar identificar a origem e resolver o problema acima ?

Grato,

 

Cesar

Share this post


Link to post
Share on other sites

Caros amigos, alguém por favor pode me ajudar a identificar e corrigir esse erro, que está me deixando louco.

ERROR: br.com.systemweb.model.dao.impl.CustomerDaoImpl.getObjectByTypeDocAndNumdoc Error:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'where c.c_type_doc='1' and c.c_num_doc='12345678' ' at line 1

 

ERROR: Cannot invoke "Object.toString()" because the return value of "java.util.Map.get(Object)" is null

 

OBSERVAÇÃO: não entendo porque o sistema me traz essa linha assim ==[ c.c_num_doc='12345678' ' ]===

 

o CustomerDao, está assim:
 

package br.com.systemweb.model.dao;

import br.com.systemweb.model.Customer;
import java.util.Map;

/**
 *
 * @author rctom
 */
public interface CustomerDao {
    public Customer getObjectByTypeDocAndNumdoc(String typeDoc, String numDoc);    
    public int saveObject(Map<String,Object>requestBody);
}

 

o CustomerDaoImpl, está assim:
 

import br.com.systemweb.config.ConexaoDB;
import br.com.systemweb.constants.ConstantMenssages;
import br.com.systemweb.model.Customer;
import br.com.systemweb.model.Departament;
import br.com.systemweb.model.District;
import br.com.systemweb.model.Province;
import br.com.systemweb.model.Ubigeo;
import br.com.systemweb.model.dao.CustomerDao;
import br.com.systemweb.utils.Utils;
import java.util.Map;
import java.sql.*;
import java.util.HashSet;
import java.util.Set;
import java.util.logging.Logger;
import java.util.logging.Level;

/**
 *
 * @author rctom
 */
public class CustomerDaoImpl implements CustomerDao{

    private static final Logger LOGGER = Logger.getLogger(CustomerDaoImpl.class.getName());
    
    @Override
    public Customer getObjectByTypeDocAndNumdoc(String typeDoc, String numDoc) {
        Customer customer = null;
        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        StringBuilder query = new StringBuilder();

        query.append("select ");
        query.append(" c.n_id_customer");
        query.append(" ,c.c_code");
        query.append(" ,c.c_type_doc");
        query.append(" ,c.c_num_doc");
        query.append(" ,c.c_business_name");
        query.append(" ,p.n_id_person");
        query.append(" ,p.c_name");
        query.append(" ,p.c_first_name");
        query.append(" ,p.c_last_name");        
        query.append(" ,p.c_civil_status");
        query.append(" ,p.d_date_birth");
        query.append(" ,p.c_gender");
        query.append(" ,c.c_address");
        query.append(" ,c.c_phone_main");
        query.append(" ,c.c_email_main");
        query.append(",u.n_id_ubigeo ");        
        query.append(",u.c_departament_inei ");
        query.append(",u.c_departamento ");
        query.append(",u.c_provincia_inei ");
        query.append(",u.c_provincia ");
        query.append(",u.c_ubigeo_inei ");
        query.append(",u.c_distrito ");               
        query.append(" from m_customer c inner join m_person p ");
        query.append(" On c.n_id_person=p.n_id_person left join m_ubigeo u ");
        query.append(" where c.c_type_doc=? and c.c_num_doc=?");  
        
        try {
            conn = ConexaoDB.getConnection();
            ps = conn.prepareStatement(query.toString());
            ps.setString(1,typeDoc);
            ps.setString(2,numDoc.trim());            
            rs = ps.executeQuery();
                        
            while (rs.next()) {
                customer = new Customer();
                customer.setCustomerId(rs.getInt("n_id_customer"));
                customer.setCustomerCode(rs.getString("c_code"));                
                customer.setTypeDoc(rs.getString("c_type_code"));
                customer.setNumDoc(rs.getString("c_num_doc"));
                customer.setBussinesName(rs.getString("c_business_name"));                                               
                customer.setPersonId(rs.getInt("n_id_person"));
                customer.setName(rs.getString("c_name"));
                customer.setFirstName(rs.getString("c_first_name"));
                customer.setLastName(rs.getString("c_last_name"));
                customer.setCivilState(rs.getString("c_civil_status"));
                customer.setGender(rs.getString("c_gender"));
                customer.setBirthDate(Utils.convertStringToLocalDate(rs.getString("d_date_birth")));
                customer.setAddress(rs.getString("c_address"));
                customer.setNumberPhone(rs.getString("c_phone_main"));
                customer.setEmail(rs.getString("c_email_main"));                     
                customer.setUbigeo(new Ubigeo(rs.getInt("n_id_ubigeo"),
                        new Departament(rs.getString("c_departamento_inei"), rs.getString("c_departamento")),
                        new Province(rs.getString("c_provincia_inei"), rs.getString("c_provincia")),
                        new District(rs.getString("c_ubigeo_inei"), rs.getString("c_distrito"))));                
            }            
            
        } catch (SQLException e) {
            LOGGER.log(Level.INFO, "Error:{0}", e.getLocalizedMessage());
        } catch (Exception e) {
            LOGGER.log(Level.INFO, "Error:{0}", e.getLocalizedMessage());            
            throw new RuntimeException(e.getLocalizedMessage());
        } finally {
            try {
                if(rs != null){
                   rs.close();
                }
                if(ps != null){
                   ps.close();
                }   
                if(conn != null){
                    ConexaoDB.releaseConnection(conn);
                }
            } catch (SQLException e) {
                LOGGER.log(Level.INFO, "Error:{0}", e.getLocalizedMessage());
            }
        }        
        
        if(customer == null){
            throw new NullPointerException(ConstantMenssages.MESSAGE_VAL_510);
        }
        
        return customer;       
    }

    @Override
    public int saveObject(Map<String, Object> requestBody) {
        int r = 0;
        int personId = 0;
        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;       

        if(requestBody.get("typeDoc").toString().equals("6")){
            mappingRequestToValidadeEmptyOrNullBusiness(requestBody);
        } else {
            mappingRequestToValidadeEmptyOrNullPerson(requestBody);
        }
        
        //Validar Número do Documento Informado
        Utils.validTypeAndNumberDoc(requestBody.get("typeDoc").toString(), requestBody.get("numDoc").toString());
                      
        StringBuilder queryInsertPerson = new StringBuilder();
        queryInsertPerson.append("INSERT INTO m_person(");
        queryInsertPerson.append("c_name");
        queryInsertPerson.append(",c_first_name");
        queryInsertPerson.append(",c_last_name");
        queryInsertPerson.append(",c_civil_status");
        queryInsertPerson.append(",c_gender");
        queryInsertPerson.append(",d_date_birth");
        queryInsertPerson.append(",c_state");
        queryInsertPerson.append(")values(?,?,?,?,?,?,?)");

        
        StringBuilder queryInsertCustomer = new StringBuilder();
        queryInsertCustomer.append("INSERT INTO m_customer(");
        queryInsertCustomer.append("c_code");
        queryInsertCustomer.append(",c_type_doc");
        queryInsertCustomer.append(",c_num_doc");
        queryInsertCustomer.append(",c_business_name");
        queryInsertCustomer.append(",c_address");
        queryInsertCustomer.append(",c_phone_main");
        queryInsertCustomer.append(",c_email_main");            
        queryInsertCustomer.append(",c_create_user");    
        queryInsertCustomer.append(",n_id_person");    
        queryInsertCustomer.append(",n_id_ubigeo");    
        queryInsertCustomer.append(",c_state");
        queryInsertCustomer.append(")values(?,?,?,?,?,?,?,?,?,?,?)");
        
        try {
            //Pessoa
            conn = ConexaoDB.getConnection();
            ps = conn.prepareStatement(queryInsertPerson.toString(), PreparedStatement.RETURN_GENERATED_KEYS);
            ps.setString(1, requestBody.get("name").toString().trim().toUpperCase());
            ps.setString(2, requestBody.get("firstName").toString().trim().toUpperCase());
            ps.setString(3, requestBody.get("lastName").toString().trim().toUpperCase());
            ps.setString(4, requestBody.get("selectCivilState").toString().trim());
            ps.setString(5, requestBody.get("selectGender").toString().trim());
            ps.setString(6, requestBody.get("birthDate").toString().trim());
            ps.setString(7, "A");
            
            r = ps.executeUpdate();            
            rs = ps.getGeneratedKeys();
            
            while (rs.next()) {                
                personId = rs.getInt(1);
            }
            
            //Cliente        
            ps = conn.prepareStatement(queryInsertCustomer.toString(), PreparedStatement.RETURN_GENERATED_KEYS);
            ps.setString(1, "C".concat(Utils.generateCodeWithDate()));
            ps.setString(2, requestBody.get("typeDoc").toString().trim());
            ps.setString(3, requestBody.get("numDoc").toString().trim());
            ps.setString(4, requestBody.get("businessName").toString().trim().toUpperCase());
            ps.setString(5, requestBody.get("address").toString().trim());
            ps.setString(6, requestBody.get("numberPhone").toString().trim());
            ps.setString(7, requestBody.get("email").toString().trim());            
            ps.setString(8, requestBody.get("sessionUser").toString().trim());
            ps.setInt(9, personId);
            ps.setInt(10, 1); /*Agregar de forma Dinamica*/
            ps.setString(11, "A");
            
            r = ps.executeUpdate();
            
        } catch (SQLException e) {
            LOGGER.log(Level.INFO, "Error:{0}", e.getLocalizedMessage());
        } catch (Exception e) {
            LOGGER.log(Level.INFO, "Error:{0}", e.getLocalizedMessage());            
            throw new RuntimeException(e.getLocalizedMessage());
        } finally {
            try {
                if(rs != null){
                   rs.close();
                }
                if(ps != null){
                   ps.close();
                }   
                if(conn != null){
                    ConexaoDB.releaseConnection(conn);
                }
            } catch (SQLException e) {
                LOGGER.log(Level.INFO, "Error:{0}", e.getLocalizedMessage());
            }
        }  
        return r;
    }
    
    
    private void mappingRequestToValidadeEmptyOrNullPerson(Map<String,Object>requestBody){
        for (Map.Entry<String,Object>entry:requestBody.entrySet()) {
            if(mandatoryColumnsPerson().contains(entry.getKey())){
                Utils.isNullOrEmty(entry.getKey(), entry.getValue().toString());
            }
        }
        if(requestBody.get("birthDate").toString().isBlank()){
            requestBody.put("birthDate","1900-01-01");
        }
    }    

    
    private void mappingRequestToValidadeEmptyOrNullBusiness(Map<String,Object>requestBody){
        for (Map.Entry<String,Object>entry:requestBody.entrySet()) {
            if(mandatoryColumnsBusiness().contains(entry.getKey())){
                Utils.isNullOrEmty(entry.getKey(), entry.getValue().toString());
            }
        }
        if(requestBody.get("birthDate").toString().isBlank()){
            requestBody.put("birthDate","1900-01-01");
        }
    }        
    
    
    private Set<String> mandatoryColumnsBusiness(){
        Set<String> columns = new HashSet<>();
        columns.add("businessName");
        columns.add("typeDoc");
        columns.add("numDoc");
        columns.add("email");
        return columns;
    }


    private Set<String> mandatoryColumnsPerson(){
        Set<String> columns = new HashSet<>();
        columns.add("name");
        columns.add("firstName");
        columns.add("lastName");
        columns.add("typeDoc");
        columns.add("numDoc");
        columns.add("email");
        return columns;
    }    
    
}

 

 

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By violin101
      Caros amigos, saudações.

      Estou enfrentando um problema que não consigo entender.

      Após Instalar o MySql versão 8.0.36, funciona corretamente realizando as conexões.

      O problema é:
      ---[ após reiniciar o micro, o MySql não faz as conexões.
      --[ tenta localizar este arquivo, mas não acha: my.ini
       
      Onde localizo ou configuro este arquivo na Pasta MySql ?

      Grato,
       
      Cesar
    • By violin101
      Caros amigos, saudações.
       
      Por favor, preciso de ajuda em Relação a Instalar o Jasper Reports no Eclipse, pois a opção de Eclipse Marketplace, não encontra para instalar.
       
      Já tentei de todas as formas mas não consegui, alguém conhece alguma rotina explicando este procedimento ?
       
      Grato,
       
      Cesar
    • By violin101
      Caros amantes da informática.
       
      Saudações.
       
      Estou usando o Eclipse Mars versão 4.5.0  e o 4.5.2, acredito que deva ter versões mais novas. 
      Sou novato em JAVA e estou encontrando alguns problema em Instalação de alguns plugins, como por exemplo:
       
      1) quando tento instalar o JBoss Tools através do Eclipse Marteplace, o Eclipse não o encontra na lista de plugins.
      2) se tento instalar através do Install New Software, abaixa alguns arquivos, mas também não instala o JBoss.
      3) se abro o site e arrasto o download para a área de trabalho do Eclipse, também não instala o JBoss.
       
      Caros amigos, existe outra alguma forma de instalar o JBoss Tools no Eclipse e como seria ?
       
      Grato,
       
      Cesar
       
       
    • By ILR master
      Pessoal, pergunta bem simples. Abaixo tenho o seguinte código:
       
      <script>
      function alerta()
      {
        if (window.confirm("Você realmente quer sair?")) {
          window.open("sair.html");
      }
      }
      </script>
       
      Funciona perfeitamente, só que está abrindo em outra janela e quero que abra na mesma janela.
       
      Alguém pode me ajudar?
    • By Jack Oliveira
      Ola pessoal boa tarde
      estou tentando fazer um texto se mover dentro do input porem nao esta dando resultado que preciso
       
      Este é o codigo 
      <script type="text/javascript"> $(document).ready(function () { var frases = [{ 'elemento': $('input[name=search_string]'), 'frases': ["O que você está procurando?", "Buscar por: Academia, Barbearia, Churrascaria, Decoração, Escola, Farmácia, Gráfica, Imobiliaria, Lanchonete, Mecânica, Odontologia, Pizzaria...", "Faça sua busca por segmentos aqui.", "São mais de 3mil empresas para serem exploradas."] }]; animaInput(frases); }); </script>  
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.