- 浏览: 471615 次
- 性别:
- 来自: 南京
文章分类
最新评论
-
fkbld:
楼主给个密码,谢谢了,baild_zr@126.com
ExtJs direct 推送 DEMO -
文思涌动:
你的方法太好用了,感激不尽。
MyEclipse 安装ADT -
zys08:
...
jquery uploadify -
攻城使:
我现在也在学习使用Uploadfiy,摸索中
jquery uploadify -
gksrxn:
liuyulovely 写道怎么解压还要密码,楼主解压的密码是 ...
ExtJs direct 推送 DEMO
hibernate 支持分页,由于组合查询在DAO层分页,业务逻辑比较混乱
这里用SQ在业务层分页处理
1.Action 层
获取Web端的参数,这里用webwork机制获取
2.业务层 处理SQL
3.DAOImpl
4.分页源码 【直接用这个类就可以了,我的分页是继承了重写,里面有其他需求,一般用这个就哦了】
这里用SQ在业务层分页处理
1.Action 层
获取Web端的参数,这里用webwork机制获取
/** * 查询问题列表 */ public String queryQuestion() { System.out.println("********************查询问题列表 queryQuestion.action************************"); // String expertName = ServletActionContext.getRequest().getParameter("expertName"); // String sortId = ServletActionContext.getRequest().getParameter("questionSort"); String expertName = expertQuery.getQuestionExpert(); String sortId = expertQuery.getQuestionSort(); System.out.println("expertName = "+expertName +" --- sortId = "+sortId); List<ExpertQuestion> queryQuestionCount = new ArrayList<ExpertQuestion>(); List<ExpertQuestion> queryQuestion = new ArrayList<ExpertQuestion>(); try { queryQuestionCount = mavinService.queryQuestionCount(expertName,sortId); /** * ***** 分页 ***** */ PageMavin page = new PageMavin(); page.setCurPageTwo(pagesTwo); page.setPageSizeTwo(pageSizeTwo); page.setTotalRowTwo(queryQuestionCount.size()); Mypagebar=page.getToolsMenuTwo(); queryQuestion = mavinService.queryQuestionPage(expertName,sortId,page.getCurPageTwo(),page.getPageSizeTwo()); ServletActionContext.getRequest().setAttribute("QUERY_QUESTION",queryQuestion); } catch (BOException e) { e.printStackTrace(); } return SUCCESS; }
2.业务层 处理SQL
/** * 组合查询 问题列表 * 组建 SQL */ public List<ExpertQuestion> queryQuestionCount(String expertName,String sortId)throws BOException; public List<ExpertQuestion> queryQuestionPage(String expertName,String sortId,int currPage,int pageSize)throws BOException;
public List<ExpertQuestion> queryQuestionPage(String expertName,String sortId,int currPage,int pageSize)throws BOException { System.out.println("currPage = "+currPage+" - pageSize = "+pageSize); List<ExpertQuestion> queryQuestion = new ArrayList<ExpertQuestion>(); String SQL = ""; //所有专家 AND 所有分类 if(expertName.equals("allExpert") && sortId.equals("allSort")) { System.out.println("所有专家 AND 所有分类"); SQL = " select q.question_id,q.question_title,q.question_infor,q.question_sort,q.question_expert,q.question_state,q.question_author,q.question_time,q.question_access,q.question_breviary,q.question_delete from expert_question q where q.question_delete='1' and question_Access='0'"; } // 根据专家名 AND 分类ID 查询 if(!expertName.equals("allExpert") && !sortId.equals("allSort")) { System.out.println("根据专家名 AND 分类ID 查询"); SQL = " select q.question_id,q.question_title,q.question_infor,q.question_sort,q.question_expert,q.question_state,q.question_author,q.question_time,q.question_access,q.question_breviary,q.question_delete from expert_question q where q.question_delete='1' and question_Access='0' and q.question_expert = '"+expertName+"'"+" and q.question_sort ='"+sortId+"'"; } // 所有专家 + 具体分类 if(expertName.equals("allExpert") && !sortId.equals("allSort")) { System.out.println("所有专家 + 具体分类"); SQL = " select q.question_id,q.question_title,q.question_infor,q.question_sort,q.question_expert,q.question_state,q.question_author,q.question_time,q.question_access,q.question_breviary,q.question_delete from expert_question q where q.question_delete='1' and question_Access='0' and q.question_sort ='"+sortId+"'"; } // 具体专家 + 所有分类 if(!expertName.equals("allExpert") && sortId.equals("allSort")) { System.out.println("具体专家 + 所有分类"); SQL = " select q.question_id,q.question_title,q.question_infor,q.question_sort,q.question_expert,q.question_state,q.question_author,q.question_time,q.question_access,q.question_breviary,q.question_delete from expert_question q where q.question_delete='1' and question_Access='0' and q.question_expert = '"+expertName+"'"; } SQL = "select * from ( select t1.*,rownum rownum_ from("+SQL+" ) t1 where rownum <= "+ currPage * pageSize +" ) where rownum_ > "+ ((currPage-1) * pageSize); System.out.println("SQL PAGE = "+ SQL ); try { queryQuestion = mavinDAO.queryQuestion(SQL); } catch (DAOException e) { e.printStackTrace(); } return queryQuestion; }
3.DAOImpl
/** * 获取问题列表 expertName 、sortId * 组合查询 SQL * 可参照 查询专家列表 41行 * public List<TbExpert> searchMavinCount ... 写 * 但是 解耦性 不强、业务层和DAOImpl 换乱、可维护性降低 * 用 SQL 业务层 控制参数 DAOImpl不变 解耦性增强 */ @SuppressWarnings("unchecked") public List<ExpertQuestion> queryQuestion(final String SQL) throws DAOException { List<ExpertQuestion> queryQuestion = this.getMyHibernateTemplate().executeFind(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException, SQLException { Query q = session.createSQLQuery(SQL).addEntity(ExpertQuestion.class); return q.list(); } }); System.out.println("-query question-"+queryQuestion.size()); return queryQuestion; }
4.分页源码 【直接用这个类就可以了,我的分页是继承了重写,里面有其他需求,一般用这个就哦了】
package com.linkage.util.page; /** * @{#} PageUtilsTabOne.java Create on 2009-9-30 上午09:27:09 * * Copyright (c) 2009 by linkaged. * * @author wenge * * @version 1.0 * * @Desc: 前台选项卡一分页BEAN */ public class PageUtilsTabTwo { protected int curPageTwo = 0; //当前页 protected int pageSizeTwo = 0; //每页多少行 protected int endSizeTwo ; //用于not in(select top endSize id)不在多少行内 protected int totalRowTwo ; //共多少行 protected int totalPageTwo ; //共多少页 public int getStartTwo(){ if(curPageTwo>1) return (curPageTwo-1)*pageSizeTwo; else return 0; } public int getEndTwo(){ return pageSizeTwo; } public int getCurPageTwo() { return curPageTwo; } public void setCurPageTwo(int curPageTwo) { int tempTwo = pageSizeTwo * (curPageTwo-1); this.setEndSizeTwo(tempTwo); this.curPageTwo = curPageTwo; } public int getEndSizeTwo() { return endSizeTwo; } public void setEndSizeTwo(int endSizeTwo) { this.endSizeTwo = endSizeTwo; } public int getPageSizeTwo() { return pageSizeTwo; } public void setPageSizeTwo(int pageSizeTwo) { this.pageSizeTwo = pageSizeTwo; } public int getTotalRowTwo() { return totalRowTwo; } public void setTotalRowTwo(int totalRowTwo) { totalPageTwo = totalRowTwo/pageSizeTwo; if(totalRowTwo%pageSizeTwo > 0) totalPageTwo = totalPageTwo + 1; this.totalRowTwo = totalRowTwo; } public int getTotalPageTwo(){ return this.totalPageTwo; } public String getToolsMenuTwo() { StringBuffer strTwo = new StringBuffer(""); int nextTwo, prevTwo; prevTwo = curPageTwo - 1; nextTwo = curPageTwo + 1; if (curPageTwo > 1) { strTwo.append( "<a href=\"#\" onclick=\"document.forms(0).pagesTwo.value=1;document.forms(0).submit();\">首页</a> "); } else { strTwo.append("<a href=\"#\">首页</a> "); } if (curPageTwo > 1) { strTwo.append( "<a href=\"#\" onclick='document.forms(0).pagesTwo.value=" +prevTwo + ";document.forms(0).submit();'>上页</a> "); } else { strTwo.append("<a href=\"#\">上页</a> "); } if (curPageTwo < totalPageTwo) { strTwo.append( "<a href=\"#\" onclick='document.forms(0).pagesTwo.value=" +nextTwo + ";document.forms(0).submit();'>下页</a> "); } else { strTwo.append("<a href=\"#\" >下页</a> "); } if (totalPageTwo > 1 && curPageTwo != totalPageTwo) { strTwo.append( "<a href=\"#\" onclick='document.forms(0).pagesTwo.value=" +totalPageTwo + ";document.forms(0).submit();'>尾页</a> "); } else { strTwo.append("<a href=\"#\" >尾页</a> "); } strTwo.append(" 共 <font color=\"red\" >" + totalRowTwo + "</font> 条记录/当前第"+curPageTwo+"页"); strTwo.append(" 转到"); strTwo.append("<SELECT style='width: 50px;' size=1 name=PagelistTwo onchange='this.form.pagesTwo.value=this.value;this.form.submit();'>"); for (int i = 1; i < totalPageTwo + 1; i++) { if (i == curPageTwo) { strTwo.append("<OPTION value=" + i + " selected>" + i + "</OPTION>"); } else { strTwo.append("<OPTION value=" + i + ">" + i + "</OPTION>"); } } strTwo.append("</SELECT>页"); strTwo.append("<INPUT type=hidden value=" + curPageTwo + " name=\"pagesTwo\" > "); strTwo.append("<INPUT type=hidden value=" + pageSizeTwo+" name=\"pageSizeTwo\"> "); System.out.println(strTwo); return strTwo.toString(); } }
<!-- 分页 --> <table> <tr> <td></td> <td height="25"> </td> <td height="25"> <div align="center" class="text_title03"> <ww:property value="Mypagebar" escape="false"/> </div></td> <td height="25"> </td> </tr> </table>
发表评论
-
java 生成 验证码
2012-09-04 17:05 4654<script type="text/ja ... -
读取 properties
2012-08-21 17:19 1219import java.io.File; import ja ... -
eXtremeComponents 分页列表
2012-08-03 09:25 1714<%@taglib uri="/WEB-INF ... -
Map套map 前台jstl遍历
2012-08-02 10:56 2274public String queryAdminPoped ... -
MD5加密
2012-07-19 17:08 1115public class MD5psw { /** * M ... -
CSVReader
2012-07-03 08:49 9007package com.zte.nva.dap.hadoop. ... -
java调用linux shell命令
2012-06-20 19:06 2025/** * 调用shell命令,创建android ... -
反编译插件jad安装 MyEclipse8.5
2012-04-23 10:45 1362准备工作 下载jad.exe文件:http://www ... -
强化不可实例化能力
2011-09-28 15:54 862有时候我们会编一些只含有静态域和静态方法的类,用私有构造函数强 ... -
持续集成环境配置
2011-09-27 10:58 844见附件 见附件 -
Serializable demo
2011-09-23 14:45 983/** * serialization 序列化 * s ... -
junit4 @test DEMO
2011-09-15 16:15 5254package com.isoftstone.ecc.juni ... -
重写@Override toString
2011-07-20 14:30 1647/** * UserBean.java * com ... -
request.getParameterNames()和request.getParameterValues()
2011-06-09 16:38 4475request.getParameterNames()和r ... -
java基础の解析 map
2011-05-19 14:06 1503package com.csdn; import jav ... -
java Swing 的excel 操作 -导入导出 (原型)
2011-04-14 17:01 4642package com.excel; import ... -
java 发送EMAIL邮件
2011-04-14 15:56 1024import java.util.Date; import ... -
java和JSTL遍历map
2011-04-14 15:50 1310public Map<Integer,List<M ... -
MyEclipseGen
2011-03-12 11:26 1008myeclipse的激活码自动生成 import java.i ... -
TimerTask
2011-03-01 21:42 1170import java.util.Timer; import ...
相关推荐
【EXT+Spring+Hibernate+WebWork项目】是一个综合性的企业级应用开发实例,它整合了四个关键的技术框架:EXT、Spring、Hibernate和WebWork。这些技术的组合为构建高效、可扩展且用户友好的Web应用程序提供了强大的...
### WebWork 2.2.7 + Spring + Hibernate 分页查询技术详解 #### 一、项目背景及架构 本项目采用WebWork 2.2.7框架结合Spring和Hibernate技术实现了一个基本的用户数据分页查询功能。主要目标是根据用户输入的...
在IT行业中,Spring和...总的来说,Spring和Hibernate的组合为Java Web开发提供了一种强大的解决方案。通过合理配置和编程,我们可以轻松实现分页功能,无论是在Sturts还是Webwork,或者其他Web框架中,都能灵活应用。
通过Hibernate,开发者可以将Java对象直接保存到关系数据库,无需编写大量的SQL语句。它支持实体类、映射文件(XML或注解)、会话工厂和查询语言(HQL和Criteria API),提供了事务管理和缓存机制,大大提高了开发...
SSH是Java Web开发中的一个流行框架组合,由Spring、Struts2和Hibernate三个开源项目组成。这个框架集合提供了全面的企业级应用解决方案,包括模型-视图-控制器(MVC)架构、持久层管理和业务逻辑处理。 Spring是...
- **分页查询**: - 设置起始索引:`setFirstResult(index)`。 - 设置每页记录数:`setMaxResults(count)`。 #### 七、基本映射标签和属性 - **实体类映射文件**:`.hbm.xml`文件中的常用标签。 - `<class>`:...
【图书管理系统J2EE设计报告书】主要涵盖了使用J2EE技术进行图书管理系统的开发,涉及到的主要技术有Struts、Spring和Hibernate这三个流行的Java企业级框架。这些框架的整合使用,能够有效地提升软件开发的效率和...
【基于SSH新闻发布系统-毕业设计】是一个以Spring、Struts2和Hibernate(SSH)三大开源框架为基础构建的简单新闻发布系统。SSH框架组合是Java Web开发中的常见选择,它提供了模型-视图-控制器(MVC)的设计模式,...
Oracle分页:Oracle提供了ROWNUM和ROWID进行分页查询。 Oracle的基本数据类型:包括 NUMBER、DATE、VARCHAR2等。 id、rowid、rownum的区别:id通常是主键字段的名称,rowid是Oracle数据库中每行数据的唯一标识,...
- **项目一**:通用物流项目,使用Struts+Spring+Hibernate框架,负责公司信息维护模块的设计、编码和测试。 - **项目二**:员工信息录入系统,使用Struts框架,实现了信息录入、修改、验证等功能,进行了分页等开源...
HQL(Hibernate Query Language)是一种面向对象的查询语言,主要用于Hibernate框架中执行数据库操作。在J-HI平台中,所有自定义的HQL语句都应当写在`XXXDAOHibernate`类中。 - **步骤一**: 在`XXXDAOHibernate`类...
框架如Struts、WebWork、JSF、Tapestry和Spring可以帮助开发者构建MVC架构的应用。ORMapping框架如Hibernate简化了对象与数据库之间的映射。 学习Java SE,需要掌握基础的面向对象编程,熟悉类集框架,理解IO操作,...
它整合了WebWork的优秀特性,提供了丰富的拦截器、结果类型和插件体系,使得开发者可以更方便地处理请求、响应以及业务逻辑。 2. **模型(Model)**:在BBS系统中,模型通常包括业务实体类(如用户、帖子、论坛等)...