一、java的分页
将从数据库查询到的数据分成不同的几页提供给用户查看。
首先是连接数据库和从数据库中获取数据。
代码:
public static Connection getConnection(){
Connection connection=null;
try {
Class.forName("com.mysql.jdbc.Driver");
connection= DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/nbcj?useSSL=true&characterEncoding=utf-8&user=root&password=123456");
} catch (Exception e) {
e.printStackTrace();
}
return connection;
}
public int getcount() throws SQLException {
Connection connection=DBUtil.getConnection();
PreparedStatement statement=connection.prepareStatement("select count(*) from music");
ResultSet resultSet=statement.executeQuery();
int count=0;
while(resultSet.next()){
count=resultSet.getInt(1);
}
DBUtil.close(connection,statement,resultSet);
return count;
}
还有要新建一个class,是为了将查询到的有几条数据存放到一个类里面进行封装。
代码:
public class PageBean<T> {
private int currentPage;
private int pageSize;
private List<T> music;
private int totalCount;
private int totalPage;
public int getCurrentPage() {
return currentPage;
}
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public List<T> getMusic() {
return music;
}
public void setMusic(List<T> music) {
this.music = music;
}
public int getTotalCount() {
return totalCount;
}
public void setTotalCount(int totalCount) {
this.totalCount = totalCount;
}
public int getTotalPage() {
return totalPage;
}
public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}
@Override
public String toString() {
return "PageBean{" +
"currentPage=" + currentPage +
", pageSize=" + pageSize +
", music=" + music +
", totalCount=" + totalCount +
", totalPage=" + totalPage +
'}';
}
}
然后接下来就要将数据进行分页了
代码:
int count = musicDao.getCount();
pageBean.setTotalCount(count);
double ceil = Math.ceil(count / 5.0);//12 5 2.4 3 2 2 2.1 3
int totalPage= (int) ceil;
pageBean.setTotalPage(totalPage);
System.out.println("请问你要查询第几页:我们一共有"+totalPage+"页");
int i=input.nextInt();
List<Music> music1 = getMusic(i, totalPage, musicDao);
System.out.println("下一步还要做什么:\t1.上一页 \t2.下一页 \t3.退出");
int i1 = input.nextInt();
switch (i1){
case 1:
if(i==1){
getMusic(1, totalPage, musicDao);
}else{
getMusic(i-1, totalPage, musicDao);
}
break;
case 2:
if(i==totalPage){
getMusic(totalPage,totalPage,musicDao);
}else {
getMusic(i+1,totalPage,musicDao);
}
break;
case 3:
System.exit(0);
break;
}
这样分页就可以做好了,想要上下页可以直接在用户输入的页数上进行加减。