| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 646 人关注过本帖
标题:[转载]发JSP分页通用包,不用编写任何类即可进行JSP取数据库数据和分页
取消只看楼主 加入收藏
hotit
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2006-3-29
收藏
 问题点数:0 回复次数:0 
[转载]发JSP分页通用包,不用编写任何类即可进行JSP取数据库数据和分页
要下载文件包请到www.jzy123.com上注册登陆后,到http://www.jzy123.com/js/jiaocheng/java.jsp处下载试用

文件主要包含在jzy123文件包中,包中提供两个关于数据库连接设置的类,你可以根据需要任先其一
假设你的数据库为db1,用户名为:user1,密码为:123
其中jzy123.Sql_exec 设置如下
找到url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=yourdatabase";
改为
url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db1";
找到
con=DriverManager.getConnection(url,"sa","password");
改为
con=DriverManager.getConnection(url,"user1","123");
如果要使用数据源的方法,主要把
url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db1";
改为
url="jdbc:odbc:db1";

Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
改为
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
即可。
其中jzy123.Sql_con 用了TOMCAT连接池的方法,相关连接池的配置请参考其它文章
完成后请在web.xml中加上

<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/smsgroup</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>

设置完成后就可以进行数据库查询等操作
本包内配置默认使用Sql_exec类,若要使用用Sql_con的话可以修改ModelBean或ModelBean1(用于servlet)文件
方法如
1.找到Sql_exec sql=new Sql_exec();改为 Sql_con sql=new Sql_con();
找到
sql.setStr(sqlStr);
sql.setCon();
sql.setStatement();
Statement stm=sql.getStatement();
改为
sql.SqlSource();
Statement stm=sql.getStatement();
即可
本人提供分别基于JAVABEAN和SERVLET的操作类实例
其中基于JAVABEAN的实例请使用jzy123.Base类


假设你的查询的表名为student,表中包含如下字段


字段名 数据类型
sid int
name varchar(50)
password varchar(20)
score float
info text

如果你想获取student中的sid,name,score三个字段的内容你可以把getRS()设置为


<%@ page language="java" import="java.sql.*" import="java.util.*" %>
<%@ page contentType="text/html;charset=gb2312" %>
<jsp:useBean id="base" scope="page" class="welcome.Base" />
<%
String fieldName[]={"sid","name","score"};
sqlStr="select* from student ";
int tag=1;//为1时按字段名取结果
base.setPage("1");//设置为取第一页内容
base.setPageSize(6);//设置要每页取6条数据
base.setTag(tag);
base.setFieldName(fieldName);//设置所要取的字段
base.setSqlStr(sqlStr);//设置查询语句
List result=base.getResult();//获取结果
HashMap pageList=modelBean.getPageList(); //获取页面信息,包括当前页,下页,下页,总页,总记录数目

%>




你也可设置成取那一列的形式进行操作,getRS()设置为
<%@ page language="java" import="java.sql.*" import="java.util.*" %>
<%@ page contentType="text/html;charset=gb2312" %>
<jsp:useBean id="base" scope="page" class="welcome.Base" />
<%
int fieldId[]={1,2,4};
sqlStr="select* from student ";
int tag=2;//为2时按所在列的位置取数据
base.setPage("1");//设置为取第一页内容
base.setPageSize(6);//设置要每页取6条数据
base.setTag(tag);
base.setSqlStr(sqlStr);//设置查询语句
base.setFieldId(fieldId);//设置所要取的列
List result=base.getResult();//获取结果
HashMap pageList=modelBean.getPageList(); //获取页面信息,包括当前页,下页,下页,总页,总记录数目



作者: 218.19.141.* 2006-3-29 01:23   回复此发言

--------------------------------------------------------------------------------

2 发JSP分页通用包,以后进行查询数据库操作和分页不用再编写任何类

%>



将同样可以取到sid,name,score三个字段的内容。

如果你想取出所有字段的内容,则可改为

<%@ page language="java" import="java.sql.*" import="java.util.*" %>
<%@ page contentType="text/html;charset=gb2312" %>
<jsp:useBean id="base" scope="page" class="welcome.Base" />
<%
sqlStr="select* from student ";
int tag=1;//为1取所有内容
base.setPage("1");//设置为取第一页内容
base.setPageSize(6);//设置要每页取6条数据
base.setTag(tag);
base.setSqlStr(sqlStr);//设置查询语句
base.setFieldId(fieldId);//设置所要取的列
List result=base.getResult();//获取结果
HashMap pageList=modelBean.getPageList(); //获取页面信息,包括当前页,下页,下页,总页,总记录数目

%>



