Oiii pessoal, estou com um probleminha…
Tenho um sistema construido em Java com MySQL, para um cinema. Portanto, tem uma parte onde se é adastrada a programação do cinema onde se insere uma data inicial e uma data final e os dados para a gravação das sessões que são armazenadas em tabelas distintas, uma tb para a programaçao (data inicio e data fim) e outra para as sessoes (possui a data da sessao e seus dados) até ai tudo bem… O problema é quando eu insiro uma programação de um mes ao outro. Por exemplo, se eu colcoar como data inicial o dia ‘30/03/2007’ até ‘01/04/2007’ na tabela da programação os dados são gravados certos, ams na tabela das sessoes, em vez de gravar o dia ‘01/04/2007’ ele grava como ‘01/03/2007’. E agora? Alguem tem alguma susgestão???
// Classe de Negocio - Sessao
public void setDataSessao(String data) {
if(data==null||data==""){
throw new IllegalArgumentException("Erro em " + this.getClass()
+ ". A data da sessão não pode ser vazia ou nula.");
}else{
// Validacao
int dia, mes, ano;
try {
String tdata[] = data.split("/");
dia = Integer.parseInt(tdata[0]);
mes = Integer.parseInt(tdata[1]) - 1;
ano = Integer.parseInt(tdata[2]);
} catch (Exception e) {
throw new IllegalArgumentException("Erro em " + this.getClass()
+ ". A data da Sessão não foi informada corretamente.") ;
}
dataHora.set(Calendar.DAY_OF_MONTH, dia);
dataHora.set(Calendar.MONTH, mes);
dataHora.set(Calendar.YEAR, ano);
if (dia != dataHora.get(Calendar.DAY_OF_MONTH)
|| mes != dataHora.get(Calendar.MONTH)
|| ano != dataHora.get(Calendar.YEAR)) {
throw new IllegalArgumentException("Data da Sessao é inválida");
}
}
}
public String getDataSessao() {
SimpleDateFormat f = new SimpleDateFormat("dd/MM/yyyy");
return f.format(this.dataHora.getTime());
}
//MySQLSessao
public long inserirSessao(Sessao s) throws SQLException {
String sql = "insert into tb_sessao(id_programacao, dt_sessao, " +
"hr_horario_sessao, id_filme, id_sala, ic_ativo) values (?,?,?,?,?,?)";
PreparedStatement stmt = this.connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
stmt.setLong(1, s.getIdProgramacao());
try {
stmt.setString(2, ConverteData.parseDataBrToIso(s.getDataSessao()));
} catch (ConverteDataException e) {
throw new SQLException("Erro " + this.getClass()
+ ". " + e.getMessage());
}
stmt.setString(3, s.getHorarioSessao());
stmt.setLong(4, s.filme.getId());
stmt.setLong(5, s.sala.getId());
stmt.setString(6, "S");
stmt.execute();
ResultSet rs = stmt.getGeneratedKeys();
long idSessao;
if(rs.next()){
idSessao = rs.getLong(1);
}else{
idSessao = -1;
}
rs.close();
stmt.close();
return idSessao;
}
