JAVA/JSP学习系列之五(JDBC-ODBC翻页例子)

作者:网络 来源:佚名 更新时间:2008-11-13 10:18:56 点击:

一、运行前准备

   建议了一个ms sqlserver7数据库 dns,名称为:test_db

   数据库中有一个表:guestbook字段为:name(varchar),email(varchar),body(text)

   数据库用户为sa 密码空,可以自己修改的。

二、代码

<%@ page contenttype="text/html;charset=gb2312"%>

<%

//变量声明

java.sql.connection sqlcon; //数据库连接对象

java.sql.statement sqlstmt; //sql语句对象

java.sql.resultset sqlrst; //结果集对象

java.lang.string strcon; //数据库连接字符串

java.lang.string strsql; //sql语句

int intpagesize; //一页显示的记录数

int introwcount; //记录总数

int intpagecount; //总页数

int intpage; //待显示页码

java.lang.string strpage;

int i,j,k; //设置一页显示的记录数

intpagesize = 5; //取得待显示页码

strpage = request.getparameter("page");

if(strpage==null){

//表明在querystring中没有page这一个参数,此时显示第一页数据

intpage = 1;

} else{

//将字符串转换成整型

intpage = java.lang.integer.parseint(strpage);

if(intpage<1) intpage = 1; }

//装载jdbc-odbc驱动程序

class.forname("sun.jdbc.odbc.jdbcodbcdriver");

//设置数据库连接字符串

strcon = "jdbc:odbc:test_db";

//连接数据库

sqlcon = java.sql.drivermanager.getconnection(strcon,"sa","");

//创建sql语句对象

sqlstmt = sqlcon.createstatement();

//获取记录总数

strsql = "select count(*) from guestbook";

sqlrst = sqlstmt.executequery(strsql);

//执行sql语句并取得结果集

sqlrst.next(); //记录集刚打开的时候,指针位于第一条记录之前

introwcount = sqlrst.getint(1);

sqlrst.close(); //关闭结果集

//记算总页数

intpagecount = (introwcount+intpagesize-1) / intpagesize;

//调整待显示的页码 if(intpage>intpagecount) intpage = intpagecount;

//设置获取数据sql语句

strsql = "select name,email,body from guestbook";

//执行sql语句并取得结果集

sqlrst = sqlstmt.executequery(strsql);

//将记录指针定位到待显示页的第一条记录上

i = (intpage-1) * intpagesize;

for(j=0;j<i;j++) sqlrst.next(); %>

<html>

<head>

<title>jsp数据库操作例程 - 数据分页显示 - jdbc-odbc</title>

</head>

<body>

<p align=center>jdbc-odbc留言版</p>

<table border="1" cellspacing="0" cellpadding="0" width=600 align=center>

<%

//显示数据

i = 0;

while(i<intpagesize && sqlrst.next()){ %>

<tr>

<td>姓名:<%=sqlrst.getstring(1)%></td>

<td>邮件:<%=sqlrst.getstring(2)%></td>

</tr>

<tr>

<td colspan=2><%=sqlrst.getstring(3)%></td>

</tr>

<% i++; } %>

<tr>

<td colspan=2 align=center>

第<%=intpage%>页 共<%=intpagecount%>页

<%if(intpage<intpagecount){%>

<a href="mssql.jsp?page=<%=intpage+1%>">下一页</a><%

}

%>

<%if(intpage>1){%>

<a href="mssql.jsp?page=<%=intpage-1%>">上一页</a><%

}

%>

</td>

</tr>

</table> </body>

</html>

<%

//关闭结果集

sqlrst.close();

//关闭sql语句对象

sqlstmt.close();

//关闭数据库

sqlcon.close();

%>

三、怎么去运行?

   将代码存为文件test.jsp

orion application server下:

copy到orion的default-web-app目录下,通过:

http://localhost:port/test.jsp

访问测试

对于resin,tomcat,jws等等,都可以运行通过。