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