在jsp页面怎样随机jsp页面显示数据库库中的多条记录

JSP页面中同时显示数据库中几张表的数据
&%@ page language="java"
contentType="text/charset=utf-8"
pageEncoding="utf-8"%&
&%@ page import="java.sql.*" %&
&!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN" ""&
&meta http-equiv="Content-Type" content="text/
charset=utf-8"&
&title&四张数据表&/title&
& Connection conn=
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","1234");
Statement stmt=conn.createStatement();
Statement stmt1=conn.createStatement();
Statement stmt2=conn.createStatement();
Statement stmt3=conn.createStatement();
ResultSet ra=stmt.executeQuery("select * from jiancedian");
ResultSet rb=stmt1.executeQuery("select * from
jiancedian_yiqi");
ResultSet rc=stmt2.executeQuery("select * from fenxi_yiqi");
ResultSet rd=stmt3.executeQuery("select * from
yiqi_gongneng");
&center&&h2&监测点表&/h2&&/center&
&table border="1" align="center"
&th&监测点编号&/th&
&th&监测点名&/th&
&th&通信接点编号&/th&
&th&同步完成标识&/th&
&th&使用开始日&/th&
&th&site版本&/th&
&th&site协议&/th&
&th&GIS系统用X坐标&/th&
&th&GIS系统用Y坐标&/th&
while(ra.next()) { %&
bgcolor="lightblue"&
&td&&%=ra.getString("jiancedian_id")
&td&&%=ra.getString("jiancedian_name")
&td&&%=ra.getString("tongxin_jiedian_id")
&td&&%=ra.getInt("tongbu_flg")
&td&&%=ra.getString("shiyong_start_date")
&td&&%=ra.getString("SITEVERSION")
&td&&%=ra.getString("SITEPROTOCOL")
&td&&%=ra.getInt("GISX")
&td&&%=ra.getInt("GISY")
&center&&h2&监测点安装仪器管理表&/h2&&/center&
&table border="1"
align="center"&
&th&监测点编号&/th&
&th&分析仪器型号ID&/th&
&th&仪器安装时间&/th&
&th&仪器功能描述&/th&
&th&同步完成标识&/th&
&th&使用开始日&/th&
while(rb.next()) { %&
bgcolor="lightblue"&
&td&&%=rb.getString("jiancedian_id")
&td&&%=rb.getString("yiqi_type_id")
&td&&%=rb.getInt("anzhuangri")
&td&&%=rb.getString("gongneng_dis")
&td&&%=rb.getInt("tongbu_flg")
&td&&%=rb.getInt("shiyong_start_date")
&center&&h2&分析仪器管理表&/h2&&/center&
&table border="1"
align="center"&
&th&分析仪器型号ID&/th&
&th&分析仪器名字&/th&
&th&原始制造厂家&/th&
&th&销售商&/th&
&th&销售商电话&/th&
&th&销售商传真&/th&
&th&销售商联系人&/th&
&th&同步完成标识&/th&
&th&使用开始日&/th&
while(rc.next()) { %&
bgcolor="lightblue"&
&td&&%=rc.getString("yiqi_type_id")
&td&&%=rc.getString("yiqi_name")
&td&&%=rc.getString("changjia")
&td&&%=rc.getString("xiaoshoushang")
&td&&%=rc.getString("xiaoshoushang_tel")
&td&&%=rc.getString("xiaoshoushang_Fax")
&td&&%=rc.getString("xiaoshoushang_lianxiren")
&td&&%=rc.getInt("tongbu_flg")
&td&&%=rc.getInt("shiyong_start_date")
&center&&h2&测量仪器功能管理表&/h2&&/center&
&table border="1"
align="center"&
&th&分析仪器型号ID&/th&
&th&污染物编号&/th&
&th&量程上限&/th&
&th&量程下限&/th&
&th&精度&/th&
&th&重复性&/th&
&th&测定周期&/th&
&th&测定方式&/th&
&th&同步完成标识&/th&
&th&使用开始日&/th&
while(rd.next()) { %&
bgcolor="lightblue"&
&td&&%=rd.getString("yiqi_type_id")
&td&&%=rd.getString("wuran_id")
&td&&%=rd.getString("max_liangcheng")
&td&&%=rd.getString("min_liangcheng")
&td&&%=rd.getString("jingdu")
&td&&%=rd.getString("chongfuxing")
&td&&%=rd.getString("zhouqi")
&td&&%=rd.getString("fangshi")
&td&&%=rd.getInt("tongbu_flg")
&td&&%=rd.getInt("shiyong_start_date")
& ra.close();
& stmt.close();
& rb.close();
& stmt1.close();
& rc.close();
& stmt2.close();
& rd.close();
& stmt3.close();
& conn.close();
& catch(Exception e)
out.println(e.getMessage());
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。本帖子已过去太久远了,不再提供回复功能。问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
内容已经在jsp页面 显示出来了
现在是单纯的 把已经查询出来的98条数据 做个分页
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
hibernate自带了支持多数据库的分页,或者你也可以写一个Page类在后台获取数据的时候就分页。网上也有很多分页算法,例如:百度的分页,google的分页。然后前台就好做了,只是让分页的内容显示出来就可以。以下是百度分页算法参考:
public class BaiduPage {
* 数据库一共多少行
private int rowC
* 数据库查询其实行
private int startR
* 当前页面导航序号
* 一页查询多少行
private int pageSize=10;
* 一共有多少导航
private int navC
private int first=1;
*显示导航的起始
* 显示导航的结束
public BaiduPage() {
* @param rowCount
* @param num
* @param pageSize
public BaiduPage(int rowCount, int num, int pageSize) {
//查询到的行数
this.rowCount = rowC
//每页显示数量
this.pageSize = pageS
//导航页面数=(向上取整)(行数/每页显示数量)
this.navCount=(int) Math.ceil(this.rowCount*1.0/this.pageSize);
this.last=this.navC
//小于最小值 显示为第一页
this.num =
Math.max(this.first, num);
//大于最大值 显示为最后一页
this.num=Math.min(this.last, num);
//当前页面显示的起始行 =(当前页面-1)*10且大于等于0
this.startRow=Math.max(0,(this.num-1)*this.pageSize);
this.prev=Math.max(this.first, (this.num-1));
this.next=Math.min(this.last, this.num+1);
//显示导航的起始 小于10从第一页显示,大于10只显示10页
this.begin=(this.num-this.first)&=10?this.first:(this.num-10);
//显示导航的结束 小于9显示到最后一页,大于9显示9页
this.end=(this.last-this.num)&9?this.last:(this.num+9);
public int getRowCount() {
return rowC
public void setRowCount(int rowCount) {
this.rowCount = rowC
public int getStartRow() {
return startR
public void setStartRow(int startRow) {
this.startRow = startR
public int getNum() {
public void setNum(int num) {
this.num =
public int getPageSize() {
return pageS
public void setPageSize(int pageSize) {
this.pageSize = pageS
public int getNavCount() {
return navC
public void setNavCount(int navCount) {
this.navCount = navC
public int getPrev() {
public void setPrev(int prev) {
this.prev =
public int getNext() {
public void setNext(int next) {
this.next =
public int getFirst() {
public void setFirst(int first) {
this.first =
public int getLast() {
public void setLast(int last) {
this.last =
public int getBegin() {
public void setBegin(int begin) {
this.begin =
public int getEnd() {
public void setEnd(int end) {
this.end =
以下是Google分页算法参考:
import java.util.L
* google 和baidu不同之处在于google只显示10页导航
* @author Administrator
public class GooglePage {
* 数据库一共多少行
private int rowC
* 数据库查询其实行
private int startR
* 当前页面导航序号
* 一页查询多少行
private int pageSize=10;
* 一共有多少导航
private int navC
private int first=1;
*显示导航的起始
* 显示导航的结束
* 控制导航显示数量
private int navN
private List pageD
public GooglePage() {
* @param rowCount
* @param num
* @param pageSize
public GooglePage(int rowCount, int num, int pageSize,int navNum) {
//查询到的行数
this.rowCount = rowC
//每页显示数量
this.pageSize = pageS
//导航页面数=(向上取整)(行数/每页显示数量)
this.navCount=(int) Math.ceil(this.rowCount*1.0/this.pageSize);
this.last=this.navC
//小于最小值 显示为第一页
this.num =
Math.max(this.first, num);
//大于最大值 显示为最后一页
this.num=Math.min(this.last, num);
//当前页面显示的起始行 =(当前页面-1)*10且大于等于0
this.startRow=Math.max(0,(this.num-1)*this.pageSize);
this.prev=Math.max(this.first, (this.num-1));
this.next=Math.min(this.last, this.num+1);
//显示导航的起始
this.begin=(this.num-this.first)&=10?this.first:(this.num-10);
//显示导航的结束 小于9显示到最后一页,大于9显示9页
this.end=(this.last-this.num)&9?this.last:(this.num+9);
this.navNum=navN
//google 如果显示10个,前5后4
this.begin=Math.max(this.first, this.num-this.navNum/2);
this.end=Math.min(this.last, this.begin+this.navNum-1);
//如果begin到end不够10个,显示后10个
if ((this.end-this.begin)&(this.navNum-1)) {
this.begin=Math.max(this.first, this.last-this.navNum+1);
public int getRowCount() {
return rowC
public void setRowCount(int rowCount) {
this.rowCount = rowC
public int getStartRow() {
return startR
public void setStartRow(int startRow) {
this.startRow = startR
public int getNum() {
public void setNum(int num) {
this.num =
public int getPageSize() {
return pageS
public void setPageSize(int pageSize) {
this.pageSize = pageS
public int getNavCount() {
return navC
public void setNavCount(int navCount) {
this.navCount = navC
public int getPrev() {
public void setPrev(int prev) {
this.prev =
public int getNext() {
public void setNext(int next) {
this.next =
public int getFirst() {
public void setFirst(int first) {
this.first =
public int getLast() {
public void setLast(int last) {
this.last =
public int getBegin() {
public void setBegin(int begin) {
this.begin =
public int getEnd() {
public void setEnd(int end) {
this.end =
public int getNavNum() {
return navN
public void setNavNum(int navNum) {
this.navNum = navN
public List getPageData() {
return pageD
public void setPageData(List pageData) {
this.pageData = pageD
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
为啥要全部一次性加载出来。。。
就算你全部加载出来了,你可以把数据放在jsp的一个变量里,分页的时候从那里拿数据。但是太蠢了,为什么不分页提取数据呢?
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
可以使用 一些 成熟的分页第三方代码库。如果第一次拿出来全部的数据。可使用bootstarp-tables类似于这样的代码库来分页,但是这样只是把数据在前端进行分页。并不好,应该在取数据时就分页。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
你在servlet里面获得数据库的条数,按照你的设计每页显示多少条数据和第几页,这两个参数,选出你要得到的数据,再发给页面,然后页面显示。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
分页就是sql语句中的limit a, b 你把这两个参数传递到Dao层,分页查数据库就可以了,你要是有100万数据,难道一次全查出来么?页面展示的也就最多20条数据吧,所以分页是必须要做的。
分页在controller层实现,然后调用service中的方法查询,并对查询的结果处理,具体的查询,由service层调dao层来执行。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
这样的话你可以看看jquery easyui的客户端分页。
同步到新浪微博
分享到微博?
Hi,欢迎来到 SegmentFault 技术社区!⊙▽⊙ 在这里,你可以提出编程相关的疑惑,关注感兴趣的问题,对认可的回答投赞同票;大家会帮你解决编程的问题,和你探讨技术更新,为你的回答投上赞同票。
明天提醒我
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:从数据库中查询出来很多数据在jsp页面上显示,怎样定位到某一条的数据并且自动跳转到那一条数据!-jsp从数据库中查询一条记录然后将记录显示在网页中
你正在浏览: &>&
从数据库中查询出来很多数据在jsp页面上显示,怎样定位到某一条的数据并且自动跳转到那一条数据!_jsp从数据库中查询一条记录然后将记录显示在网页中
从数据库中查询出来很多数据在jsp页面上显示,怎样定位到某一条的数据并且自动跳转到那一条数据!
相关说明:
数据以表格的形式显示在页面上,通过关键字来查找 含有关键字的数据,并且将那条记录背景颜色设置为红色!
”这样在前台显示时就可以显示为红色2。就是在前台进行标注了;font&gt,比如你用&&font color=&#FF0000&&c;关键字&&#47,在前台取数据时只能一点一点的进行判断是否是关键字这个判断就和你获取数据的方法相关了;,&logic:等一些方法取都是不同的,进行判断如果是关键字则将它加上&lt不怎么懂:1;font color=&#FF0000&quot:out value=&&${value}&quot,不过可以参考下我的建议.要么将查出来的数据在后台进行处理,将数据查出来并且一条一条拿出来进行验证如果是关键字则进行替换如关键字是“关键字”则替换为“&lt
java怎么从数据库中查询数据并输出 [
刚刚漏了帐号密码了,现在补上try {//这里的是MYSQL 举例//加载驱动 Class.forN...]怎样从数据库中查询一周内的信息 [
使用sql语句查询日期在一周内的数据 select * from ShopOrder where d...]怎么从数据库中查询出一列包含有某个字的记录 [
需要用like语句。 1、创建测试表、插入数据: create table test(id int,...]从数据库查询出来的的值为1 在界面显示为 true [
可以在查询时动手脚。 如case when 值=1 then 'True' else 'False'...]php怎么把从数据库里查询的数据十条一页的显示出来 [
select * from table limit 0,10 从0开始,共10条 SQL的limit...]怎样从HTML网页中获取SQL数据库里的数据 [
HTML是无法读取数据库的,HTML是页面前端脚本语言,要想从HTML网页中获取SQL数据库里的数据...]怎样在数据库中查询出只有一条数据 [
方法一:可以通过group by 进行分组。 sql:select username,count(u...]如何将数据库中查询出来的值赋给textbox [
不同的开发语言代码不同,以C# WINFORM为例: 方法一、数据绑定 首先连接数据库,读取数据 绑...]请问,如何统计从数据库中查询到的数据条数? [
查询条数你可以试下 select count(*) from user01 where age be...]c#中如何接收从sql数据库中查询出的项? [
string str=(string)cmd.ExecuteScalar(); 如果只有一个stri...]
你可能感兴趣的内容?后使用快捷导航没有帐号?
只需一步,快速开始
查看: 3132|回复: 6
【help】请教JSP中如何多行多列显示数据库中的记录?
UID18174在线时间 小时积分3031帖子离线17434 天注册时间
金牌会员, 积分 3031, 距离下一级还需 1969 积分
我在一个jsp页面程序中,想将数据库中符合我的条件的记录显示出来,通常做到的是一行显示一条,现在我想每行显示多条记录,该怎么写?请各位给段代码看看,谢谢。
UID59041在线时间 小时积分243帖子离线17434 天注册时间
中级会员, 积分 243, 距离下一级还需 257 积分
是一样的。在一个循环里显示多个就行了。
原来是一个循环一行,一行里有一个。
现在一个循环一行,一行里放多个就行了。
UID18174在线时间 小时积分3031帖子离线17434 天注册时间
金牌会员, 积分 3031, 距离下一级还需 1969 积分
但是假如记录有10条,我要每行显示2条,这就要分成5行,怎么实现换行呢?
UID25987在线时间 小时积分16178帖子离线17434 天注册时间
&table&
&%
......
int i = 1 ;
while( rs.next() )
{
if( i % 2 = 1 )
& &out.println(&&tr&&);
out.println(&&td&&+rs.getString(&字段名&)+&&/td&&);
if( i % 2 = 0 )
& &out.println(&&/tr&&);
i = i + 1;
}
%&
&/table&复制代码
UID18174在线时间 小时积分3031帖子离线17434 天注册时间
金牌会员, 积分 3031, 距离下一级还需 1969 积分
不行,运行时说%处错误,如下:
Generated servlet error:
D:\Program Files\Apache Tomcat 4.0\work\localhost\GAJG\bsym$jsp.java:375: Invalid left hand side of assignment.
& && && && && & & & & & & & & & & & & && &&&if(i % 2 = 1) out.println(&&tr&&);
UID25987在线时间 小时积分16178帖子离线17434 天注册时间
不好意思,晕了,是==
&table&
&%
......
int i = 1 ;
while( rs.next() )
{
if( i % 2 == 1 )
& &out.println(&&tr&&);
out.println(&&td&&+rs.getString(&字段名&)+&&/td&&);
if( i % 2 == 0 )
& &out.println(&&/tr&&);
i = i + 1;
}
%&
&/table&
复制代码
UID18174在线时间 小时积分3031帖子离线17434 天注册时间
金牌会员, 积分 3031, 距离下一级还需 1969 积分
问题解决了,多谢信心索!:)
Powered by}

我要回帖

更多关于 jsp页面显示数据库 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信