Galera tudo bem ? Estou fazendo um sistema de ControleFinanceiro, e um dos campos eu conseguir com algumas pesquisar pegar com o Date.valueOf() e salvar no banco de dados. Porém um outro atributo também estou usando LocalDate, porém eu gostaria de obter o Mês e o Ano... Ja pesquisei alguns lugares mas esta complicado de achar, alguém teve o mesmo problema ou poderia me ajudar ? Agradeço desde já !
Segue os codigos:
package br.com.bruno.model;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.YearMonth;
import java.util.Calendar;
public class Gasto {
private String nomeGasto;
private BigDecimal valorDoGasto;
private LocalDate dataVencimento;
private LocalDate mesReferencia;
private boolean status;
public String getNomeGasto() {
return nomeGasto;
}
public void setNomeGasto(String nomeGasto) {
this.nomeGasto = nomeGasto;
}
public BigDecimal getValorDoGasto() {
return valorDoGasto;
}
public void setValorDoGasto(BigDecimal valorDoGasto) {
this.valorDoGasto = valorDoGasto;
}
public LocalDate getDataVencimento() {
return dataVencimento;
}
public void setDataVencimento(LocalDate dataVencimento) {
this.dataVencimento = dataVencimento;
}
public LocalDate getMesReferencia() {
return mesReferencia;
}
public void setMesReferencia(LocalDate mesReferencia) {
this.mesReferencia = mesReferencia;
}
public boolean getStatus() {
return status;
}
public void setStatus(boolean status) {
this.status = status;
}
}
GastoDao onde apresenta erro no eclipe no get.MesReferencia():
package br.com.bruno.DAO;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import br.com.bruno.jdbc.ConnectionFactory;
import br.com.bruno.model.Gasto;
public class GastoDAO {
private Connection connection;
public GastoDAO() {
try {
this.connection = new ConnectionFactory().getconnection();
} catch (Exception e) {
e.printStackTrace();
}
}
public void adiciona(Gasto gasto) {
String sql = "insert into gastos"
+ "(nomeGasto, valorDoGasto, dataVencimento, mesReferencia,status)"
+ "values(?,?,?,?,?)";
try {
//prepared statement para inserção
PreparedStatement stmt = connection.prepareStatement(sql);
stmt.setString(1, gasto.getNomeGasto());
stmt.setBigDecimal(2, gasto.getValorDoGasto());
stmt.setDate(3, Date.valueOf(gasto.getDataVencimento())); // http://respostas.guj.com.br/24591-localdate-e-jdbc
stmt.setDate(4, Date.valueOf(gasto.getMesReferencia())); // NESTE CAMPO, GOSTARIA APENAS DE PEGAR (MES/ANO)
stmt.setBoolean(5, gasto.getStatus());
//executa
stmt.execute();
stmt.close();
} catch(SQLException e) {
e.printStackTrace();
}
}
}