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

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

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

    linansengling

     

    java 實現分頁技術(Structs+Hibernate+MySQL)

    ??? 通過Structs+Hibernate+MySQL數據數來實現分頁技術的應用.?
    ???
    ?? 源程序下載
    ?? 至于Hibernate, Structs, MySQL的具體用法我就不說了,你可以看源程序來查看詳細內容.我們來看看分頁應用的相關內容.
    ?架構上和Spring JPetStore沒多少區別, 只是沒用Spring框架所以Structs中的UserdisplayAction中必須new出各個對象并完成它們之間的關聯, 這就是Spring IOC可自動完成的功能. 它也是三層:表現層(Structs),?業務層(POJO), 數據層(Hibernate訪問MySQL).?同樣業務層通過DAO接口(UserDAO)來訪問數據庫, 訪問數據庫的通過Hibernate(在UserDAOImpl中實現).?這一次分頁要在業務層中來實現, 業務層同樣向表現層提供一個Facada(門面,? UserManager接口), 來訪問業務. 在UserManagerImpl中通過調用UserDAO來訪問數據, 調用POJO來實現分頁功能. 看以下關鍵代碼.

    先看POJO的分布類吧:

    Page.java

    package org.flyware.util.page;

    public class Page {?
    ????
    ??? private boolean hasPrePage;?
    ????
    ???? private boolean hasNextPage;?
    ????????
    ??? private int everyPage;?
    ????
    ??? private int totalPage;?
    ????????
    ??? private int currentPage;?
    ????
    ????? private int beginIndex;?
    ????
    ????
    ????? public Page(){
    ???????
    ??? }?
    ????
    ??????? public Page(int everyPage){
    ??????? this.everyPage = everyPage;
    ??? }
    ???
    ??? /** The whole constructor */
    ??? public Page(boolean hasPrePage, boolean hasNextPage,?
    ??????????????????? int everyPage, int totalPage,
    ??????????????????? int currentPage, int beginIndex) {
    ??????? this.hasPrePage = hasPrePage;
    ??????? this.hasNextPage = hasNextPage;
    ??????? this.everyPage = everyPage;
    ??????? this.totalPage = totalPage;
    ??????? this.currentPage = currentPage;
    ??????? this.beginIndex = beginIndex;
    ??? }

    ??????......????
    ??????
    ?? public int getTotalPage() {
    ??????? return totalPage;
    ??? }?
    ???
    ??? public void setTotalPage(int totalPage) {
    ??????? this.totalPage = totalPage;
    ??? }
    ???
    }

    PageUtil.java(用來構造Page實例 相當于page工廠)

    package org.flyware.util.page;

    public class PageUtil {
    ???
    ??? private static final Log logger = LogFactory.getLog(PageUtil.class);?
    ????
    ?????? public static Page createPage(Page page, int totalRecords){?

    ??????? return createPage(page.getEveryPage(), page.getCurrentPage(), totalRecords);
    ??? }?
    ????
    ??????? public static Page createPage(int everyPage, int currentPage, int totalRecords){
    ??????? everyPage = getEveryPage(everyPage);?

    ??????? currentPage = getCurrentPage(currentPage);?

    ??????? int beginIndex = getBeginIndex(everyPage, currentPage);?

    ??????? int totalPage = getTotalPage(everyPage, totalRecords);?

    ??????? boolean hasNextPage = hasNextPage(currentPage, totalPage);?

    ??????? boolean hasPrePage = hasPrePage(currentPage);
    ???????
    ??????? return new Page(hasPrePage, hasNextPage,?
    ??????????????????????????????? everyPage, totalPage,
    ??????????????????????????????? currentPage, beginIndex);
    ??? }
    ???
    ??? private static int getEveryPage(int everyPage){
    ??????? return everyPage == 0 ? 10 : everyPage;
    ??? }
    ???
    ??? private static int getCurrentPage(int currentPage){
    ??????? return currentPage == 0 ? 1 : currentPage;
    ??? }
    ???
    ??? private static int getBeginIndex(int everyPage, int currentPage){
    ??????? return (currentPage - 1) * everyPage;
    ??? }
    ???????
    ??? private static int getTotalPage(int everyPage, int totalRecords){
    ??????? int totalPage = 0;
    ???????????????
    ??????? if(totalRecords % everyPage == 0)
    ??????????? totalPage = totalRecords / everyPage;
    ??????? else
    ??????????? totalPage = totalRecords / everyPage + 1 ;
    ???????????????
    ??????? return totalPage;
    ??? }
    ???
    ??? private static boolean hasPrePage(int currentPage){
    ??????? return currentPage == 1 ? false : true;
    ??? }
    ???
    ??? private static boolean hasNextPage(int currentPage, int totalPage){
    ??????? return currentPage == totalPage || totalPage == 0 ? false : true;
    ??? }
    ???

    }



    業務實現類 UserManaerImpl.java

    package com.linan.service.impl;

    public class UserManagerImpl implements UserManager {
    ???
    ??? private UserDAO userDAO;

    ?????? public void setUserDAO(UserDAO userDAO) {?

    ??????? this.userDAO = userDAO;?

    ??? }?
    ??
    //提供業務方法

    public Result listUser(Page page) throws HibernateException,

    ObjectNotFoundException {?

    ??????? int totalRecords = userDAO.getUserCount();?

    ??????? if(totalRecords == 0)?

    ??????????? throw new ObjectNotFoundException("userNotExist", null);
    ?
    ??????? page = PageUtil.createPage(page, totalRecords);?

    ??????? List users = userDAO.getUserByPage(page);???
    ???
    ??????? return new Result(page, users);?

    ??? }

    }


    DAO數據訪問實現類 UserDAOImpl.java

    package com.linan.dao.impl;

    public class UserDAOImpl? implements UserDAO {

    ??...........

    ????? public List getUserByPage(Page page) throws HibernateException {?

    ??????? String querySentence = "FROM user in class com.linan.bo.Userlist";?

    ??????? Query query = getSession().createQuery(querySentence);?

    ???????? //實現分頁功能

    ??????? query.setFirstResult(page.getBeginIndex())?

    ??????????????? .setMaxResults(page.getEveryPage());?

    ??????? return query.list();?

    ??? }

    }

    表現層Structs中的Action UserdisplayAction.java

    package com.linan.struts.action;

    public class UserdisplayAction extends Action {

    ? ?public ActionForward execute(
    ??ActionMapping mapping,
    ??ActionForm form,
    ??HttpServletRequest request,
    ??HttpServletResponse response) {

    ???Page page=new Page();?

    ??????? UserManagerImpl userManager=new UserManagerImpl();

    ??????? UserDAOImpl userDAO=new UserDAOImpl();

    ??????? userManager.setUserDAO(userDAO);

    ?????? //掉用業務代理完成分頁

    ??????? Result result=userManager.listUser(page);

    ??????? List list=result.getContent();

    ??????? HttpSession session=request.getSession();

    ??????? session.setAttribute("list",list);

    ??return mapping.findForward("displayGo");

    ?}

    }


    ?

    posted on 2006-09-21 00:42 fds 閱讀(5145) 評論(30)  編輯  收藏 所屬分類: JAVA

    評論

    # re: java 實現分頁技術(Structs+Hibernate+MySQL) 2006-09-21 00:50 HotJava

    我想要個源文件,hotjava_zj@sina.com,謝謝  回復  更多評論   

    # re: java 實現分頁技術(Structs+Hibernate+MySQL) 2006-09-21 08:33 Anubis

    1 抵制新浪信箱.
    2 給我發一份 fiolvivi@gmail.com  回復  更多評論   

    # re: java 實現分頁技術(Structs+Hibernate+MySQL) 2006-09-21 09:00 cctv

    能提供一份嗎?li98311@tom.com  回復  更多評論   

    # re: java 實現分頁技術(Structs+Hibernate+MySQL) 2006-09-21 09:02 kisscheng

    謝謝:kisscheng@citiz.net  回復  更多評論   

    # re: java 實現分頁技術(Structs+Hibernate+MySQL) 2006-09-21 09:24 新新人類

    多謝wuxj888@yahoo.com.cn  回復  更多評論   

    # re: java 實現分頁技術(Structs+Hibernate+MySQL) 2006-09-21 10:56 onejavaer

    能給我一份源文件嗎 我想研究一下用法 謝謝 `~~ EMAIL:onejavaer@126.com  回復  更多評論   

    # re: java 實現分頁技術(Structs+Hibernate+MySQL) 2006-09-21 11:56 為了生活而繼續

    謝謝 lianjiping@163.com  回復  更多評論   

    # re: java 實現分頁技術(Structs+Hibernate+MySQL) 2006-09-22 11:05 koujian

    嘿嘿,那天給我發的petstore很不錯,這個也給我發個吧
    kjb1520032000@163.com  回復  更多評論   

    # re: java 實現分頁技術(Structs+Hibernate+MySQL) 2006-09-23 10:35 fjufirefox

    能給我一份源文件嗎 謝謝 `~~
    EMAIL: fjufirefox@gmail.com  回復  更多評論   

    # re: java 實現分頁技術(Structs+Hibernate+MySQL) 2006-09-23 16:54 nbsp

    也能給我一份源文件嗎?謝謝!
    nbspnbsp@126.com  回復  更多評論   

    # re: java 實現分頁技術(Structs+Hibernate+MySQL) 2006-09-25 08:31 nk912114

    nk912114 (at) 163.com
    thanks   回復  更多評論   

    # re: java 實現分頁技術(Structs+Hibernate+MySQL) 2006-10-03 02:21 thl

    流口水了
    ad-hunter@hotmail.com
    萬分感謝!
    國慶快樂!
    中秋快樂!  回復  更多評論   

    # re: java 實現分頁技術(Structs+Hibernate+MySQL) 2006-11-19 09:39 yh

    yanghuw@163.com
    謝謝
      回復  更多評論   

    # re: java 實現分頁技術(Structs+Hibernate+MySQL) 2006-11-22 17:59 我也想要個源碼!

    ssd1021@hotmail.com謝謝  回復  更多評論   

    # re: java 實現分頁技術(Structs+Hibernate+MySQL) 2006-12-10 20:13 yan[匿名]

    bbxyhaihua@163.com謝謝!  回復  更多評論   

    # re: java 實現分頁技術(Structs+Hibernate+MySQL) 2006-12-14 22:41 趙蘭科

    也能給我一份源文件嗎?謝謝!
    lankeabc@yeah.net  回復  更多評論   

    # re: java 實現分頁技術(Structs+Hibernate+MySQL) 2006-12-28 09:09 jrww

    因自己是初學者,我急需這塊的技術,能麻煩你發一份源碼給jrww@sina.com  回復  更多評論   

    # re: java 實現分頁技術(Structs+Hibernate+MySQL) 2006-12-29 10:29 俞曉堅

    可以給我一份源文件嗎想學習下
    yuxia2217@163.com
    謝謝!  回復  更多評論   

    # re: java 實現分頁技術(Structs+Hibernate+MySQL) 2007-01-05 14:35 cmy

    可以給我一份源文件吧!
    謝謝!!!
    email:
    chimeiyu126com@126.com  回復  更多評論   

    # re: java 實現分頁技術(Structs+Hibernate+MySQL)[未登錄] 2007-02-09 13:15 yy

    我也要一份
    syand2004@163.com  回復  更多評論   

    # re: java 實現分頁技術(Structs+Hibernate+MySQL) 2007-04-23 10:54 xiao

    給我一分源代碼好不!xiaolou19850905@163.com  回復  更多評論   

    # re: java 實現分頁技術(Structs+Hibernate+MySQL) 2007-07-31 14:28 sruic

    能給我一份源碼嗎?sruic@126.com
    謝謝  回復  更多評論   

    # re: java 實現分頁技術(Structs+Hibernate+MySQL) 2007-08-18 21:18 AlfredGao

    可以給我一份源文件吧!
    謝謝!!!
    email:
    someday666@163.com   回復  更多評論   

    # re: java 實現分頁技術(Structs+Hibernate+MySQL) 2007-10-01 10:48 學生

    國慶節快樂!
    我對您寫的程序非常看興趣,
    能否發給我原程序嗎?謝謝!
    struts.student@gmail.com  回復  更多評論   

    # re: java 實現分頁技術(Structs+Hibernate+MySQL) 2007-11-05 18:48 chaiqi

    也麻煩您給我發一個!非常感謝!

    chaiqi1@hotmail.com  回復  更多評論   

    # re: java 實現分頁技術(Structs+Hibernate+MySQL) 2008-04-21 15:42 webman

    請問Result是哪個包里面的東西,還是自己寫的?  回復  更多評論   

    # re: java 實現分頁技術(Structs+Hibernate+MySQL) 2008-06-24 09:43 ;

    ;  回復  更多評論   

    # re: java 實現分頁技術(Structs+Hibernate+MySQL)[未登錄] 2008-07-18 12:24 robin

    其實spring中有這個分頁類,蠻好用的,  回復  更多評論   

    # re: java 實現分頁技術(Structs+Hibernate+MySQL) 2009-05-24 12:12 qianmz

    qmzpanda@163.com
    我也想看看源代碼...謝謝您  回復  更多評論   

    # re: java 實現分頁技術(Structs+Hibernate+MySQL) 2009-08-12 17:06 sunnywolf

    沒撒技術含量。  回復  更多評論   

    導航

    統計

    常用鏈接

    留言簿(3)

    隨筆分類(12)

    隨筆檔案(13)

    文章分類(1)

    文章檔案(2)

    相冊

    收藏夾(3)

    my like

    最新隨筆

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲色偷偷偷鲁综合| 亚洲一级片免费看| 亚洲人成免费网站| 1000部啪啪毛片免费看| 亚洲图片一区二区| 精品无码免费专区毛片| 亚洲视频在线观看免费视频| 久久久高清日本道免费观看| 国产亚洲精品自在久久| 国产激情免费视频在线观看 | 最近中文字幕免费2019| 777亚洲精品乱码久久久久久| 182tv免费观看在线视频| 亚洲天堂福利视频| 最新中文字幕电影免费观看| 日韩国产欧美亚洲v片| 亚洲成A∨人片天堂网无码| aaa毛片免费观看| 久久精品国产亚洲77777| 毛片免费视频播放| 窝窝影视午夜看片免费| 国产亚洲精品线观看动态图| 久久大香伊焦在人线免费| 亚洲欧洲精品视频在线观看| 啦啦啦在线免费视频| 男女交性无遮挡免费视频| 国产亚洲A∨片在线观看| 国产精品爱啪在线线免费观看| 亚洲一区二区三区在线观看网站| 可以免费观看一级毛片黄a| 任你躁在线精品免费| 亚洲av日韩av无码av| 亚洲黄片毛片在线观看| 四虎影视在线影院在线观看免费视频 | 久久国产福利免费| 亚洲人成7777影视在线观看| 国产亚洲福利一区二区免费看| 91免费在线视频| 亚洲自偷自偷在线成人网站传媒| 亚洲一本大道无码av天堂| A在线观看免费网站大全|