Olá, a todos, eu já pesquisei bastante aqui para ver se achava a solução do problema, mas não encontrei, por isso preciso de uma ajuda, estou com problema para inserir data no campo data, estou usando Netbeans e banco de dados h2 embedded, por enquanto estou simulando os campos no código, nada de inserção no jTextField ainda. criei a tabela do banco de dados assim:
CREATE TABLE DESPESAS (
ID_DESPESAS INT NOT NULL AUTO_INCREMENT,
DESCRICAO VARCHAR(255) NOT NULL,
VALOR DOUBLE NOT NULL,
FORMA_PAGAMENTO VARCHAR(255) NOT NULL,
TIPO VARCHAR(255) NOT NULL,
DATA_DIA DATE NOT NULL,
PRIMARY KEY(ID_DESPESAS)
);
Criei a coluna DATA_DIA DATE NOT NULL, até tudo certo ai tenho a classe Despesas assim:
import java.sql.Date;
import java.util.Objects;
public class Despesas {
String descricao;
double valor;
String formaPagamento;
String tipo;
Date dataDia;
Com seus Getters e setters.
Ai tenho a classe para testar a conexão e as tabelas:
import br.com.invistafacil.dominio.ContaBanco;
import br.com.invistafacil.dominio.Despesas;
import br.com.invistafacil.dominio.Usuario;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class ConexaoDB {
public Connection getConnection() {
try {
return DriverManager.getConnection("jdbc:h2:file:./repositorios/invistafacilDB", "sa", "");
} catch (SQLException e) {
// TODO: handle exception
throw new RuntimeException(e);
}
}
public void inserirDespesa(Despesas despesas) throws SQLException {
Connection con = new ConexaoDB().getConnection();
String sql = "insert into DESPESAS" + " (DESCRICAO,VALOR,FORMA_PAGAMENTO,TIPO,DATA_DIA)" + " values (?,?,?,?,?)";
PreparedStatement stmt = con.prepareStatement(sql);
stmt.setString(1, despesas.getDescricao());
stmt.setDouble(2, despesas.getValor());
stmt.setString(3, despesas.getFormaPagamento());
stmt.setString(4, despesas.getTipo());
stmt.setDate(5, despesas.getDataDia());
stmt.execute();
stmt.close();
System.out.println("Gravado no banco de dados com sucesso!");
}
public static void main(String[] args) throws SQLException {
ConexaoDB conexaoDB = new ConexaoDB();
Despesas despesas = new Despesas();
despesas.setDescricao("Cinema Vigadores Guerra Infinita");
despesas.setValor(40);
despesas.setFormaPagamento("Dinheiro");
despesas.setTipo("Lazer");
despesas.setDataDia(5082118);
conexaoDB.inserirDespesa(despesas);
}
}
É nessa linha despesas.setDataDia(5082118); que da problema e não consigo inserir um valor para testar, estou usando a importação import java.sql.Date; na classe despesas, alguém pode me ajudar por favor, agradeço.