标题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;
}