Olá, boa tarde.
Tenho o seguinte método para cadastrar Ordens de serviço:
public void add(Os o) {
Connection con = ConnectionBank.getConnetion();
PreparedStatement pstmOs = null;
try
{
pstmOs = con.prepareStatement("INSERT INTO os (FkTipo, FkSetor, FkPrioridade, FkSituacao, FkSolicitante, FkLogin, DiaHora, Problema, Solucao, Excluido) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?);");
pstmOs.setInt(1, o.getFkTipo());
pstmOs.setInt(2, o.getFkSetor());
pstmOs.setInt(3, o.getFkPrioridade());
pstmOs.setInt(4, o.getFkSitucao());
pstmOs.setInt(5, o.getFkSolicitante());
pstmOs.setInt(6, o.getFkLogin());
pstmOs.setDate(7, Date.valueOf(o.getDia()));
pstmOs.setString(8, o.getProblema());
pstmOs.setString(9, o.getSolucao());
pstmOs.setString(10, o.getExcluido());
pstmOs.execute();
JOptionPane.showMessageDialog(null, "A Ordem de serviço foi lançada com sucesso.", "AVISO", JOptionPane.INFORMATION_MESSAGE);
}
catch (SQLException | HeadlessException ErroSql)
{
JOptionPane.showMessageDialog(null, "ERRO AO CADASTRAR. \n"+ErroSql, "ERRO", JOptionPane.ERROR_MESSAGE);
}
finally
{
ConnectionBank.closeConnection(con, pstmOs);
}
Este método funciona normalmente, porém gostaria de utilizar a função Now() para gravar com a data e a hora do servidor, a dúvida é como inserir a função dentro do meu insert para que eu consiga fazer a gravação?
pstmOs = con.prepareStatement("INSERT INTO os (FkTipo, FkSetor, FkPrioridade, FkSituacao, FkSolicitante, FkLogin, DiaHora, Problema, Solucao, Excluido) VALUES (?, ?, ?, ?, ?, ?, Now(), ?, ?, ?);");
Tentei dessa forma e não consegui, ele alega número errado de parâmetros, e também não sei como utilizar o preparedStatment: pstmOs.setDate(7, Date.valueOf(o.getDia()));
, seria necessário a criação de uma trigger?