Problema com Date

7 respostas
engos

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() );


7 Respostas

L

Quando estiver trabalhando com bancos utilize java.sql.Date

flw

engos

“lap_junior”:
Quando estiver trabalhando com bancos utilize java.sql.Date

flw

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.

D

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;
   }

}

TedLoprao

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…

engos

“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;
   }

}

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… (:

engos

“engos”:
“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;
   }

}

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… (:

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

D

Faça sempre o q vc achar melhor…

Criado 27 de maio de 2004
Ultima resposta 27 de mai. de 2004
Respostas 7
Participantes 4