1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Erro data Timestamp :Failed to convert property value of type java.lang.String to required type java.sql.Timestamp for property data_noticia;

Como fazer para que a data seja inserida?

https://www.filepicker.io/api/file/G4y0CsLwTVmLBSETFuz9

package br.ufc.dao;

import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import br.ufc.model.Noticia;

public class NoticiaDAO {
    private Connection conn;

    public NoticiaDAO(Connection conn) {
        this.conn = conn;
    }

    public void inserir(Noticia noticia) {

        // contruindo o SQL de inserção
        String sql = "INSERT INTO noticia "
                + "(titulo,subtitulo,texto,autor, data_noticia)"
                + "values (?,?,?,?,?)";
        // e o id da seção ?
        try {
            PreparedStatement stmt = conn.prepareStatement(sql);
            stmt.setString(1, noticia.getTitulo());
            stmt.setString(2, noticia.getSubtitulo());
            stmt.setString(3, noticia.getTexto());
            stmt.setString(4, noticia.getAutor());
            Date ts = new Date(noticia.getData_noticia().getTime());

            stmt.setDate(5, ts);

            stmt.execute();
            stmt.close();
            conn.close();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}
package br.ufc.model;

import java.sql.Timestamp; // e agora ?
import java.util.Calendar;
import java.util.Date;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

public class Noticia {
    private Long id;
    @NotNull
    @Size(min = 10)
    private String titulo;
    @NotNull
    @Size(min = 5)
    private String subtitulo;
    @NotNull
    @Size(min = 100)
    private String texto;
    @NotNull
    @Size(min = 8)
    private String autor;
    // data_noticia TIMESTAMP NOT NULL, tá certo?
    private Date data_noticia;
    private String id_secao;

    public Noticia() {
        // TODO Auto-generated constructor stub
    }

    public Noticia(Long id, String titulo, String subtitulo, String texto,
            String autor, Timestamp data_noticia, String id_secao) {
        this.id = id;
        this.titulo = titulo;
        this.subtitulo = subtitulo;
        this.texto = texto;
        this.autor = autor;
        this.data_noticia = data_noticia;
        this.id_secao = id_secao;
    }

    /**
     * @return the id
     */
    public Long getId() {
        return id;
    }

    /**
     * @param id
     *            the id to set
     */
    public void setId(Long id) {
        this.id = id;
    }

    /**
     * @return the titulo
     */
    public String getTitulo() {
        return titulo;
    }

    /**
     * @param titulo
     *            the titulo to set
     */
    public void setTitulo(String titulo) {
        this.titulo = titulo;
    }

    /**
     * @return the subtitulo
     */
    public String getSubtitulo() {
        return subtitulo;
    }

    /**
     * @param subtitulo
     *            the subtitulo to set
     */
    public void setSubtitulo(String subtitulo) {
        this.subtitulo = subtitulo;
    }

    /**
     * @return the texto
     */
    public String getTexto() {
        return texto;
    }

    /**
     * @param texto
     *            the texto to set
     */
    public void setTexto(String texto) {
        this.texto = texto;
    }

    /**
     * @return the autor
     */
    public String getAutor() {
        return autor;
    }

    /**
     * @param autor
     *            the autor to set
     */
    public void setAutor(String autor) {
        this.autor = autor;
    }

    /**
     * @return the data_noticia
     */
    public Date getData_noticia() {
        return data_noticia;
    }

    /**
     * @param data_noticia
     *            the data_noticia to set
     */
    public void setData_noticia(Timestamp data_noticia) {
        this.data_noticia = data_noticia;
    }

    /**
     * @return the id_secao
     */
    public String getId_secao() {
        return id_secao;
    }

    /**
     * @param id_secao
     *            the id_secao to set
     */
    public void setId_secao(String id_secao) {
        this.id_secao = id_secao;
    }

    public static Date convertStringToDate(String strDate) {

    //    int day = Integer.parseInt(strDate.split("/")[0]);
    //    int month = Integer.parseInt(strDate.split("/")[1]);
    //    int year = Integer.parseInt(strDate.split("/")[2]);

         int day = Integer.parseInt(strDate.split("-")[2]);
         int month = Integer.parseInt(strDate.split("-")[1]);
         int year = Integer.parseInt(strDate.split("-")[0]);

        Date date = null;

        // date = new Da
        Calendar calendar = Calendar.getInstance();
        calendar.set(year, month - 1, day);

        date = calendar.getTime();

        return date;

    }

    /*
     * (non-Javadoc)
     * 
     * @see java.lang.Object#toString()
     */
    @Override
    public String toString() {
        return "Noticia [id=" + id + ", titulo=" + titulo + ", subtitulo="
                + subtitulo + ", texto=" + texto + ", autor=" + autor
                + ", data_noticia=" + data_noticia + ", id_secao=" + id_secao
                + "]";
    }

}

Como faço para que a data seja inserida corretamente?

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html lang="pt">
<head>       
</head>

<body>
    <c:import url="/includes/cabecalho.jsp"/>
    <h1>Inserir Noticia</h1>


    <form  action="adicionarNoticia" method="post">
        Título: <input type="text" name="titulo" /> <br />
        <form:errors cssStyle="color:red" path="noticia.titulo"/> <br />
        Subtítulo: <input type="text" name="subtitulo" /> <br />
        <form:errors cssStyle="color:red" path="noticia.subtitulo"/> <br />
        Texto: <textarea name="texto" id="mensagem"></textarea><br />
        <form:errors cssStyle="color:red" path="noticia.texto"/> <br />
        Autor: <input type="text" name="autor" /> <br />
        <form:errors cssStyle="color:red" path="noticia.autor"/> <br />
        Data da Notícia: <input type="text" name="data_noticia" /> <br />
        <form:errors cssStyle="color:red" path="noticia.data_noticia"/> <br />

        <input type="submit" value="Inserir" /> <br />
    </form>


     <footer> <c:import url="/includes/feed_noticias.jsp" /> </footer>
    <footer> <c:import url="/includes/rodape.jsp" /> </footer>
</body>
</html>
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags date ou faça a sua própria pergunta.