Java/Spring: problema con conversione String in Date (CRUD)

di il
5 risposte

Java/Spring: problema con conversione String in Date (CRUD)

Buongiorno ragazzi, sto creando un semplice CRUD in Spring e sto riscontrando un problema nel fare la conversione da String in Date. Nel momento dell'esecuzione mi dà il seguente errore:

ERROR 505.Request processing failed; nested exception is java.lang.NullPointerException
java.lang.NullPointerException
java.base/java.text.SimpleDateFormat.parse(SimpleDateFormat.java:1470)
java.base/java.text.DateFormat.parse(DateFormat.java:393)
cap.controller.UpdateController.updateCustomer(UpdateController.java:46)
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.base/java.lang.reflect.Method.invoke(Method.java:567)
org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:207)
org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:137)
org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:800)
org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1038)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:998)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:901)
javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:875)
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)

5 Risposte

  • Re: Java/Spring: problema con conversione String in Date (CRUD)

    Nel controller, metodo updateCustomer, guarda bene cosa fai:
    
    Date dn=(Date) (new SimpleDateFormat("dd/MM/yyyy").parse(customer.getDatanascita()));
    customer.setDatanascita((new SimpleDateFormat("dd-MM-yyyy")).format(dn));
    
    Nella prima delle due righe stai cercando di parsare un valore che non esiste (è nullo: da qui la NullPointerException). Non devi parsare il valore di customer.getDatanascita, ma la data di nascita che ti è stata passata tra i parametri del metodo.
  • Re: Java/Spring: problema con conversione String in Date (CRUD)

    Perfetto, ho risolto quell'errore. Ora mi risulta quest'altro:
    Data truncation:Incorrect date value: 12-05-1943 for colum 'Datanascita' at row 1;

    Durante l'esecuzione del programma ho inserito a Datanascita il valore 12/05/1943. Come posso risolverlo?
  • Re: Java/Spring: problema con conversione String in Date (CRUD)

    SpiritoLibero ha scritto:


    Nel controller, metodo updateCustomer, guarda bene cosa fai:
    
    Date dn=(Date) (new SimpleDateFormat("dd/MM/yyyy").parse(customer.getDatanascita()));
    customer.setDatanascita((new SimpleDateFormat("dd-MM-yyyy")).format(dn));
    
    Nella prima delle due righe stai cercando di parsare un valore che non esiste (è nullo: da qui la NullPointerException). Non devi parsare il valore di customer.getDatanascita, ma la data di nascita che ti è stata passata tra i parametri del metodo.
    Perfetto, ho risolto quell'errore. Ora mi risulta quest'altro:
    Data truncation:Incorrect date value: 12-05-1943 for colum 'Datanascita' at row 1;

    Durante l'esecuzione del programma ho inserito a Datanascita il valore 12/05/1943. Come posso risolverlo?
  • Re: Java/Spring: problema con conversione String in Date (CRUD)

    Una Data truncation solitamente riguarda il DB. Nel tuo caso ti sta dicendo che non puoi inserire una data in quel modo.
    Le date nei DB vanno scritte secondo il formato previsto dal DB: nel 99% dei casi il formato è yyyy-MM-dd mentre tu stai passando una data in formato stringa dd-MM-yyyy.
  • Re: Java/Spring: problema con conversione String in Date (CRUD)

    SpiritoLibero ha scritto:


    Una Data truncation solitamente riguarda il DB. Nel tuo caso ti sta dicendo che non puoi inserire una data in quel modo.
    Le date nei DB vanno scritte secondo il formato previsto dal DB: nel 99% dei casi il formato è yyyy-MM-dd mentre tu stai passando una data in formato stringa dd-MM-yyyy.
    Perfetto, era questo il problema. Ti ringrazio infinitamente.
Devi accedere o registrarti per scrivere nel forum
5 risposte