jsp中连接mysql的javabean 可直接调用显示页面为表格形式

本文介绍了如何通过JavaBean在JSP页面中实现MySQL数据库的分页显示。主要包括了用于分页的PageNumber类,数据库连接的MyConnection类,以及在JSP中展示数据的代码。通过创建JSP页面,用户可以浏览、切换不同页码,以表格形式查看学生信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、分页beans

 

pageNumber.java

 

package bean;

 

public class PageNumber

 

{

 

      int rowCount=1,            //总的记录数

 

             pageSize=1,           //每页显示的记录数

 

             showPage=1,         //设置预显示的页码数

 

             pageCount=1;        //分页之后的总页数

 

     

 

      public void setRowCount(int n){

 

             rowCount=n;

 

      }

 

      public int getRowCount(){

 

             return rowCount;

 

      }

 

      public void setPageCount(int r,int p){

 

             rowCount=r;

 

             pageSize=p;

 

                                         pageCount=(rowCount%pageSize)==0?(rowCount/pageSize):(rowCount/pageSize+1);

 

             //计算分页之后的总页数

 

      }

 

      public int getPageCount(){

 

             return pageCount;

 

      }

 

      public void setShowPage(int n){

 

             showPage=n;

 

      }

 

      public int getShowPage(){

 

             return showPage;

 

      }

 

      public void setPageSize(int n){

 

             pageSize=n;

 

      }

 

      public int getPageSize(){

 

             return pageSize;

 

      }

 

}

 


 


2、数据库连接beans

 

    package bean;

 

import java.sql.*;

 

import java.io.*;

 

public class MyConnection{

 

       Connection con=null;     //声明一个共享的连接对象

 

       Statement stat=null;      

 

       ResultSet rs=null;

 

       int rowCount=0;            //总的记录数

 

       public MyConnection(){

 

              try{

 

                   Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");

 

              }catch(ClassNotFoundException e){

 

                   System.out.print(e);

 

              }

 

              try{

 

                  con=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;

 

DatabaseName=student;","sa","");

 

              }catch(SQLException e){

 

                   System.out.print(e);

 

              }

 

       }

 

       public ResultSet myQuery(String sql) throws SQLException{

 

              //结果集的游标可上下移动,但当数据库变化时,结果集不变,

 

//不能用结果集更新数据库中的表

 

              stat=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,

 

ResultSet.CONCUR_READ_ONLY);

 

              //返回可滚动的结果集

 

              rs=stat.executeQuery(sql);

 

              return rs;

 

       }

 

       public void myClose() throws SQLException{

 

              con.close();

 

       }

 

}

 

3、分页显示记录的JSP页面

 


 


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

 

<%@page import="java.sql.*"%>

 

<%@page import="bean.PageNumber"%>

 

<%@page import="bean.MyConnection"%>

 

<%@page import="java.io.*"%>

 

<jsp:useBean id="handlePage" class="bean.PageNumber" scope="session"/>

 

<jsp:useBean id="myCon" class="bean.MyConnection" scope="application"/>

 

<HTML>

 

<BODY bgcolor=cyan><Size=1>

 

<CENTER>

 

<BR><BR>

 

<%!

 

       // 以表格形式显示数据库记录的方法

 

        public void showList(ResultSet rs,JspWriter out,int n){

 

             try{

 

out.print("<BR><BR><Table border=2><tr><th>学号<th>姓名<th>数学<th>英语<th>物理</tr>");

 

                            for(int i=1;i<=n;i++){

 

                                out.print("<tr>");

 

                                   String number=rs.getString(1);

 

                                   out.print("<td>"+number+"</td>");

 

                                   String name=rs.getString(2);

 

                                   out.print("<td>"+name+"</td>");

 

                                   int math=rs.getInt(3);

 

                                   out.print("<td>"+math+"</td>");

 

                                   int english=rs.getInt(4);

 

                                   out.print("<td>"+english+"</td>");

 

                                   int physics=rs.getInt(5);

 

                                   out.print("<td>"+physics+"</td>");

 

                                   out.print("</tr>");

 

                                   rs.next();

 

                     }

 

                        out.print("</table>");

 

               }catch(Exception e){

 

                      System.out.println(e);

 

               }

 

       }

 

%>

 

<%

 

       ResultSet rs=null;

 

       int rowCount=0;     //总的记录数

 

       try{

 

               //返回可滚动的结果集

 

               rs=myCon.myQuery("select * from students");

 

              //将游标移动到最后一行

 

              rs.last();

 

              //获取记录总数

 

              rowCount=rs.getRow();

 

              //设置每页显示的记录数

 

              handlePage.setPageSize(2);

 

              //计算总页数

 

              handlePage.setPageCount(rowCount,handlePage.getPageSize());

 

              out.print("共有"+handlePage.getPageCount()+"页,");

 

              out.print("每页显示"+handlePage.getPageSize()+"条记录");

 

       }catch(SQLException e){

 

              out.print(e);

 

       }

 

%>

 

<%--选择显示某页的表单--%>

 

<%String str=response.encodeRedirectURL("showList.jsp");            //获取showList.jsp的url%>

 

<Form action="<%=str%>" method="post">

 

显示首页:<Input Type="hidden" name="a" value="first">

 

<input type=submit value="first">

 

</form>

 

<Form action="<%=str%>" method="post">

 

显示下一页:<Input Type="hidden" name="a" value="next">

 

<input type=submit value="next">

 

</form>

 

<Form action="<%=str%>" method="post">

 

显示上一页:<Input Type="hidden" name="a" value="previous">

 

<input type=submit value="previous">

 

</form>

 

<Form action="<%=str%>" method="post">

 

输入要显示的页数:<Input Type="text" name="a" value="1" style="text-align:right">

 

