模拟分页

标题Java日记

Day 14
模拟分页操作
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.closeAll(resultSet,statement,connection);

return count;

}

public List findall(int start) throws SQLException {
List musics = new ArrayList<>();
Connection connection = DBUtil.getConnection();
PreparedStatement statement = connection.prepareStatement(“SELECT * FROM music order by id limit ?,?”);
statement.setInt(1,start);
statement.setInt(2,5);
ResultSet resultSet = statement.executeQuery();
while (resultSet.next()) {
int id = resultSet.getInt(1);
String musicname = resultSet.getString(2);
String author = resultSet.getString(3);
Music music = new Music();
music.setId(id);
music.setMusicname(musicname);
music.setAuthor(author);
musics.add(music);
}
return musics;
}

首先将sql语句变成select count(*)from music查询总条数
SELECT * FROM music order by id limit ?,? 输入条和每页的信息条数

在音乐管理系统中修改
int a=input.nextInt();
switch (a){
case 1:
int count= musicDao.getCount();
pageBean.setTotalCount(count);
double ceil=Math.ceil(count/5.0);
int totalPage=(int) ceil;
pageBean.setCurrentPage(totalPage);
System.out.println(“请问你要查询第几页:我们一共有”+totalPage+“页”);
int i=input.nextInt();
List 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;

}
在注册信息代码前输入
private List getMusic(int currentPage,int totalPage,MusicDao musicDao) throws SQLException {
List musics=null;
if(currentPage>totalPage){
System.out.println(“傻子,输错了”);
}else{
musics=musicDao.findall((currentPage-1)*5);
System.out.println(musics);
}
return musics;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值