GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Tipo que armazene informação da data para cadastro

mysql
java
database
Tags: #<Tag:0x00007f97234bc5c8> #<Tag:0x00007f97234bc3e8> #<Tag:0x00007f97234bc168>

#1

Boas colegas. Gostaria de saber como poderei criar uma variável que permita receber uma data e enviar para a base de dados. Sabendo que eu precisarei de dois formatos de datas um datetime para me ajudar nos registo e um simples date para data de nascimento.


#2

pode usar Date no Java, para ambos


#3

usando o tipo Date do java.sql.date ou java.util.date??


#4

na verdade, acabei ficando com um outro problema também relacionado com as datas. Sei que já faz uns dias, só que estou em volta de uma projecto, entao acabei deixando este pormenor para resolver para depois…
Criei o método na classe DAO para fazer a insercao na base de dados, porem quando quero fazer teste para ver se insere vejo que nao posso setar a data porque não é do tipo string. Ai surgiu um outro problema que não estou a ver como resolver. Abaixo deixo os metodos e classes para poder ter uma ajuda ou dica ou algo que possa ajudar. Obrigado

Classe domain

    import java.util.Date;

public class Producto {
	private int id;
	private int artigo;
	private Date dataRegisto;
	private Date validade;
	private String tipoProducto;
	private String descricao;
	private int quantidade;
	
	public Date getDataRegisto() {
		return dataRegisto;
	}
	
	public void setDataRegisto(Date dataRegisto) {
		this.dataRegisto = dataRegisto;
	}
	
	public Date getValidade() {
		return validade;
	}
	
	public void setValidade(Date validade) {
		this.validade = validade;
	}

Classe DAO

public class ProductoDAO {
	public void inserir(Producto p) throws SQLException{
		StringBuilder sql = new StringBuilder();
		sql.append("insert into producto ");
		sql.append("artigo, data, tipoProducto, descricao, quantidade, validade ");
		sql.append("values(?, ?, ?, ?, ?, ?)");
		
		Connection conexao = Conexao.conectar();
		
		PreparedStatement stmt = conexao.prepareStatement(sql.toString());
		stmt.setInt(1, p.getArtigo());
		stmt.setDate(2, (Date) p.getDataRegisto());
		stmt.setString(3, p.getTipoProducto());
		stmt.setString(4, p.getDescricao());
		stmt.setInt(5, p.getQuantidade());
		stmt.setDate(6,  (Date) p.getValidade());
		
	}
}

Metodo para o teste

	@Test
	public void inserir() throws SQLException {
		
		Producto p = new Producto();
		p.setArtigo(0001);
		p.setDataRegisto("2018-09-09"); //nao posso porque não é string mas um tipo Date
			
	}

Espero por uma ajuda vossas colegas


#5

Converta sua string para o tipo date.


#6

Converta sua string para o tipo date.

Obrigado Vagner, bem agora tenho uma outra questão, como é para enviar para a base de dados o formato de data no mysql é “yyyy-MM-dd”, será este o formato em que tirei de converter certo??


#7

Nesse link mostra como converter em string em formatos diferentes:

SimpleDateFormat formato = new SimpleDateFormat(“dd/MM/yyyy”);
Date data = formato.parse(“23/11/2015”);
System.out.println(formato.format(data));
Resultado:

23/11/2015