public class ProjectController {
public void save(Project project){
String sql = "INSERT INTO Projects (name,"
+ "description,"
+ "createdAt,"
+ "updatedAt) VALUES (?,?,?,?)";
Connection connection = null;
PreparedStatement statement = null;
try {
//cria uma conexao com o banco
connection = ConnectionFactory.getConnection();
//cria um PreparedStament, classe usada para executar a query
statement = connection.prepareStatement(sql);
statement.setString(1, project.getName());
statement.setString(2, project.getDescription());
statement.setDate(3, new Date(project.getCreatedAt().getTime()));
statement.setDate(4, new Date(project.getUpdatedAt().getTime()));
//Executa a sql para inserção dos dados
statement.execute();
} catch (SQLException ex) {
throw new RuntimeException("Erro ao salvar a tarefa", ex);
} finally {
ConnectionFactory.closeConnection(connection, statement);
}
}
Qual é a instrução da linha 42?
statement.setDate(4, new Date(project.getUpdatedAt().getTime()));
Então o project.getUpdatedAt()
está retornando null
tenho q colocar oq nele?,sou novato na programação kk
Então não deveria estar fazendo acesso a banco de dados.
Pra que serve a propriedade updatedAt
da sua classe?
Pelo nome imagino que seja um objeto Date
contendo o momento em que o objeto foi atualizado, se for isso, seta essa data antes de persistir o objeto.
package model;
import java.util.Date;
/**
*
* @author ALEXANDRO
*/
public class Project {
private int id;
private String name;
private String description;
private Date createdAt;
private Date updatedAt;
public Project(int id, String name, String description, Date createdAt, Date updatedAt) {
this.id = id;
this.name = name;
this.description = description;
this.createdAt = createdAt;
this.updatedAt = updatedAt;
}
public Project() {
this.createdAt = new Date();
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public Date getCreatedAt() {
return createdAt;
}
public void setCreatedAt(Date createdAt) {
this.createdAt = createdAt;
}
public Date getUpdatedAt() {
return updatedAt;
}
public void setUpdatedAt(Date updatedAt) {
this.updatedAt = updatedAt;
}
@Override
public String toString() {
return "Project{" + "id=" + id + ", name=" + name + ", description=" + description + ", createdAt=" + createdAt + ", updatedAt=" + updatedAt + '}';
}
}
como eu faço pra setar a data?
No seu objeto project, chama o método setUpdatedAt passando o objeto Date desejado
n sei exatamente como faz isso
Cadê o código que chama o método save
do seu ProjectController
?
package controller;
import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import model.Project;
import util.ConnectionFactory;
/**
*
* @author ALEXANDRO
*/
public class ProjectController {
public void save(Project project){
String sql = "INSERT INTO Projects (name,"
+ "description,"
+ "createdAt,"
+ "updatedAt) VALUES (?,?,?,?)";
Connection connection = null;
PreparedStatement statement = null;
try {
//cria uma conexao com o banco
connection = ConnectionFactory.getConnection();
//cria um PreparedStament, classe usada para executar a query
statement = connection.prepareStatement(sql);
statement.setString(1, project.getName());
statement.setString(2, project.getDescription());
statement.setDate(3, new Date(project.getCreatedAt().getTime()));
statement.setDate(4, new Date (project.getUpdatedAt().getTime()));
//Executa a sql para inserção dos dados
statement.execute();
} catch (SQLException ex) {
throw new RuntimeException("Erro ao salvar a tarefa", ex);
} finally {
ConnectionFactory.closeConnection(connection, statement);
}
}
Você não entendeu, cadê o código que chama esse método?
Alguém chama esse método passando um objeto Project como parâmetro.
nao é esse aqui? eu fiz o projeto igual do professor
consequi resolver esse erro
so n ta conectando no banco de dados
Ali está a declaração do método.
Pedi para você postar o código que chama aquele método.
Está conectando sim, tanto que o erro está dizendo que não existe a coluna ‘updatedAt’.