Manipulação de Datas com JDBC

7 respostas
T

Pessoal estou começando a usar o Java, e estou com a seguinte duvida:

Tenho uma coluna em uma tabela do meu banco que é do tipo DATE. Preciso grava nela, uma data aleatória.

Esses são os métodos Get e Set para que usuario coloque a data

public Calendar getExpirationDate() {
		return expirationDate;
}
public void setExpirationDate(Calendar expirationDate) {
	this.expirationDate = expirationDate;

Precisava de uma idéia de como armazeno essa Data usando JDBC (Não pode ser JPA), utilizando o método stmt.setDate.

Caso vocês achem que eu deva arrumar alguma coisa nos metodos (como trocar o tipo para Date) me informem!
Alguém pode me ajudar?

7 Respostas

M

Thiagosf:
Pessoal estou começando a usar o Java, e estou com a seguinte duvida:

Tenho uma coluna em uma tabela do meu banco que é do tipo DATE. Preciso grava nela, uma data aleatória.

Esses são os métodos Get e Set para que usuario coloque a data

public Calendar getExpirationDate() {
		return expirationDate;
}
public void setExpirationDate(Calendar expirationDate) {
	this.expirationDate = expirationDate;

Precisava de uma idéia de como armazeno essa Data usando JDBC (Não pode ser JPA), utilizando o método stmt.setDate.

Caso vocês achem que eu deva arrumar alguma coisa nos metodos (como trocar o tipo para Date) me informem!
Alguém pode me ajudar?

Eu geralmente uso o tipo da variável como Date, depois quando for necessário converto para Calendar.

romarcio

Você precisa inserir um Date então use o método getTime() do seu objeto Calendar.

T

Então! O problema é que dá erro de compilação:

Date expirationDate = new Date (user.getExpirationDate().getTime());

stmt.setDate(6,expirationDate);

Lembrando que esse Date é do tipo java.sql.Date!

nel

Então! O problema é que dá erro de compilação:

Date expirationDate = new Date (user.getExpirationDate().getTime());

stmt.setDate(6,expirationDate);

Lembrando que esse Date é do tipo java.sql.Date!

Tens certeza ? Não tem outro java.util.Date já importado na mesma classe ?
Tenta forçar colocando assim:

java.sql.Date expirationDate = new java.sql.Date (user.getExpirationDate().getTime());
stmt.setDate(6,expirationDate);

Espero que esteja usando PreparedStatement, né? :slight_smile:

T

Então! O problema é que dá erro de compilação:

Date expirationDate = new Date (user.getExpirationDate().getTime());

stmt.setDate(6,expirationDate);

Lembrando que esse Date é do tipo java.sql.Date!

Tens certeza ? Não tem outro java.util.Date já importado na mesma classe ?
Tenta forçar colocando assim:

java.sql.Date expirationDate = new java.sql.Date (user.getExpirationDate().getTime());
stmt.setDate(6,expirationDate);

Espero que esteja usando PreparedStatement, né? :)

Bom agora, deu certo! Agora como faço para efetivamente inserir a data? (escrever a data para efetivamente gravar no banco.)

nel

Como assim ? Basicamente, é só usar o método executeUpdate() que ele vai aplicar a Query que tu definiu.

lucasportela

Não pode esquecer de dar commit

Criado 27 de agosto de 2012
Ultima resposta 27 de ago. de 2012
Respostas 7
Participantes 5