Good afternoon, I'm doing an application that does a dvs loan request, I was able to make the application to insert the reservation, now I need to make the owner of the dvd confirm the rent and copy the data in the table of rented dvd but I have no idea if this is right, because it only comes out error when I try to copy the data to rented table.
Here I requested the loan and it is working:
public class RequestPrinceData {
private static String horaPedido;
private static String dataPedido;
public void solicitarEmprestimo(ClubeDoDvdPedidoEmprestimo e) throws SQLException{
StringBuilder sql = new StringBuilder();
sql.append("INSERT INTO solicitacaoemprestimo ");
sql.append("(dataemprestimo,horaemprestimo, codigo_socio_solicitou_emprestimo, dvd_codigo, socio_codigo) ");
sql.append("VALUES (?, ?, ?, ?, ?) ");
Connection conexao = FabricaDeConexao.conectar();
PreparedStatement comando = conexao.prepareStatement(sql.toString());
comando.setString(1, e.solicitarDataPedido());
comando.setString(2, e.solicitarHoraPedido());
comando.setLong(3, e.getCodigoSocioSolicitouEmprestimo());
comando.setLong(4, e.getDvd().getCodigo());
comando.setLong(5, e.getSocio().getCodigo());
comando.executeUpdate();
}
public List<ClubeDoDvdPedidoEmprestimo> selicionarPedidosDeEmprestimo(ClubeDoDvdPedidoEmprestimo clube) throws SQLException{
StringBuilder sql = new StringBuilder();
sql.append("SELECT codemprestimo, dataemprestimo, horaemprestimo, codigo_socio_solicitou_emprestimo, dvd_codigo, socio_codigo ");
sql.append("FROM solicitacaoemprestimo ");
sql.append("WHERE socio_codigo = ? ");
sql.append("ORDER BY dataemprestimo ASC, horaemprestimo ASC ");
Connection conexao = FabricaDeConexao.conectar();
PreparedStatement comando = conexao.prepareStatement(sql.toString());
comando.setLong(1, clube.getSocio().getCodigo());
ResultSet resultado = comando.executeQuery();
List<ClubeDoDvdPedidoEmprestimo> retorno = new ArrayList<>();
while(resultado.next()){
final ClubeDoDvdPedidoEmprestimo cdpe = new ClubeDoDvdPedidoEmprestimo();
cdpe.setCodEmprestimo((resultado.getLong("codemprestimo")));
cdpe.setDataPedido(resultado.getString("dataemprestimo"));
cdpe.setHoraPedido(resultado.getString("horaemprestimo"));
cdpe.setCodigoSocioSolicitouEmprestimo(resultado.getLong("codigo_socio_solicitou_emprestimo"));
Socio s = new Socio();
s.setCodigo(resultado.getLong("socio_codigo"));
cdpe.setSocio(s);
Dvd d = new Dvd();
d.setCodigo(resultado.getLong("dvd_codigo"));
cdpe.setDvd(d);
retorno.add(cdpe);
}
return retorno;
}
Here I tried to make the loan request table data go to the rented dvds table:
public class DvdHiddenDAO {
public void dvdAlugados(Alugados e) throws SQLException{
StringBuilder sql = new StringBuilder();
sql.append("INSERT INTO alugados (dataemprestimo, horaemprestimo, solicitacaoemprestimo_codemprestimo, solicitacaoemprestimo_dvd_codigo, solicitacaoemprestimo_socio_codigo) ");
sql.append("SELECT dataemprestimo, horaemprestimo, codemprestimo ,dvd_codigo, socio_codigo ");
sql.append("FROM solicitacaoemprestimo ");
sql.append(" WHERE codemprestimo = ? ");
Connection conexao = FabricaDeConexao.conectar();
PreparedStatement comando = conexao.prepareStatement(sql.toString());
comando.setLong(1, e.getClubeDoDvdEmprestimo().getCodEmprestimo());
comando.setString(2, e.getDataEmprestimo());
comando.setString(3, e.getHoraEprestimo());
comando.setLong(4, e.getClubeDoDvdEmprestimo().getCodEmprestimo());
comando.setLong(5, e.getClubeDoDvdEmprestimo().getDvd().getCodigo());
comando.setLong(6, e.getClubeDoDvdEmprestimo().getSocio().getCodigo());
comando.executeUpdate();
}