Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    59

    jsp paginazione

    anche io devo risolvere il problema dei numerosi record.Ho 10000 record e non riesco a metterne 10 per pagina. Ho provato a vedere i vostri consigli,ma niente. Devo stampare per ogni record circa 5-6 campi,quindi non so se la query è giusta
    il codice che ho scritto è:

    <%@ page import="java.sql.*" %>
    <%@ page import="java.io.*" %>
    <%@ page import="java.util.regex.*" %>
    <%! Connection con = null; %>
    <%! Statement st = null; %>
    <%! ResultSet rs = null; %>

    <HTML>
    <HEAD>
    <TITLE>RICERCA DATI CED SINP</TITLE>
    </HEAD>
    <BODY>
    <%
    try {
    Class.forName("com.mysql.jdbc.Driver").newInstance ();
    con = DriverManager.getConnection("jdbc:mysql://localhost/ArchivioDeposito", "stage", "stage");
    st = con.createStatement();
    String strSQL = "SELECT contatore, Fascicolo.Descrizione, classifica.ID, classifica.Descrizione, MotivazioniDiScarto.ID, MotivazioniDiScarto.Descrizione, annoprotocollo, tipofascicolo.tfasc_id ";
    strSQL = strSQL + "FROM (classifica INNER JOIN (tipofascicolo INNER JOIN Fascicolo ON tipofascicolo.tfasc_id=Fascicolo.tfasc_id) ON classifica.ID=Fascicolo.IDClassifica) ";
    strSQL = strSQL + "INNER JOIN MotivazioniDiScarto ON Fascicolo.IDMotivazioniDiScarto = MotivazioniDiScarto.ID ";
    strSQL = strSQL + "WHERE 1=1 ";
    int CodTipoFasc=0;
    if (request.getParameter("slcFascicolo")=="") {
    CodTipoFasc=-1;
    }
    else {
    CodTipoFasc = Integer.parseInt(request.getParameter("slcFascicol o").trim());
    }
    if (CodTipoFasc!=-1) {
    strSQL = strSQL + "AND tipofascicolo.tfasc_id = " + CodTipoFasc + " ";
    }
    int numcontatore=0;
    if (request.getParameter("txtContatore")=="") {
    numcontatore=-1;
    }
    else {
    numcontatore = Integer.parseInt(request.getParameter("txtContator e").trim());
    }
    if (numcontatore!=-1) {
    strSQL = strSQL + "AND contatore = " + numcontatore + " ";
    }
    String DescFascicolo=request.getParameter("txtDescrizione ").trim();
    if (request.getParameter("txtDescrizione").trim()=="" ) {
    DescFascicolo="";
    }
    else {
    String[] ParQuery = Pattern.compile(" ").split(DescFascicolo);
    for (int i=0; i<ParQuery.length; i++) {
    strSQL = strSQL + "AND Fascicolo.Descrizione LIKE '%" + ParQuery[i] + "%' ";
    }
    }
    int CodClassDesc=0;
    if (request.getParameter("slcClassDesc")=="") {
    CodClassDesc=-1;
    }
    else {
    CodClassDesc = Integer.parseInt(request.getParameter("slcClassDes c").trim());
    }
    if (CodClassDesc!=-1) {
    strSQL = strSQL + "AND classifica.ID = " + CodClassDesc + " ";
    }
    /*int CodMotScarto=0;
    if (request.getParameter("slcMotScartoDesc")=="") {
    CodMotScarto=-1;
    }
    else {
    CodMotScarto = Integer.parseInt(request.getParameter("slcMotScart oDesc").trim());
    }
    if (CodMotScarto!=-1) {
    strSQL = strSQL + "AND MotivazioniDiScarto.ID = " + CodMotScarto + " ";
    }*/
    int AnnoProtoDa=0;
    if (request.getParameter("txtannoprotocolloda")!="") {
    AnnoProtoDa = Integer.parseInt(request.getParameter("txtannoprot ocolloda").trim());
    strSQL = strSQL + "AND annoprotocollo >= " + AnnoProtoDa + " ";
    }
    int AnnoProtoA=0;
    if (request.getParameter("txtannoprotocolloa")!="") {
    AnnoProtoA = Integer.parseInt(request.getParameter("txtannoprot ocolloa").trim());
    strSQL = strSQL + "AND annoprotocollo <= " + AnnoProtoA + " ";
    ResultSet rs = st.executeQuery (strSQL);
    }
    rs = st.executeQuery(strSQL);
    out.println("<FORM Name='frmRisultatiRicerca'>");
    out.println("<P Align='center'>");
    out.println("<TABLE Border='0'>");
    out.println("<TH BgColor='NAVY'><FONT Face='BOOK ANTIQUA' Size='2' Color='WHITE'>" + "contatore" + "</FONT></TH>");
    out.println("<TH BgColor='NAVY'><FONT Face='BOOK ANTIQUA' Size='2' Color='WHITE'>" + "Fascicolo.Descrizione" + "</FONT></TH>");
    out.println("<TH BgColor='NAVY'><FONT Face='BOOK ANTIQUA' Size='2' Color='WHITE'>" + "classifica.Descrizione" + "</FONT></TH>");
    out.println("<TH BgColor='NAVY'><FONT Face='BOOK ANTIQUA' Size='2' Color='WHITE'>" + "MotivazioneDiScarto.Descrizione" + "</FONT></TH>");
    out.println("<TH BgColor='NAVY'><FONT Face='BOOK ANTIQUA' Size='2' Color='WHITE'>" + "annoprotocollo" + "</FONT></TH>");
    out.println("<TBODY BgColor='WHITESMOKE'>");
    while (rs.next())
    {
    out.println("<TR>");
    out.println("<TD><FONT Face='BOOK ANTIQUA' Size='2' Color='NAVY'>" + rs.getString("contatore") + "</FONT></TD>");
    out.println("<TD><FONT Face='BOOK ANTIQUA' Size='2' Color='NAVY'>" + rs.getString("Fascicolo.Descrizione") + "</FONT></TD>");
    out.println("<TD><FONT Face='BOOK ANTIQUA' Size='2' Color='NAVY'>" + rs.getString("classifica.Descrizione") + "</FONT></TD>");
    out.println("<TD><FONT Face='BOOK ANTIQUA' Size='2' Color='NAVY'>" + rs.getString("MotivazioniDiScarto.Descrizione") + "</FONT></TD>");
    out.println("<TD><FONT Face='BOOK ANTIQUA' Size='2' Color='NAVY'>" + rs.getInt("annoprotocollo") + "</FONT></TD>");
    out.println("</TR>");
    }
    out.println("</TBODY>");
    out.println("</TABLE>");
    out.println("</FORM>");

    rs.close();
    st.close();
    con.close();
    }
    catch (SQLException sqlEX) {
    out.println("Errore: " + sqlEX);
    }
    %>

    </BODY>
    </HTML>

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    59
    per favore,non ce nessuno che può aiutarmi?

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    59
    qualcuno conosce jsp?

  4. #4
    Puoi utilizzare i costrutti LIMIT e OFFSET di mysql.

    LIMIT ti consente di specificare il numero di record per pagina;
    OFFSET ti consente di specificare da quale record partire con l'estrazione dei risultati.

    La query di esempio che seque ti consente di visualizzare i risultati da 11 a 20.

    SELECT column FROM table
    LIMIT 10 OFFSET 10

    ciao

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    59
    io vorrei avere 10 record per pagina ma anche i link che mi permettono di andare a vedere i risultati del 1-10 o dall'11-20 e cosi via. non so proprio come fare

  6. #6
    Utente di HTML.it L'avatar di plafo
    Registrato dal
    Sep 2000
    Messaggi
    84
    Originariamente inviato da Hvar
    io vorrei avere 10 record per pagina ma anche i link che mi permettono di andare a vedere i risultati del 1-10 o dall'11-20 e cosi via. non so proprio come fare



    se intendi i link per andare ai 10 risultati successivi la soluzione che ti ha proposto pozzad può andare bene altrimenti se vuoi fare una sola query e recuperare subito tutti i risultati l'unica soluzione che mi viene in mente è mettere in sessione il resultset ed effettuare tu il calcolo
    non può piovere per sempre

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    59
    mi potresti scrivere qualche riga di codice perchè non so proprio nulla di variabili di sessione.Magari con un esempio o qualcosa di simile.Non è molto tempo che uso jsp

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    59
    aiutatemi con le variabili di sessione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.