可以看出,你所要做的工作好少,只需设置要取的内容,即可以完成数据库查询工作,而要获取前一页,当前页,后一页,总页数,总记录等页面信息可以通过getPageList()获得
最后你就可以JSP页面中获得得要得到的数据了

下面提供一个JSP页面操作的范例

<%@ page language="java" import="java.sql.*" import="java.util.*" %>
<%@ page contentType="text/html;charset=gb2312" %>
<jsp:useBean id="base" scope="page" class="welcome.Base" />
<%
sqlStr="select* from student ";
int tag=1;//为1取所有内容
base.setPage("1");//设置为取第一页内容
base.setPageSize(6);//设置要每页取6条数据
base.setTag(tag);
base.setSqlStr(sqlStr);//设置查询语句
base.setFieldId(fieldId);//设置所要取的列
List result=base.getResult();//获取结果
HashMap pageList=modelBean.getPageList(); //获取页面信息,包括当前页,下页,下页,总页,总记录数目

//下面打印数据
for(int i=0;i<rs.size();i++){
HashMap h=(HashMap)rs.get(i);
out.print("<br>"+"sid="+h.get("sid"));
out.print("<br>"+"name="+h.get("name"));
out.print("<br>"+"score"+h.get("score"));
打印页面信息
out.print("<br>当前页="+pageList.get("curPage"));
out.print("<br>上一页="+pageList.get("frontPage"));
out.print("<br>下一页="+pageList.get("nextPage"));
out.print("<br>总页数="+pageList.get("pageCount"));
out.print("<br>总记录="+pageList.get("rowCount"));
}
%>






至于分页操作本人提供一个样式
<%@ page contentType="text/html; charset=gb2312"%>
<%
String to="../peijian/yuanliao1.jsp?typeId="+typeId+"&action="+action+"¶1="+para1+"¶2="+para2+"&ye=";
%>
<style type="text/css">
<!--
body {
margin-top: 0px;
}
-->
</style>
<table width="100%" height="30">
<tr><td>
<form name="form1" method="post" action="">
<table width="100%">
<tr>
<td align="right" valign="middle"><a href="www.jzy123.com?page=1">首页</a> <%
if(Integer.parseInt(pageList.get("frontPage").toString())>0)
{
%>
<span class="style14"><a href="www.jzy123.com?page=<%=pageList.get("frontPage")%>">上页</a>
<%
}
else
{
%>
</span><span class="STYLE14">上页</span>
<%
}
if(Integer.parseInt(pageList.get("nextPage").toString())<=Integer.parseInt(pageList.get("pageCount").toString()))
{
%>
<span class="style14"><a href="www.jzy123.com?page=<%=pageList.get("nextPage")%>>下页</a>
<%
}
else

{
%>
</span><span class="STYLE15">下页</span>
<%
}
%>
<a href="www.jzy123.com?page=<%=pageList.get("pageCount")%>">尾页</a> 页次:<%=(Integer.parseInt(pageList.get("curPage").toString()))%>/<%=pageList.get("pageCount").toString()%>页 共有<%=pageList.get("rowCount").toString()%>种商品 转到第


<label>

<input name="ye" type="text" id="ye" size="3">

<input type="submit" name="Submit" value="go" onClick="return goto(this.form)">
</label></td>
</tr>
<tr><td></td></tr>
</table>
</form>
</td></tr></table>
<script language="javascript">
function goto(form)
{

if(isNaN(form.ye.value))
{
alert("输入只能是数字");
form.ye.focus();
form.ye.value="1"
return false
}
else
{

if(form.ye.value>0&&form.ye.value<<%=(Integer.parseInt(pageList.get("pageCount").toString())+1)%>)
{
form.action="<%=to%>"+form.ye.value;
return true;
}
}
return false;
}
</script>


要查看效果的话请直接复制这段代码在网页编辑软件下查看

上面的方法是使用ModelBean1来实现的与之相关还有一个 jzy123.bean.ModelBean类,此类功能相ModelBean1一样,不同的是
此类用于servelt下,详细方法请参考jzy123.servlet.LiuYan实例,
找到protected void processRequest(HttpServletRequest request,HttpServletResponse response)
throws ServletException, java.io.IOException 方法
操作步骤跟上面大概相似,大家可以参照实例来完成,完成后在跳转页面运用
<%
List rs=(list)request.getAttribute("rsall");
HashMap pageList=(HashMap)request.getAttribute("pageList");

%>
即可以获取所得数据
欢迎大家加入QQ群 :4713248
搜索更多相关主题的帖子: 数据库 JSP java 编写 
2006-03-29 01:58
快速回复:[转载]发JSP分页通用包,不用编写任何类即可进行JSP取数据库数据和分页 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.039878 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved