Bom dia a todos! Estou com algumas dúvidas acerca do uso do java com o banco postgres e ficarei agradecido se alguém puder dar alguma dica, lá vai:
1- Estou usando o tipo BigDecimal pra trabalhar com valores monetários e no banco estou usando um campo numeric do postgres. Tentei usar o campo money (que me parece o ideal) com o BigDecimal mas não funcionou. Gostaria de saber a forma como vcs trabalham com valores monetários com postgres e java.
2- Quando salvo um tipo java.sql.Date em um campo date do banco e um tipo java.sql.Time em um campo time do banco, tudo funciona bem. Porém, estranhamente, quando ao mesmo tempo, salvo um java.sql.Timestamp em um campo timestamp do banco, o horário de verão não é computado e aparece com uma hora a menos! Pensei em usar o TimeStamp apenas, no lugar de salvar um Date e um Time, pois ficaria mais simples e menos suscetível a erros na hora de recuperar. Mas com esse problema do horário de verão fiquei na dúvida sobre a melhor maneira de tratar datas e horários.
Obs.: a data é passada ao java.sql.Time, ao java.sql.Date e ao java.sql.Timestamp através de um Calendar:
Calendar cal = Calendar.getInstance();
pstmt.setTime(1, new java.sql.Time(cal.getTimeInMillis()));
pstmt.setDate(2, new java.sql.Date(cal.getTimeInMillis()));
pstmt.setTimestamp(3, new java.sql.Timestamp(cal.getTimeInMillis()));
O que acontece é que eu tô desenvolvendo um sistema para hotéis que vai fazer muito uso de datas e valores monetários e eu queria saber a melhor maneira de trabalhar com esses campos, principalmente datas. Afinal, posso deixar os campos de data como String, Date ou Calendar. Não estou muito convicto sobre qual abordagem é a melhor.
att,
Fred