Problema com Date

Estou com um problema para passar um java.util.Date para uma campo Date de um banco de dados postgres.


// campo no DB
startUseDate date,


// classe do objeto com os metodos acesor
public class HardwareEntry {

// objeto que nao consigo por no DB
private Date startUseDate = new Date();

// metodo que retorna o Date startUseDate
public Date getStartDate() {
return startUseDate;
}


// classe que recebe HardwareEntry e faz as operacoes no DB
public class PostgresDataAccess implements HardwareDataAccess {

private PreparedStatement sqlUpdateStartUseDate;

sqlUpdateStartUseDate = connection.prepareStatement(
“UPDATE hardware SET startUseDate = ? WHERE hardwareID = ?” );

// metodo que recebe um objeto e salva(update, atualiza) no DB
public boolean saveHardware( HardwareEntry h ) throws DataAccessException {

// aqui o problema
sqlUpdateStartUseDate.setDate( 1, h.getStartDate() );

Quando estiver trabalhando com bancos utilize java.sql.Date

flw

[quote=“lap_junior”]Quando estiver trabalhando com bancos utilize java.sql.Date

flw[/quote]

ok, mas nesse caso, como eu devo fazer pra passar a data atual pro java.sql.Date?
eu tava usando java.util.Calendar.getTime() mas como ele retorna um java.util.Date, nao vai mais funcionar.

Faça isso.

Eu estava escrevendo um JavaBeans que escreve em um banco Access ou HSQL. Inserindo com String não há conflito. Mas se você for fazer uma busca por datas, vai ter q fazer baseado em string.

package zlogdan;

import java.util.*;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Datas {
private String datahj;
public void setData(){
Date dhj = new Date();
//espeçifica o tipo de formato
SimpleDateFormat formatter =
new SimpleDateFormat (“E yyyy.MM.dd ‘at’ hh:mm:ss a zzz”);
datahj = formatter.format(dhj).toString();
}

   public String getData(){
          return datahj;
   }

}

Vc pode fazer o seguinte:

   java.util.Date dataUtil = Calendar.getInstance().getTime();
   java.sql.Date data = new java.sql.Date(dataUtil.getTime());

Ele recebe um long como parâmetro…

[quote=“Daniel Vasconcelos Gomes”]Faça isso.

Eu estava escrevendo um JavaBeans que escreve em um banco Access ou HSQL. Inserindo com String não há conflito. Mas se você for fazer uma busca por datas, vai ter q fazer baseado em string.

package zlogdan;

import java.util.*;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Datas {
private String datahj;
public void setData(){
Date dhj = new Date();
//espeçifica o tipo de formato
SimpleDateFormat formatter =
new SimpleDateFormat (“E yyyy.MM.dd ‘at’ hh:mm:ss a zzz”);
datahj = formatter.format(dhj).toString();
}

   public String getData(){
          return datahj;
   }

}[/quote]

Sugere entao que eu armazene um varchar(String) no DB e nao um Date? é, eu ja tinha pensado nisso, mas achei que nao seria a opcao mais correta… mas se voce tem experiencia e usa assim… (:

[quote=“engos”][quote=“Daniel Vasconcelos Gomes”]Faça isso.

Eu estava escrevendo um JavaBeans que escreve em um banco Access ou HSQL. Inserindo com String não há conflito. Mas se você for fazer uma busca por datas, vai ter q fazer baseado em string.

package zlogdan;

import java.util.*;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Datas {
private String datahj;
public void setData(){
Date dhj = new Date();
//espeçifica o tipo de formato
SimpleDateFormat formatter =
new SimpleDateFormat (“E yyyy.MM.dd ‘at’ hh:mm:ss a zzz”);
datahj = formatter.format(dhj).toString();
}

   public String getData(){
          return datahj;
   }

}[/quote]

Sugere entao que eu armazene um varchar(String) no DB e nao um Date? é, eu ja tinha pensado nisso, mas achei que nao seria a opcao mais correta… mas se voce tem experiencia e
usa assim… (:[/quote]

resolvi o problema usando:

// set data de entrada
public void setEntryDate( Date d ) {
entryDate.setTime( calendar.getTimeInMillis() );
}

a solucao foi usar long pra passar um atributo de java.util.Date pra java.sql.Date

ainda nao executei a aplicacao, se nao funcionar, vou tentar usando usar String no DB

Faça sempre o q vc achar melhor…