JAVA网站制作之一个分页类
如果你学习的是市场营销,是销售,也许参加大课堂的学习会更合适,因为你的工作能力中有个基础就是搭建自己的人脉,分页笼统类
==========================================================
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也很舒服啊。我就不明白“稍微差一些”那一些是从哪里差来的。 Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。 学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。 是一种使用者不需花费很多时间学习的语言 象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。 其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。 是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能 另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。 J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。 J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。 自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。 是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言 是一种使用者不需花费很多时间学习的语言 Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。 Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。 应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展 一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。 如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。 Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
页:
[1]