package jdbcDay03;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;
public class TestPage {
public static void main(String[] args) {
// getResult(20,10);
// getPage(10,5); //每页是10条。,,第5页
int page=0;
System.out.println("你输入的页码是:");
Scanner ss=new Scanner(System.in);
page=ss.nextInt();
getpageSimple(10,page);
// System.out.println(getTotalNumber());
}
public static void getResult(int m,int n){ //输出指定从m到n的记录
String sql="select id ,user_id,login_time,logout_time,rn "+
"from (select id,user_id,login_time,logout_time,rownum rn from mytemp where rownum<?)"
+"where rn>=?";
try {
Connection conn=ConnectionUtils.openConnection();
PreparedStatement pstmt=conn.prepareStatement(sql);
pstmt.setInt(1,m);
pstmt.setInt(2, n);
ResultSet rs=pstmt.executeQuery();
while(rs.next()){
String line=rs.getString(1)+"\t"+rs.getString(2)+"\t"+rs.getString(5);
System.out.println(line);
}
pstmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void getPage(int pageSize,int page){
int from=(page-1)*pageSize+1;
int to=from+pageSize;
String sql="select id ,user_id,login_time,logout_time,rn "+
"from (select id,user_id,login_time,logout_time,rownum rn from mytemp where rownum<=?)"
+"where rn>=?";
try {
Connection conn=ConnectionUtils.openConnection();
PreparedStatement pstmt=conn.prepareStatement(sql);
pstmt.setInt(1, to);
pstmt.setInt(2, from);
ResultSet rs=pstmt.executeQuery();
while(rs.next()){
String line=rs.getString(1)+"\t"+rs.getString(2)+"\t"+rs.getString(5);
System.out.println(line);
}
pstmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void getpageSimple(int pageSize,int page){
int totalPage=0; //总共有多少页数
int totalNumber=getTotalNumber();
if(totalNumber%pageSize==0){
totalPage=totalNumber/pageSize;
}else{
totalPage=totalNumber/pageSize+1;
}
if(page>totalPage){
page=totalPage;
}else if(page<1){
page=1;
}
int from =(page-1)*pageSize+1;
int to=from +pageSize;
getResult(to,from);
}
public static int getTotalNumber(){ //获得mytemp中共有多少条记录
String sql="select Count(*) num from mytemp";
int n=-1;
try {
Connection conn=ConnectionUtils.openConnection();
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery(sql);
rs.next();
n=rs.getInt("num");
} catch (SQLException e) {
e.printStackTrace();
}
return n;
}
}
分享到:
相关推荐
- **JDBC连接**:使用JDBC(Java Database Connectivity)API建立与数据库的连接,执行SQL语句并获取结果集。 - **结果集处理**:遍历结果集,将其转化为Java对象,然后传递给JSP页面进行显示。 - **关闭资源**:...
SQL查询语句应包含LIMIT和OFFSET子句来实现分页。例如,如果每页显示10条记录,第一页的查询语句可能是: ```sql SELECT * FROM table LIMIT 10 OFFSET 0; ``` 对于第n页,OFFSET应为 `(n-1) * pageSize`。 4....
它会接收用户的分页参数(如当前页和每页数量)以及排序条件,然后构建对应的SQL语句,通过JDBC执行查询,最后将结果返回给前端进行展示。前端页面通常使用AJAX技术动态更新内容,以保持用户体验的流畅性。 此外,...
如果使用JDBC,上述SQL语句将在这个层面上执行。 4. **配置Action**:在`struts-config.xml`中配置处理分页请求的Action,定义一个ActionForm来接收用户输入的页码和每页大小。Action中调用Service进行分页查询,并...
2. SQL语句设计:编写能够执行分页查询的SQL语句,这通常需要结合数据库特定的语法来实现。 3. DAO层:在Java中,数据访问对象(DAO)负责与数据库交互,实现分页查询的逻辑。 4. Service层:业务逻辑层调用DAO...
它允许Java程序执行SQL语句,进行数据查询、插入、更新和删除操作。理解JDBC的连接池、预编译语句和事务管理是数据库编程的关键。 6. **JSP**:JavaServer Pages是用于创建动态网页的技术,结合了HTML和Java代码。...
1. **JDBC分页**:最基础的分页方式是利用JDBC的SQL查询语句中的`LIMIT`(MySQL)或`OFFSET`(PostgreSQL,Oracle等)来实现。例如: ```sql SELECT * FROM table LIMIT 5 OFFSET 10; ``` 这表示获取第11行到第...
2. **执行SQL查询**:在Swing应用中,我们可以使用`Statement`或`PreparedStatement`对象来执行SQL语句。在本例中,我们关注的是分页查询,所以会使用`LIMIT`子句。例如,获取第一页(假设每页10条)的SQL可能是: ...
在手动添加黑名单时,只需要将用户的SQL语句输入,在内部自动转化成过滤条件,手动添加时是否生效由参数 manual-filter-flag 来控制,OFF:不生效,ON:立即生效 手动添加与自动添加两种情况下的过滤条件...
4. **通过JDBC进行大量结果的分页**:直接使用数据库提供的分页机制,如LIMIT、OFFSET、TOP等,远比通过JDBC获取所有数据再在Java中分页要高效。使用数据库支持的分页方式能显著降低内存使用并提高性能。 5. **在...
例如,可以通过编写自定义的SQL语句或使用框架提供的API来实现特定的需求。 **2.3 主从表(SQLDATASET实现)** 在关系型数据库中,主从表结构是一种常见的模式,用于表示一对多的关系。Dorado通过`SQLDATASET`实现...
首先,Oracle提供了一个SQL语句修饰符`FOR UPDATE`,用于在`SELECT`语句中锁定所选的行,以便在后续的事务中对这些行进行更新。这正是我们在标题和描述中提到的行锁实现方法。 1. **开启事务**:在对数据库进行任何...