public static Recurso seleccionarPorCodigo(String id) throws SQLException {

        ResultSet rs = null;
        Libro libro = null;
        Revista revista = null;
        CdDvd cddvd = null;
        PreparedStatement pstmt;


        String queryLibro = "SELECT tipo, r.id, isbn, genero, titulo, fecha, num_ejemplar, estado_conserva, disponibilidad, autor, editorial "
                + "FROM recurso r, recurso_libro l WHERE r.id = ? AND r.id = l.id";
        String queryRevista = "SELECT tipo, r.id, isbn, genero, titulo, fecha, num_ejemplar, estado_conserva, disponibilidad, editorial, fasciculo "
                + "FROM recurso r, recurso_revista l WHERE r.id = ? AND r.id = l.id";
        String queryCdDvd = "SELECT tipo, r.id, isbn, genero, titulo, fecha, num_ejemplar, estado_conserva, disponibilidad, autor "
                + "FROM recurso r, recurso_optico l WHERE r.id = ? AND r.id = l.id";

        switch (id.charAt(6)) {
            case 'L':
                pstmt = ConnectionManager.connection.prepareStatement(queryLibro);
                break;
            case 'R':
                pstmt = ConnectionManager.connection.prepareStatement(queryRevista);
                break;
            case 'C':
                pstmt = ConnectionManager.connection.prepareStatement(queryCdDvd);
                break;
            default:
                return null;
        }

        pstmt.setString(1, id);
        rs = pstmt.executeQuery();

        System.out.println("hola");

        if (rs.next()) {
            System.out.println(rs.getString("tipo"));

            String fecha;
            Calendar fechaaux = Calendar.getInstance();
            fechaaux.setTime(rs.getDate("fecha"));
            fecha = fechaaux.get(Calendar.DAY_OF_MONTH) + "/" + fechaaux.get(Calendar.MONTH) + "/" + fechaaux.get(Calendar.YEAR);

            if (rs.getString("tipo").equals("Libro")) {
                libro = new Libro(rs.getString("id"), rs.getString("isbn"), rs.getString("titulo"), rs.getString("genero"), fecha, rs.getString("estado_conserva"),
                        rs.getInt("num_ejemplar"), (rs.getInt("disponibilidad") == 1), rs.getString("autor"), rs.getString("editorial"));
                return libro;
            } else if (rs.getString(1).equals("Revista")) {
                revista = new Revista(rs.getString("id"), rs.getString("isbn"), rs.getString("titulo"), rs.getString("genero"), fecha, rs.getString("estado_conserva"),
                        rs.getInt("num_ejemplar"), (rs.getInt("disponibilidad") == 1), rs.getInt("fasciculo"), rs.getString("editorial"));
                return revista;
            } else if (rs.getString(1).equals("Optico")) {
                cddvd = new CdDvd(rs.getString("id"), rs.getString("isbn"), rs.getString("titulo"), rs.getString("genero"), fecha, rs.getString("estado_conserva"),
                        rs.getInt("num_ejemplar"), (rs.getInt("disponibilidad") == 1), rs.getString("autor"));
                return cddvd;
            }
        }

        return null;
    }