Error copying data from one table to another

0

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

}
    
asked by anonymous 05.06.2015 / 17:56

1 answer

0

Your SQL in the "dvdLookups" method only asks you to provide the loan code (codemprestimo):

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 = ? ");

However you are trying to associate 5 other parameters that are not necessary and should be removed:

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());
    
05.06.2015 / 18:37