JAVA分页查询查到最后一页_jsp模糊查询后的数据进行分页,但点击下一页后就查询全部的了...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

String path = request.getContextPath();

String basePath = request.getScheme() + "://"

+ request.getServerName() + ":" + request.getServerPort()

+ path + "/";

%>

信息表

#container {

width: 500px;

}

#header {

background-color: #99bbbb;

height: 60px;

width: 150px;

}

#menu {

background-color: yellow;

height: 809px;

width: 209px;

float: left;

}

#content {

background-color: #F0F8FF;

height: 809px;

width: 1000px;

float: left;

}

#footer {

background-color: #99bbbb;

height: 60px;

text-align: center;

}

.divcss5 img {

width: 300px;

height: 200px

}

.out{

}

.over{

border:solid 3px red;

font-weight:bold;

cursor:pointer;

}

.aa{

list-style-type:none;

display:none;

}

.box {

width: 300px;

height: 74px;

float: left;

}

.box ul {

list-style-type: none;

margin: 0px;

padding: 0px;

}

.box li {

border:solid 2px red;

margin: 7px;

padding: 5px;

float: left;

}

request.setCharacterEncoding("GBK");

Class.forName("com.mysql.jdbc.Driver");

Connection conn = DriverManager.getConnection(

"jdbc:mysql://localhost:3306/Student", "root", "1234");

Statement stmt = conn.createStatement();

//每页显示记录数

int PageSize = 6; //每页显示记录数

int StartRow = 0; //开始显示记录的编号

int PageNo = 0;//需要显示的页数

int CounterStart = 0;//每页页码的初始值

int CounterEnd = 0;//显示页码的最大值

int RecordCount = 0;//总记录数;

int MaxPage = 0;//总页数

int PrevStart = 0;//前一页

int NextPage = 0;//下一页

int LastRec = 0;

int LastStartRecord = 0;//最后一页开始显示记录的编号

//获取需要显示的页数,由用户提交

if (request.getParameter("PageNo") == null) { //如果为空,则表示第1页

if (StartRow == 0) {

PageNo = StartRow + 1; //设定为1

}

} else {

PageNo = Integer.parseInt(request.getParameter("PageNo")); //获得用户提交的页数

StartRow = (PageNo - 1) * PageSize; //获得开始显示的记录编号

}

//因为显示页码的数量是动态变化的,假如总共有一百页,则不可能同时显示100个链接。而是根据当前的页数显示

//一定数量的页面链接

//设置显示页码的初始值!!

if (PageNo % PageSize == 0) {

CounterStart = PageNo - (PageSize - 1);

} else {

CounterStart = PageNo - (PageNo % PageSize) + 1;

}

CounterEnd = CounterStart + (PageSize - 1);

//获取总记录数

ResultSet rs = stmt.executeQuery("select count(product.id) from product ");

rs.next();

RecordCount = rs.getInt(1);

String q = request.getParameter("q") == null ? "" : request

.getParameter("q");

rs = stmt

.executeQuery("SELECT * FROM product INNER JOIN type on type.id=product.t_id where (product.t_id like*%"

+ q

+ "%*)or (type.name like*%"

+ q

+ "%*) order by type.name,product.t_id limit "

+ StartRow + ", " + PageSize);

//获取总页数

MaxPage = RecordCount % PageSize;

if (RecordCount % PageSize == 0) {

MaxPage = RecordCount / PageSize;

} else {

MaxPage = RecordCount / PageSize + 1;

}

%>

int i = 1;

while (rs.next()) {

int bil = i + (PageNo-1)*PageSize;

%>

i++;

}

%>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
进行 Java 分页查询时,获取当前页面的最后一条数据 Id 可以通过查询结果集的最后一条记录获取。可以使用 `ResultSet` 对象的 `last()` 方法将光标移动到最后一条记录,然后获取该记录的 Id。 针对最后一页数据量不够的情况,可以在查询时判断当前页码是否为最后一页,如果是最后一页,则查询时将返回剩余的所有记录,而不是只返回指定数量的记录。这可以通过计算总记录数与每页记录数的余数来判断是否为最后一页。 下面是一个示例代码: ```java int pageSize = 10; // 每页记录数 int currentPage = 2; // 当前页码 int totalCount = 23; // 总记录数 int offset = (currentPage - 1) * pageSize; // 计算偏移量 int limit = pageSize; // 计算限制数量 if (totalCount % pageSize != 0 && currentPage == Math.ceil(totalCount / (double) pageSize))) { // 如果是最后一页数据量不足一页,则查询剩余的所有记录 limit = totalCount % pageSize; } // 构造 SQL 查询语句 String sql = "SELECT * FROM table LIMIT ?, ?"; PreparedStatement stmt = conn.prepareStatement(sql); stmt.setInt(1, offset); stmt.setInt(2, limit); ResultSet rs = stmt.executeQuery(); if (rs.last()) { // 获取最后一条记录的 Id int lastId = rs.getInt("id"); } ``` 需要注意的是,为了避免 SQL 注入攻击,应该使用 PreparedStatement 对象来构造 SQL 查询语句,并将查询参数通过占位符传递给 PreparedStatement 对象。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值