仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 856|回复: 18
打印 上一主题 下一主题

[学习教程] JAVA网站制作之一个分页类

[复制链接]
兰色精灵 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:37:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
如果你学习的是市场营销,是销售,也许参加大课堂的学习会更合适,因为你的工作能力中有个基础就是搭建自己的人脉,分页
笼统类
==========================================================
importjava.util.ArrayList;
importjava.sql.Connection;
importjava.sql.ResultSet;

importcom.xxx.util.DBTool;

/**
*<pre>
*分页类.默许页面巨细为20
*这是一个笼统类。子类必要重构办法selResult()
*</pre>
*/
publicabstractclassPageList{

/**以下成员变量在子类中可视*/
protectedfinalstaticintMIN_PAGE_SIZE=20;//默许页面巨细
protectedintpageSize;//页面巨细
protectedintcurPage;//以后页页码
protectedintprePage;//上一页页码
protectedintnxtPage;//下一页页码
protectedinttotalPage;//总页码数
protectedinttotalItem;//总条目数
protectedStringsql;//选择前提
protectedArrayListresult;//了局集
protectedintfrom;//入手下手的游标地位

/**公有变量*/
privatebooleanhasFindResult=false;//标记是不是已查找了却果
//包管loadResult只举行一次


/**
*机关器.默许页面巨细为20
*@paramsql
*@parampageNo
*/
publicPageList(Stringsql,intpageNo){
init(sql,MIN_PAGE_SIZE,pageNo);
}

/**
*机关器
*@paramsql前提SQL
*@parampageSize页面巨细
*@parampageNo页码
*/
publicPageList(Stringsql,intpageSize,intpageNo){
init(sql,pageSize,pageNo);
}

protectedvoidinit(Stringsql,intpageSize,intpageNo){
this.sql=sql;
this.pageSize=(pageSize<=0?MIN_PAGE_SIZE:pageSize);
this.curPage=(pageNo<=0?1:pageNo);
}

/**
*猎取页面巨细
*/
publicintgetPageSize(){
if(!this.hasFindResult){
this.loadResult();
}
returnthis.pageSize;
}

/**
*猎取以后页码
*/
publicintgetCurPage(){
if(!this.hasFindResult){
this.loadResult();
}
returnthis.curPage;
}

/**
*猎取前一页的页码
*/
publicintgetPrePage(){
if(!this.hasFindResult){
this.loadResult();
}
returnthis.prePage;
}

/**
*猎取后一页的页码
*/
publicintgetNxtPage(){
if(!this.hasFindResult){
this.loadResult();
}
returnthis.nxtPage;
}

/**
*猎取页码总数
*/
publicintgetTotalPage(){
if(!this.hasFindResult){
this.loadResult();
}
returnthis.totalPage;
}

/**
*猎取总条数
*/
publicintgetTotalItem(){
if(!this.hasFindResult){
this.loadResult();
}
returnthis.totalItem;
}

/**
*判别是不是有页面
*@return假如总页面数为0,那末前往false;不然true
*/
publicbooleanhasPages(){
if(!this.hasFindResult){
this.loadResult();
}
return(this.totalPage!=0);
}

/**
*猎取指定页面的了局集
*
*@return指定页面了局集;假如没有则前往空集
*/
publicArrayListgetResult(){
if(!this.hasFindResult){
this.loadResult();
}
returnthis.result;
}

/**
*选出了局
*/
protectedabstractArrayListselResult();


/**
*盘算页码信息而且失掉了局集.
*是calculatePageNoInfo和selResult的组合
*/
privatevoidloadResult(){
//1.盘算页码相干信息
this.calculatePageNoInfo();
//2.选出了局
this.result=this.selResult();
if(this.result==null){
this.result=newArrayList();
}
//3.包管loadResult()只举行一次
hasFindResult=true;
}

/**
*盘算页码相干信息calculate
*/
privatevoidcalculatePageNoInfo(){
//1.猎取总条目数目
this.totalItem=totalItem();
//2.盘算页码信息
//2.1总页数
if(this.totalItem==0){
this.totalPage=0;
}else{
this.totalPage=(this.totalItem-1)/this.pageSize+1;
}
//2.2以后页,前页,后页
if(this.totalPage==0){
this.curPage=0;
this.prePage=0;
this.nxtPage=0;
this.from=0;
}else{
this.curPage=(this.curPage>this.totalPage?this.totalPage:this.curPage);
this.prePage=((this.curPage-1<1)?1:(this.curPage-1));
this.nxtPage=((this.curPage==this.totalPage)?this.curPage:(this.curPage+1));
this.from=(this.curPage-1)*this.pageSize;
}
}

/**
*猎取总条目数目
*/
privateinttotalItem(){
//accessdb
intcount=0;
DBTooldb=newDBTool();
ResultSetrs=null;
db.connDB();
rs=db.advQuery(this.sql);
try{
while(rs.next()){
count++;
}
}catch(Exceptione){
}
db.closeDB();
returncount;
}

}
//~


