<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    duansky'weblog

    統計

    留言簿(3)

    友情鏈接

    閱讀排行榜

    評論排行榜

    偷窺struts+hibernate分頁(第一種方法)

    根據原文有點改動。原文忘記在那里看到了。看到提個醒


    新建表


    DROP ? DATABASE ? IF ? EXISTS ?`wjcms`;
    CREATE ? DATABASE ?`wjcms`? /* !40100?DEFAULT?CHARACTER?SET?gb2312? */ ;
    USE ?`wjcms`;

    #
    #?
    Table ?structure? for ? table ?t_article
    #

    CREATE ? TABLE ?`t_article`?(
    ??`a_id`?
    int ( 11 )? NOT ? NULL ?auto_increment,
    ??`a_sort`?
    int ( 11 )? NOT ? NULL ? default ? ' 0 ' ,
    ??`a_title`?
    varchar ( 50 )? default ? NULL ,
    ??`a_body`?
    text ,
    ??`a_author`?
    varchar ( 11 )? default ? '' ,
    ??`a_hit`?
    int ( 11 )? NOT ? NULL ? default ? ' 0 ' ,
    ??`c_id`?
    int ( 11 )? default ? ' 0 ' ,
    ??`a_date`?
    varchar ( 20 )? default ? NULL ,
    ??
    PRIMARY ? KEY ??(`a_id`)
    )?


    實體

    public class articleVO {
    ??? private int a_id;
    ??? private int a_sort;
    ??? private int a_hit;
    ??? private int c_id;
    ??? private String a_title;
    ??? private String a_body;
    ??? private String a_author;
    ??? private String a_date;
    ??? // getter setter


    新建page.java

    package ?page.dal;

    public ? class ?page?{
    ????
    private ? int ?totalRows;? // 總行數
    ???? private ? int ?pageSize? = ? 10 ;? // 每頁顯示的行數
    ???? private ? int ?currentPage;? // 當前頁號
    ???? private ? int ?totalPages;? // 總頁數
    ???? private ? int ?startRow;? // 當前頁在數據庫中的起始行

    ????
    public ?page( int ?_totalRows)?{
    ?????totalRows?
    = ?_totalRows;
    ?????totalPages
    = totalRows / pageSize;
    ?????
    int ?mod = totalRows % pageSize;
    ?????
    if (mod > 0 ){
    ???????totalPages
    ++ ;
    ?????}
    ?????currentPage?
    = ? 1 ;
    ?????startRow?
    = ? 0 ;
    ???}

    ???
    public ? int ?getStartRow()?{
    ?????
    return ?startRow;
    ???}

    ???
    public ? int ?getTotalPages()?{
    ?????
    return ?totalPages;
    ???}

    ???
    public ? int ?getCurrentPage()?{
    ?????
    return ?currentPage;
    ???}

    ???
    public ? int ?getPageSize()?{
    ?????
    return ?pageSize;
    ???}

    ???
    public ? void ?setTotalRows( int ?totalRows)?{
    ?????
    this .totalRows? = ?totalRows;
    ???}

    ???
    public ? void ?setStartRow( int ?startRow)?{
    ?????
    this .startRow? = ?startRow;
    ???}

    ???
    public ? void ?setTotalPages( int ?totalPages)?{
    ?????
    this .totalPages? = ?totalPages;
    ???}

    ???
    public ? void ?setCurrentPage( int ?currentPage)?{
    ?????
    this .currentPage? = ?currentPage;
    ???}

    ???
    public ? void ?setPageSize( int ?pageSize)?{
    ?????
    this .pageSize? = ?pageSize;
    ???}

    ???
    public ? int ?getTotalRows()?{
    ?????
    return ?totalRows;
    ???}

    ???
    public ? void ?first()?{
    ?????currentPage?
    = ? 1 ;
    ?????startRow?
    = ? 0 ;
    ???}

    ???
    public ? void ?previous()?{
    ?????
    if ?(currentPage? == ? 1 )?{
    ???????
    return ;
    ?????}
    ?????currentPage
    -- ;
    ?????startRow?
    = ?(currentPage? - ? 1 )? * ?pageSize;
    ???}

    ???
    public ? void ?next()?{
    ?????
    if ?(currentPage? < ?totalPages)?{
    ???????currentPage
    ++ ;
    ?????}
    ?????startRow?
    = ?(currentPage? - ? 1 )? * ?pageSize;
    ???}

    ???
    public ? void ?last()?{
    ?????currentPage?
    = ?totalPages;
    ?????startRow?
    = ?(currentPage? - ? 1 )? * ?pageSize;
    ???}

    ???
    public ? void ?refresh( int ?_currentPage)?{
    ?????currentPage?
    = ?_currentPage;
    ?????
    if ?(currentPage? > ?totalPages)?{
    ???????last();
    ?????}
    ???}

    ?}




    新建 pageHelp.java

    package ?page.dal;
    import ?javax.servlet.http. * ;

    public ? class ?PagerHelp?{
    ????
    public ? static ?page?getPager(HttpServletRequest?httpServletRequest, int ?totalRows)?{

    ?????
    // 定義pager對象,用于傳到頁面
    ?????page?pager? = ? new ?page(totalRows);

    ?????
    // 從Request對象中獲取當前頁號
    ?????String?currentPage? = ?httpServletRequest.getParameter( " currentPage " );

    ?????
    // 如果當前頁號為空,表示為首次查詢該頁
    ?????
    // 如果不為空,則刷新page對象,輸入當前頁號等信息
    ????? if ?(currentPage? != ? null )?{
    ???????pager.refresh(Integer.parseInt(currentPage));
    ?????}

    ?????
    // 獲取當前執行的方法,首頁,前一頁,后一頁,尾頁。
    ?????String?pagerMethod? = ?httpServletRequest.getParameter( " pageMethod " );

    ?????
    if ?(pagerMethod? != ? null )?{
    ???????
    if ?(pagerMethod.equals( " first " ))?{
    ?????????pager.first();
    ???????}?
    else ? if ?(pagerMethod.equals( " previous " ))?{
    ?????????pager.previous();
    ???????}?
    else ? if ?(pagerMethod.equals( " next " ))?{
    ?????????pager.next();
    ???????}?
    else ? if ?(pagerMethod.equals( " last " ))?{
    ?????????pager.last();
    ???????}
    ?????}
    ?????
    return ?pager;
    ???}

    }




    新建 util.java

    package ?page.dal;
    import ?net.sf.hibernate.Query;
    import ?net.sf.hibernate.cfg.Configuration;
    import ?java.util.List;
    import ?net.sf.hibernate.HibernateException;
    import ?net.sf.hibernate.SessionFactory;
    import ?net.sf.hibernate.Session;
    import ?java.util. * ;
    public ? class ?util?{
    ????
    public ?util()?{
    ????}
    ?????
    private ?Session?ss = null ;
    ????
    public ?Session?getSession()
    ??{
    ??????
    // ??Configuration?config=null;
    ??????SessionFactory?sessionFactory;
    ??????
    try ?{
    ??????????Configuration?cfg?
    = ? new ?Configuration();
    ??????????sessionFactory?
    = ?cfg.addClass(articleVO. class ).
    ???????????????????????????buildSessionFactory();
    ??????????
    // ?SessionFactory?sessionFactory=config.buildSessionFactory();
    ??????????ss? = ?sessionFactory.openSession();
    ??????????
    return ?ss;
    ??????}?
    catch ?(HibernateException?ex)?{
    ??????????System.out.print(
    " getsession出錯了。。 " ? + ?ex.getMessage());
    ??????????
    return ? null ;
    ??????}
    ??}

    ??
    public ? int ?getCount()
    ??{
    ??????String?sql
    = " select?count(*)?from?articleVO " ?;
    ??????
    this .getSession();

    ????
    try ?{
    ?????
    // ?ss.createQuery("select?count(a)as?cont?from?articleVO?a?");
    ?????? int ?rows = ?((Integer)?ss.iterate(sql).next()).intValue();
    ??????ss.flush();
    ??????
    return ?rows;

    ????}?
    catch ?(HibernateException?ex)?{
    ????????System.out.print(
    " ex:: " + ex.getMessage());
    ????????
    return ? 0 ;
    ????}


    ??}

    ??
    public ?Collection??getList( int ?pagesize, int ?currow)? throws ?HibernateException?{
    ??????Collection?vehicleList?
    = ? null ;
    ??????
    this .getSession();
    ??????Query?q
    = ss.createQuery( " from?articleVO " );
    ??????q.setFirstResult(currow);
    ??????q.setMaxResults(pagesize);
    ??????vehicleList
    = q.list();
    ??????ss.flush();
    ??????
    return ?vehicleList;
    ??}

    }



    新建 struts? PageAction.java


    package ?page.dal;

    import ?org.apache.struts.action.ActionMapping;
    import ?org.apache.struts.action.ActionForm;
    import ?javax.servlet.http.HttpServletRequest;
    import ?javax.servlet.http.HttpServletResponse;
    import ?org.apache.struts.action.ActionForward;
    import ?org.apache.struts.action.Action;
    import ?page.dal. * ;
    import ?java.util. * ;
    import ?net.sf.hibernate. * ;

    public ? class ?pageAction? extends ?Action?{
    ????
    public ?ActionForward?execute(ActionMapping?mapping,?ActionForm?form,
    ?????????????????????????????????HttpServletRequest?request,
    ?????????????????????????????????HttpServletResponse?response)?{
    ????????Collection?clInfos?
    = ? null ; // 用于輸出到頁面的記錄集合
    ???????? int ?totalRows; // 記錄總行數
    ????????util?dal = new ?util();
    ????????totalRows
    = dal.getCount();
    ????????System.out.print(
    " 總行數== " + totalRows);
    ????????page?p
    = PagerHelp.getPager(request,totalRows);
    ????????
    try ?{
    ????????????clInfos?
    = ?dal.getList(p.getPageSize(),?p.getStartRow());

    ????????}?
    catch ?(HibernateException?ex)?{
    ????????????System.out.print(
    " action里的錯誤= " + ex.getMessage());
    ????????}
    ????????request.setAttribute(
    " page " ,p);
    ????????request.setAttribute(
    " list " ,clInfos);
    ????????
    return ?mapping.findForward( " page " );
    ????????
    // pageForm?pageForm?=?(pageForm)?form;
    ??????
    // ??throw?new?java.lang.UnsupportedOperationException(
    ??????????????
    // ??"Method?$execute()?not?yet?implemented.");
    ????}
    }



    前臺頁面

    <% @?taglib?uri = " /WEB-INF/struts-tiles.tld " ?prefix = " tiles " ? %>
    <% @?taglib?uri = " /WEB-INF/struts-nested.tld " ?prefix = " nested " ? %>
    <% @?taglib?uri = " /WEB-INF/struts-logic.tld " ?prefix = " logic " ? %>
    <% @?taglib?uri = " /WEB-INF/struts-bean.tld " ?prefix = " bean " ? %>
    <% @?taglib?uri = " /WEB-INF/struts-html.tld " ?prefix = " html " ? %>
    <% @?page?contentType = " text/html;?charset=GBK " ? %>
    < html:html >
    < head >
    < title >
    page
    </ title >
    </ head >
    < body >
    < table? align ="center" ?border ="2" >
    < tr >
    < th > a_title </ th >
    < th > a_body </ th >
    < th > a_a_date </ th >
    < th > a_author </ th >
    </ tr >

    < logic:iterate? id ="listd" ?name ="list" >
    < tr >
    < td >
    < bean:write? name ="listd" ?property ="a_title" />
    </ td >
    < td >
    < bean:write? name ="listd" ?property ="a_author" />
    </ td >
    < td >
    < bean:write? name ="listd" ?property ="a_date" />
    </ td >
    < td >
    < bean:write? name ="listd" ?property ="a_date" />
    </ td >
    </ tr >
    </ logic:iterate >

    </ table >

    < bean:write? name ="page" ?property ="currentPage" />
    < bean:write? name ="page" ?property ="totalPages" ? />
    < html:link? action ="/pageAction.do?pageMethod=first"
    paramName
    ="page" ?paramProperty ="currentPage" ?paramId ="currentPage" > 首頁 </ html:link >
    ???
    < html:link? action ="/pageAction.do?pageMethod=previous"
    paramName
    ="page" ?paramProperty ="currentPage" ?paramId ="currentPage" > 上一頁 </ html:link >
    ???
    < html:link? action ="/pageAction.do?pageMethod=next"
    paramName
    ="page" ?paramProperty ="currentPage" ?paramId ="currentPage" > 下一頁 </ html:link >

    ???
    < html:link? action ="/pageAction.do?pageMethod=last"
    paramName
    ="page" ?paramProperty ="currentPage" ?paramId ="currentPage" > 尾頁 </ html:link >
    </ body >
    </ html:html >




    啟動瀏覽 pageAction.do? 運行OK。



    ****************************************************************************************


    配置文件


    <? xml?version="1.0"?encoding="UTF-8" ?>

    <! DOCTYPE?hibernate-mapping?PUBLIC
    ????"-//Hibernate/Hibernate?Mapping?DTD?2.0//EN"
    ????"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd"
    >
    < hibernate-mapping >

    ????
    < class? name ="page.dal.articleVO" ?table ="t_article" ? >


    ????
    < id? name ="a_id" ?column ="a_id" ?unsaved-value ="0" ? >
    ??????
    < generator? class ="native" />
    ?
    </ id >
    ?????
    < property? name ="c_id" ????column ="c_id" />
    ?????
    < property? name ="a_title" ?column ="a_title" />
    ?????
    < property? name ="a_sort" ??column ="a_sort" />
    ?????
    < property? name ="a_date" ??column ="a_date" />
    ?????
    < property? name ="a_body" ??column ="a_body" />
    ?????
    < property? name ="a_hit" ???column ="a_hit" />
    ?????
    < property? name ="a_author" ?column ="a_author" />
    ???
    ????
    ??
    </ class >

    </ hibernate-mapping >

    hibernate.dialect?net.sf.hibernate.dialect.MySQLDialect
    hibernate.connection.driver_class?org.gjt.mm.mysql.Driver
    hibernate.connection.url?jdbc:mysql://localhost:
    3306 /wjcms
    hibernate.connection.username?root
    hibernate.connection.password?
    hibernate.connection.pool_size?
    1
    hibernate.proxool.pool_alias?pool1
    hibernate.show_sql?true
    hibernate.max_fetch_depth?
    1
    hibernate.cache.use_query_cache?true


    posted on 2007-03-14 23:44 duansky 閱讀(323) 評論(0)  編輯  收藏 所屬分類: Java

    主站蜘蛛池模板: 亚洲欧洲∨国产一区二区三区| 亚洲成人免费在线观看| 国产午夜免费高清久久影院| 精品国产亚洲一区二区三区 | 亚洲国产午夜电影在线入口| 成在人线AV无码免费| 国产精品无码永久免费888| 99ri精品国产亚洲| 国产yw855.c免费视频| 一级毛片免费不卡在线| 免费精品视频在线| 亚洲国产精品午夜电影| 亚洲区日韩区无码区| 波多野结衣免费在线| 国产永久免费高清在线| 色九月亚洲综合网| 亚洲va成无码人在线观看| 亚洲成AV人片在| 亚洲阿v天堂在线2017免费| 成人免费午夜无码视频| 久久久精品视频免费观看| 亚洲精品无码专区久久| 亚洲高清不卡视频| 国产亚洲无线码一区二区| 亚洲麻豆精品国偷自产在线91| 在线看片无码永久免费视频| 99久久精品免费视频| 9久热这里只有精品免费| 成年大片免费高清在线看黄| 亚洲AV无码一区二区三区久久精品| 亚洲美女精品视频| 久久精品国产亚洲AV麻豆网站 | 国产免费内射又粗又爽密桃视频| 精品视频免费在线| 猫咪免费人成在线网站| 亚洲爆乳少妇无码激情| 深夜福利在线免费观看| 日韩电影免费在线观看网址| 曰韩无码AV片免费播放不卡| 成人免费乱码大片A毛片| 精品国产污污免费网站入口 |