首先声明,本人亦是JSP新手,只是想把自己在学习J2EE所遇到的很常见的问题发给大家,希望对新手有一定的作用,共同学习!
环境:Win XP,SQL Serer2000 SP4, JDBC for SQL Serer2000 SP3, tomcat5.0.28
(关于环境变量的配置,和驱动程序的配置,请参阅本人“JSP连接SQL Server 2000”)
(自己用SQLServer 建立一个数据库,名字为“369”,在里面建立一个表,名字是“tb_stu”)
数据库的查询操作:
代码如下:
<%@ page contentType="text/html;charset=gb2312" language="java" import="java.lang.*, java.io.*, java.sql.*, java.util.*" errorPage=""%>
<html>
<head>
<title> DB bian li</title>
</head>
<body>
<% Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=369";
String user="sa";
String password="";
Connection conn=DriverManager.getConnection(url,user,password);//创建连接
int rowcount;
int introw;
int row;
java.lang.String strrow;
strrow=request.getParameter("row");//取得待显示记录的行码
if(strrow==null)//即QueryString里没有strrow这个参数,此时只显示地一条记录
{
introw=1;
}
else
{
introw=java.lang.Integer.parseInt(strrow);
if(introw<1) introw=1;
}
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from tb_stu";
ResultSet rs=stmt.executeQuery(sql);
rs.last();//指针指向结果集最后一条记录
rowcount=rs.getRow();//获取记录总数
if(introw>rowcount)
introw=rowcount;//如果introw大于表中记录数,显示最后一记录
if(rowcount>0)
{
rs.absolute(introw);//将指针定位到待显示的记录行上
}
%>
<!--显示数据-->
<tr>
<td><%=rs.getString("name")%></td>
<td><%=rs.getString("age")%></td>
<td><%=rs.getString("sno")%></td>
</tr>
</table>
<hr>
<div align="center">
<p>tb_stu表中共有<font soze="4" color="#ff0000"><%=rowcount%></font>条记录,这是第<font soze="4" color="#ff0000"><%=introw%></font>条记录</p>
<p><a href="everyrecord.jsp?row=1">第一条记录</a>
<%if(introw<rowcount){%>
<a href="everyrecord.jsp?row=<%=introw+1%>">下条记录 </a>
<%}%>
<%if(introw>1){%>
<a href="everyrecord.jsp?row=<%=introw-1%>">上一条记录</a>
<%}%>
<a href="everyrecord.jsp?row=<%=rowcount%>">最后一条记录</a>
<%
rs.close();
stmt.close();
conn.close();
%>
</div>
</body>
</html>