sqlserver分页转mysql

Ryo6688 2009-08-13 10:40:23
以前的项目用sqlserver做的数据库,现在变到mysql,关于分页的改动请指教?

以前sqlserver:
public class PageBean {

private int pagesize; //页大小
private int allcount; //总记录数
private int currpage; //当前页码
private int allpage; //总页数
private ArrayList data; //页面数据
public int getAllcount() {
return allcount;
}
public void setAllcount(int allcount) {
this.allcount = allcount;
}
public int getAllpage() { //总页数
return (allcount % pagesize == 0)?
allcount/pagesize : allcount/pagesize+1;
}
public void setAllpage(int allpage) {
this.allpage = allpage;
}
public int getCurrpage() {
return currpage;
}
public void setCurrpage(int currpage) {
this.currpage = currpage;
}
public ArrayList getData() {
return data;
}
public void setData(ArrayList data) {
this.data = data;
}
public int getPagesize() {
return pagesize;
}
public void setPagesize(int pagesize) {
this.pagesize = pagesize;
}
}

//分页查找全部商品信息的方法
public PageBean selectgs(int nowPage){
PageBean pb=new PageBean();
ArrayList list=new ArrayList();
try {
conn=new ConnectDB().getConn();
String sql="select count(*) from goodscon";
pstmt=conn.prepareStatement(sql);
rs=pstmt.executeQuery();
if(rs.next()){
pb.setAllcount(rs.getInt(1)); // 总纪录数
}
int pagesize = 6;
String sql1="select top " + pagesize + " * from goodscon where steid not in(select top " + pagesize * (nowPage - 1) +" steid from goodscon)";
pstmt=conn.prepareStatement(sql1);
rs=pstmt.executeQuery();
while(rs.next()){
goodscon gs=new goodscon();
gs.setSteid(rs.getInt("steid"));
gs.setStename(rs.getString("stename"));
gs.setStephoto(rs.getString("stephoto"));
gs.setStevalue(rs.getFloat("stevalue"));
gs.setCpgnjieshao(rs.getString("cpgnjieshao"));
gs.setStedesc(rs.getString("stedesc"));
gs.setStetime(rs.getString("stetime"));
gs.setSteversion(rs.getString("steversion"));
gs.setSteversionjs(rs.getString("steversionjs"));
list.add(gs);
}
pb.setCurrpage(nowPage); // 当前页
pb.setData(list); // 数据
pb.setPagesize(pagesize); // 页大小
} catch (SQLException e) {

e.printStackTrace();
}finally{
try {
if(rs!=null)
rs.close();
if( pstmt != null )
pstmt.close();
if( conn != null )
conn.close();
} catch (SQLException e) {

e.printStackTrace();
}
}
return pb;
}


ACTION里:
public ActionForward selectsp(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
Opergoodscon oper=new Opergoodscon();
// 页码
int pagecode = request.getParameter("page")==null? 1 :
Integer.parseInt(request.getParameter("page"));
PageBean pb=oper.selectgs(pagecode);
request.setAttribute("list", pb);
return mapping.findForward("selectsp");
}

请问变到mysql怎么改?
...全文
80 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ryo6688 2009-08-13
  • 打赏
  • 举报
回复
报错:java.lang.ArithmeticException: / by zero
at com.zg.servlet.PageBean.getAllpage(PageBean.java:19)

sqlserver:
CREATE TABLE goodscon ( --商品表
steid int IDENTITY (1, 1) NOT NULL , --编号
stename varchar (100) NOT NULL , --商品名
stetime datetime NULL , --上架时间
stephoto varchar (200) NULL , --图片
cpgnjieshao varchar(50) null, --产品功能介绍
stedesc varchar (1000) NULL , --订购说明
stevalue varchar (50) NULL , --价格
steversion varchar(50) NOT NULL , --产品版本
steversionjs varchar(4000) null --产品版本商品介绍
)

mysql:
CREATE TABLE goodscon ( --商品表
steid int NOT NULL auto_increment primary key , --编号
stename varchar (100) NOT NULL , --商品名
stetime timestamp NULL , --上架时间
stephoto varchar (200) NULL , --图片
cpgnjieshao varchar(50) null, --产品功能介绍
stedesc varchar (1000) NULL , --订购说明
stevalue varchar (50) NULL , --价格
steversion varchar(50) NOT NULL , --产品版本
steversionjs varchar(4000) null --产品版本商品介绍
)
zhang_yu_QIN 2009-08-13
  • 打赏
  • 举报
回复

String sql1="select top " + pagesize + " * from goodscon where steid not in(select top " + pagesize * (nowPage - 1) +" steid from goodscon)";



String sql1="select steid from goodscon limit " + pagesize + " where not in(select steid from goodscon limit " + pagesize * (nowPage - 1) +" )";


试试 如果不行的话. 你把你两张表的结构贴出来. 我在我本地试试..
sqz10200 2009-08-13
  • 打赏
  • 举报
回复
select * from table limit 1,10

从1读取10条
Ryo6688 2009-08-13
  • 打赏
  • 举报
回复
连接上MYSQL的数据库了,不是分页的已经可以运行了,就是分页这段,在我的这个项目里具体的SQL语句要怎么改,用定义好的PageBean
liu_zhaoqf 2009-08-13
  • 打赏
  • 举报
回复
如果你写的SQL语句在mysql里面都能运行通过的话,那就只需要改取得数据库连接的方法。
Abin-2008 2009-08-13
  • 打赏
  • 举报
回复
mysql 有 limit 分页啊

比如 :select * from table_name limit 0,15
limit 0,15 意思:从第一条开始取15条。
Ryo6688 2009-08-13
  • 打赏
  • 举报
回复
数据库换了,具体的SQL代码那块怎么改写?还有别的地方需要什么改动吗?
kbyst 2009-08-13
  • 打赏
  • 举报
回复
类文件不用改动 改动SQL就行啊

mysql(limit)
javagxc 2009-08-13
  • 打赏
  • 举报
回复
这个分页换到MySQL下也不用改很多啊,数据库换了就可以了啊
Ryo6688 2009-08-13
  • 打赏
  • 举报
回复
up

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