利用
===========================================================
假定我有一个News实体对象,如今要机关一个News相干的分页类

以下:

importjava.sql.Connection;
importjava.sql.ResultSet;
importjava.sql.SQLException;

importcom.xxx.util.DBTool;
importcom.bokesoft.util.PageList;
importcom.bokesoft.util.DateUtil;

/**
*旧事分页类
*/
publicclassNewsPageListextendsPageList{

publicNewsPageList(Stringsql,intpageNo){
super(sql,pageNo);
}

publicNewsPageList(Stringsql,intpageSize,intpageNo){
super(sql,pageSize,pageNo);
}

protectedjava.util.ArrayListselResult(){
java.util.ArrayListresult=newjava.util.ArrayList(this.pageSize);

if(this.totalItem==0){
returnresult;
}

Newsnews=null;
DBTooldb=newDBTool();
ResultSetrs=null;
db.connDB();
rs=db.advQuery(this.sql);

if(rs!=null){
try{//一旦有非常被捕获就停止轮回
intcount=1;
if(this.curPage>1){
rs.absolute(this.from);//跳转到入手下手行
}
while(rs.next()&&count<=pageSize){
//轮回机关news对象,然后到场列表中
news=newNews();
news.setId(rs.getString("code")==null?"":rs.getString("code"));

......

result.add(news);
count++;
}
}catch(Exceptione){
}finally{
try{if(rs!=null)rs.close();}catch(SQLExceptionsqle){}
}
}
db.closeDB();
returnresult;
}
}
//~




客户程序的利用(jsp中)
========================================================
<%
//取得跳转的页码和显现条目数目和选择前提
//...
//intiPageNo
//intiPageSize
//StringsqlCond

//这里是详细利用分页类的部分,十分复杂
NewsPageListnpl=newNewsPageList(sqlCond,iPageSize,iPageNo);
java.util.ArrayListresultList=npl.getResult();
inttotalPage=npl.getTotalPage();

Newsnews=null;
intsize=resultList.size();
for(inti=0;i<size;i++){
news=(News)resultList.get(i);
//.....
}

%>



IDE是好。java中的IDE更是百花齐放,你用jbuilder能说jbuilder赶不上vs吗?用eclipse,netbeans也很舒服啊。我就不明白“稍微差一些”那一些是从哪里差来的。
只想知道 该用户已被删除
沙发
发表于 2015-1-21 11:30:46 | 只看该作者
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
老尸 该用户已被删除
板凳
发表于 2015-1-22 22:30:34 | 只看该作者
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
山那边是海 该用户已被删除
地板
发表于 2015-1-22 22:50:50 | 只看该作者
是一种使用者不需花费很多时间学习的语言
因胸联盟 该用户已被删除
5#
发表于 2015-1-25 13:59:33 | 只看该作者
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
小妖女 该用户已被删除
6#
发表于 2015-1-25 14:42:37 | 只看该作者
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
分手快乐 该用户已被删除
7#
发表于 2015-2-2 22:31:19 | 只看该作者
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
柔情似水 该用户已被删除
8#
发表于 2015-2-8 16:03:39 | 只看该作者
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
活着的死人 该用户已被删除
9#
发表于 2015-2-26 11:38:19 | 只看该作者
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
第二个灵魂 该用户已被删除
10#
发表于 2015-3-1 03:07:15 | 只看该作者
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
金色的骷髅 该用户已被删除
11#
发表于 2015-3-10 12:24:45 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
变相怪杰 该用户已被删除
12#
发表于 2015-3-14 16:55:09 | 只看该作者
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
13#
发表于 2015-3-20 11:04:54 | 只看该作者
是一种使用者不需花费很多时间学习的语言
冷月葬花魂 该用户已被删除
14#
发表于 2015-3-29 01:11:52 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
若相依 该用户已被删除
15#
发表于 2015-4-12 18:34:15 | 只看该作者
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
海妖 该用户已被删除
16#
发表于 2015-4-18 03:40:39 | 只看该作者
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
爱飞 该用户已被删除
17#
发表于 2015-4-23 09:52:41 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
透明 该用户已被删除
18#
发表于 2015-4-24 01:12:22 | 只看该作者
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
灵魂腐蚀 该用户已被删除
19#
发表于 2015-4-25 21:50:31 | 只看该作者
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 17:07

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表