JDBC之分页查询

本文介绍了如何使用JDBC进行分页查询,通过实例展示了`Select * from User limit 10,10`的用法,解释了偏移量和每页数据数量的概念。此外,还提到了一个数据库工具类,用于加载数据库驱动并建立连接,简化数据库操作。" 7487044,1265731,VC6.0与Office冲突及C2664错误解决方案,"['c', '开发工具', 'visio', 'powerpoint', '预处理器']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

Select * from User limit   10,10;      //第一个10是偏移量(从第11条来看),第二个10是显示每页10个数据。

package JDBC;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Arrays;
import java.util.Scanner;

/*
 *   分页
 */
public class Demo15 {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		System.out.println("请输入要查看的页数:");
		int page = scan.nextInt();
		System.out.println("请输入一页显示的条数:");
		int pageSize = scan.nextInt();
		
		Connection conn = null;
		try {
			conn = DBUtil3.getConnection();
			String sql = "select * from user limit ?,?";
			PreparedStatement ps = conn.prepareStatement(sql);
			ps.setInt(1, (page-1)*pageSize);    //偏移量
			ps.setInt(2, pageSize);           //每页的条数
			
			ResultSet rs = ps.executeQuery();
			while(rs.next()) {
				System.out.println(rs.getString("username"));
			}

			
		}catch(Exception e) {
			e.printStackTrace();
		}finally {
			DBUtil3.close(conn);
		}
		
	}
}

 

下面是一个数据库工具类,有数据库驱动的加载,建立连接,可以方便我们后续的操作.

package JDBC;

import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;

import org.apache.commons.dbcp.BasicDataSource;

/*
 * 数据库工具类
 */


import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;

import org.apache.commons.dbcp.BasicDataSource;

/*
 * 数据库工具类
 */
public class DBUtil3 {
	private static BasicDataSource ds;
	
	//静态代码块读取配置文件
	static {
		try {
			//读取配置文件
			Properties prop = new Properties();
			//获取配置文件的输入流
			InputStream is = DBUtil3.class.getClassLoader().getResourceAsStream("./JDBC/db.properties");
			//加载配置文件
			prop.load(is);
			//关闭输入流
			is.close();
			
			//获取配置参数
			String driver = prop.getProperty("driver");
			String url = prop.getProperty("url");
			String user = prop.getProperty("user");
			String password = prop.getProperty("password");
//			#初始连接数
			int initialSize=Integer.parseInt(prop.getProperty("initialSize"));
//			#最大连接数
			int maxActive=Integer.parseInt(prop.getProperty("maxActive"));
//			#最大等待时间 毫秒
			int maxWait=Integer.parseInt(prop.getProperty("maxWait"));
//			#最大空闲连接数
			int maxIdle=Integer.parseInt(prop.getProperty("maxIdle"));
//			#最小空闲连接数
			int minIdle=Integer.parseInt(prop.getProperty("minIdle"));
			
			//初始化连接池
			ds = new BasicDataSource();
			ds.setDriverClassName(driver);
			ds.setUrl(url);
			ds.setUsername(user);
			ds.setPassword(password);
			ds.setInitialSize(initialSize);
			ds.setMaxActive(maxActive);
			ds.setMaxWait(maxWait);
			ds.setMaxIdle(maxIdle);
			ds.setMinIdle(minIdle);
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	//获取连接
	public static Connection getConnection() {
		Connection conn = null;
		try {
			//获取连接
			conn = ds.getConnection();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return conn;
	}
	
	//释放资源
	public static void close(Connection conn) {
		if(conn!=null) {
			try {
				conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}
}

下面是db.properties,写了要加载哪个驱动,url是哪个,相当于xml.

#key=value
#驱动
driver=com.mysql.jdbc.Driver
#url
#url=jdbc:mysql://localhost:3306/ssm01
url=jdbc:mysql://localhost:3306/employee
#user
user=root
#password
password=root
#初始连接数
initialSize=5
#最大连接数
maxActive=30
#最大等待时间(毫秒)
maxWait=5000
#最大空闲连接数
maxIdle=10
#最小空闲连接数
minIdle=5

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值