JSP+Servlet+oracle 的一个分页查询小应用
来源:互联网 发布:唐诗宋词朗诵软件 编辑:程序博客网 时间:2024/05/21 17:36
JSP+Servlet+oracle 的一个分页查询小应用
功能实现:1.编写1个简单jsp页面,提交表单提交一个人的名字到servlet控制器中。
2.编写一个servlet,接受名字,并连接oracle数据库根据名字查找出信息。
3.把所有信息读出来,分成几页显示,完成分页查询。
知识点:SELECT FROM (SELECT ROWNUM rn,DBname.* FROM DBname WHERE ROWNUM<=? and NAME=?) temp WHERE temp.rn>=?*
上述代码中,是oracle自带的一句分页查询语句,它是拿来控制分页查询每页显示的范围。
DBNAME:就是数据库名称。
rn:语句自带不需要管
ROWNUM<=?:这句显示的一页你要显示多少行数据。
NAME=?:这句你可以设置成自己想要的,根据那个条件查数据。
temp.rn>=?:这句显示的从第几个开始读起;例如前面你设置了3行,而这一行你设置的是1,那就从读出来的3条数据的第一条开始显示。
理清楚了概念之后,编写一个简单的jsp页面提交表单:
<form action="你的servlet" method="post"> <input type="text"name="name" > <input type="submit"name="submit"value="查询">
然后得到表单的传过来的名字,就开始编写一个servlet。
在这里要添加几个数据
pagesize=? :一页要显示多少行数据。
pagenow=?:当前页面
rowcount=?:总页数
第一步:连接数据库
String Driver = "oracle.jdbc.driver.OracleDriver"; String url = "?????????"; String user = "root"; String password = "123"; Connection conn=null; PreparedStatement st=null; ResultSet rs=null; Class.forName(Driver); conn=DriverManager.getConnection(url, user, password);
第二部:获取表单提交的name,并查出该name在数据库的总记录数
String name=request.getParameter("name");String sql="select count(*) from DBname where name=?"; st=conn.prepareStatement(sql); st.setString(1, name); rs=st.executeQuery(); if(rs.next()) { rowcount=rs.getInt(1);//查出记录总条数if(rowcount%pagesize==0)//这里计算出总页数,总条数除于1页显示多少 { rowcount=rowcount/pagesize; }else { rowcount=(rowcount/pagesize)+1; } }
第三部:查出所有数据并设置一页显示3行。
int pagesize=3; String sql1 = "SELECT * FROM (SELECT ROWNUM rn,STUDENT_TEST1.* FROM STUDENT_TEST1 WHERE ROWNUM<=? and NAME=?) temp WHERE temp.rn>=?"; st = conn.prepareStatement(sql1); st.setInt(1, pagesize*pagenow); st.setString(2, name); st.setInt(3, pagesize*(pagenow-1)+1); System.out.println(pagenow*pagesize); System.out.println(pagesize*(pagenow-1)+1); rs=st.executeQuery();
第四步:将数据通过out.print读出来
out.println("<table border=1>"); out.println("<tr><th>姓名</th><th>年龄</th><th>性别</th><th>成绩</th><th>爱好</th></tr>"); while(rs.next()) { out.println("<tr>"); out.println("<td>"+rs.getString(2)+"</td>"); out.println("<td>"+rs.getString(3)+"</td>"); out.println("<td>"+rs.getString(4)+"</td>"); out.println("<td>"+rs.getString(5)+"</td>"); out.println("<td>"+rs.getString(6)+"</td>"); out.println("</tr>"); } out.println("</table>");
第五步:设置上一页下一页和总页数和当前页设置
out.print("<a href='你的servlet?pagenow="+(pagenow-1)+"&name="+name+"'>上一页</a>");out.print("<a href='Fenye?pagenow="+(pagenow+1)+"&name="+name+"'>下一页</a>"); out.print("显示当前页:"+pagenow); out.print("总页数"+rowcount);
以上的就是我自己的一个小应用。谢谢参考。
- JSP+Servlet+oracle 的一个分页查询小应用
- oracle的分页查询碰到的一个小问题
- Servlet+JSP分页的一个例子
- Servlet+JSP分页的一个例子
- Servlet和jsp小应用
- jsp servlet mysql(limit)分页查询
- MySQL数据库+jsp+servlet实现分页查询
- servlet+jsp实现分页查询+导出
- Jsp+Servlet+MyBatis完成分页查询
- jsp+Javabean+servlet实现分页查询
- 一个从JSP到Servlet的简单小实例
- Oracle的分页查询
- Oracle的分页查询
- Oracle的分页查询
- Oracle的分页查询
- Oracle的分页查询
- oracle的分页查询
- Oracle的分页查询
- Java编程思想第四版第十二章学习——通过异常处理错误(1)
- 什么是J2EE
- 【leetcode】26. Remove Duplicates from Sorted Array
- android studio解决导包冲突
- BP神经网络的实现
- JSP+Servlet+oracle 的一个分页查询小应用
- TD-LTE VPN构筑无线超宽带专属通道
- wifi 工具代码
- 仿小米卸载程序时图标的爆炸效果
- JavaScript学习笔记四:对象
- 面试题2:C++实现Singleton单例模式
- 蓝牙attribute protocol
- 深入理解Java内存模型——volatile
- windos下配置 sublime text+quick3.5 开发环境