<input type=submit value="submit">

 

</form>

 

<%

 

     String s=request.getParameter("a");

 

        if(s==null){

 

               s="1";

 

        }else if(s.equals("first")){

 

                handlePage.setShowPage(1);            //设置预显示页

 

                out.print("目前显示第"+handlePage.getShowPage()+"页");

 

                //将游标移到指定的位置

 

                rs.absolute(1);

 

                //显示该页的内容

 

                showList(rs,out,handlePage.getPageSize());

 

        }else if(s.equals("next")){

 

                int n=handlePage.getShowPage();            //获取目前的页数

 

                n=(n+1);            //将页数增1

 

                if(n>handlePage.getPageCount()) n=1;

 

                handlePage.setShowPage(n);            //设置预显示页

 

                out.print("目前显示第"+handlePage.getShowPage()+"页");

 

                //将游标移到指定的位置

 

                rs.absolute((n-1)*handlePage.getPageSize()+1);

 

                //显示该页的内容

 

                showList(rs,out,handlePage.getPageSize());

 

        }else if(s.equals("previous")){

 

               int n=handlePage.getShowPage();              //获取目前的页数

 

               n=n-1;          //将页数减1

 

               if(n<=0) n=handlePage.getPageCount();

 

               handlePage.setShowPage(n);             //设置预显示页

 

               out.print("目前显示第"+handlePage.getShowPage()+"页");

 

               //将游标移到指定的位置

 

               rs.absolute((n-1)*handlePage.getPageSize()+1);

 

               //显示该页的内容

 

               showList(rs,out,handlePage.getPageSize());

 

        }else{

 

               int m=Integer.parseInt(s);           //把输入的字符转化为整型数

 

               handlePage.setShowPage(m);     //设置预显示页

 

               out.print("目前显示第"+handlePage.getShowPage()+"页");

 

               int n=handlePage.getShowPage();

 

               //将游标移到指定的位置

 

               rs.absolute((n-1)*handlePage.getPageSize()+1);

 

               //显示该页的内容

 

               showList(rs,out,handlePage.getPageSize());

 

        }

 

%>

 

</CENTER>

 

</BODY>

 

</HTML>

 

数据库的表结构是:

 

create table students(

 

id varchar(10),name varchar(10),math int,english int,physics int)

 

数据库名是:student


 

基于jsp+javabean+mysql三层结构的动态购物网站。网站用户接口(即界面)由jsp完成,数据和逻辑处理由beans完成,数据储存由mysql完成。因为beans独立负责处理整个网站的全部数据逻辑运算,所以整个网站的负载量和速度都将大大提高,所以基于这种语言和结构开发的购物系统的优势是其它语言没法比尔的。更重要的是,jsp+bean能够在Apache环境下顺畅地运行,这也是其最大优点之一。这就更进一步保证了网站的稳定性和安全性,而这些,对于一个购物网站来说是非常重要的!这个版本让大家期待已久了,主要做了以下一些修正:1.新增产品站内搜索引擎。2.新增人气商品排行。3.新增热评商品排行。4.新增重点推荐产品。5.删除不太需要的新闻频道。6.修正后台管理的一些Nullpointexception错误。7.新增顾客资料修改。8.新增顾客订单查询。9.新增后台超级用户和订单管理员管理,方便物流人员独立处理订单。10.完善了一些购物流程。本程序由“城市WebClub”独立自主开发,你可以对整个商城的版面甚至版权作任意修改,但传播本程序时,请保留本站的说明文件。因为开发一个系统真的很痛苦!由于时间和水平关系,本系统还有很多不足和错误的地方,欢迎大家试用并提出意见。安装====1。把myshop直接上传到你的jsp主机。2。把class里的文件上传到你的jsp主机的class目录。3。分别修改myshop下的config.jsp、class/myshop下的config.java文件。4。把所有mysqldata文件倒入你的数据库
A. 本留言本采用jsp+javabean+servlet+mysql B. 本系统运行环境: windows/linux+ jdk1.4+resin(或tomcat)+jdbc+mysql 5.0 目录结构如下: 本版本数据库采用的是MYSQL,使用JDBC驱动,所以要求有MYSQL的JDBC的驱动程序;将驱动程序放在lib目录下,将WEB-INF目录下的web.xml文件考到你的发布目录下,web.xml是一些servlet的指向 同时将打包的note.jar文件放在lib目录下 本程序的所有的javabean和servlet类文件在src目录下 3、配置文件 修改本软件的数据库连接的配置文件在classes目录下,其中“isLog=on”代表打开日志功能,如果是“isLog=off”的话就表示关闭日志, logPath=D:\\jsp\\com\\ntsky\\log日志路径,logFile=DBConnectionManager.log,日志名相关的请看db.properties(解释得很详细) 不过注意在windows下和linux下路径稍微有点区别,在linux下文档为logPath=/www/log 表示在/www/log目录下。 请填写好你的URL访问路径,比如你的jsp在你的发布目录的note下,就请将你的SiteBaseURL设置成“SiteBaseURL=http://127.0.0.1:8080/note/” 端口号可以改 注意note后还有个/ 4、 数据库 数据库采用mysql 数据库的源文件在sql下的mysql.txt 对应的在sql下还有一份note.sql,你可以通过mysql –u root –p note<note.sql文件路径还原note数据库(前提是你的数据库先有一个空的数据库名为note的库)。 5、 系统初始话 请先运行note目录下的jspInIt.jsp,进行后台密码的初始话,管理后台的密码进行了MD5加密,降低了了秘密被人盗用的几率 6、 此留言本实现了MVC模式,完全是通过servlet控制数据,而且使用了连接池,一些基本的类也是完全提供,对学习jsp的MVC模式有很大的帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值