简单用户登录系统
1.数据库表
create database spdb1
use spdb1
create table users(
userid int primary key identity(1,1),
username varchar(20),
passwd varchar(20),
email varchar(30),
grade int
)
2.分页
pageSize(每页显示多少条记录,指定)
pageNow(希望显示第几页,用户选择)
pageCount(一共有多少页,查询数据库)
rowCount(一共有多少条记录,计算得到)
算法如下:
if(rowCount%pageSize==0){
pageCount=rowCount/pageSize;
}else{
pageCount=rowCount/pageSize+1;
}
mysql语句如下:
(1)一共有多少条记录
select count(*) from users;
(2)分页
select * from users limit 3,4;
其表示从第3条记录之后显示4条记录,具体分页语句如下:
"select * from users limit "+ (pageNow - 1) * pageSize
+ "," + pageSize
(3)表数据的自我复制,作用是检查数据库操作表的效率
insert int 表名 (字段1,2,···) select 字段1,2,··· from 表名
3.示例代码
- <%@page contentType="text/html;charset=UTF-8" import="java.sql.*"%>
- <html>
- <body>
- 登录成功! <br>
- <%= request.getParameter("user")%><br>
- <a href="login.jsp" mce_href="login.jsp">返回重新登录</a>
- <hr>
- <center>
- <h1>用户信息列表</h1><br>
- <%
- //=================分页功能================
- //1.定义四个分页会用到的变量
- int pageSize=3;
- int pageNow=1;//默认显示第一页
- int rowCount=0;//该值从数据库查询
- int pageCount=0;//该值通过分页算法计算
- //接收用户希望显示的页数(pageNow)
- String s_pageNow=request.getParameter("pageNow");
- if(s_pageNow!=null){
- //确实接收到pageNow
- pageNow=Integer.parseInt(s_pageNow);
- }
- //2.查询得到rowCount
- Class.forName("com.mysql.jdbc.Driver");
- Connection ct = DriverManager.getConnection(
- "jdbc:mysql://localhost:3306/spdb", "root", "root");
- Statement sm=ct.createStatement();
- ResultSet rs=sm.executeQuery("select count(*) from users");
- if(rs.next()){//注意,rs.next()是为了使sql中的游标指到具体结果
- rowCount=rs.getInt(1);
- }
- //3.计算pageCount,也即分页算法
- if(rowCount%pageSize==0){
- pageCount=rowCount/pageSize;
- }else{
- pageCount=rowCount/pageSize+1;
- }
- //4.查询出需要显示的记录
- rs=sm.executeQuery("select * from users limit "
- + (pageNow - 1) * pageSize + "," + pageSize);
- //5.显示
- %>
- <table border="1">
- <tr><td>用户id</td><td>用户名</td><td>密码</td><td>邮件地址</td><td>用户级别</td></tr>
- <%
- while(rs.next()){
- %>
- <tr><td><%=rs.getInt(1)%></td><td><%=rs.getString(2)%></td><td><%=rs.getString(3)%></td><td><%=rs.getString(4)%></td><td><%=rs.getInt(5)%></td></tr>
- <%
- }
- %>
- </table>
- <%
- //6.显示超链接
- if(pageNow!=1){
- out.print("<a href="wel.jsp?pageNow=1" mce_href="wel.jsp?pageNow=1">首页</a>");
- out.print("<a href="wel.jsp?pageNow=" mce_href="wel.jsp?pageNow=""+(pageNow-1)+">上一页</a>");
- }
- for(int i=pageNow;i<=pageNow+3;i++){
- out.print("<a href="wel.jsp?pageNow=" mce_href="wel.jsp?pageNow=""+i+">["+i+"]</a>");
- }
- if(pageNow!=pageCount){
- out.print("<a href="wel.jsp?pageNow=" mce_href="wel.jsp?pageNow=""+(pageNow+1)+">下一页</a>");
- out.print("<a href="wel.jsp?pageNow=" mce_href="wel.jsp?pageNow=""+pageCount+">尾页</a>");
- }
- //=================分页功能================
- %>
- </center>
- </body>
- </html>