精简版BBS学习札记(三)

1、在mysql中的分页语句,如:
select * from article where pid = 0 limit (pageNo - 1) *pageSize, pageSize ;
意思是:查找article表中pid为0的信息,并且从(pageNo)开始计算,每页显示pageSize个信息!

[color=red]其中(pageNo - 1)的意思是从第几条开始计算,pageSize是每页显示多少条![/color]

可是今天下午我就(pageNo - 1)这个问题考虑了一下午!为什么呢?如果是第一页呢?那(pageNo - 1)不就等于0了吗?可是在数据库的id里没有从0开始的!这就让我很纳闷了!最后一问才知道![color=red]原来在mysql中规定分页查找第一页第一条就是从0开始的,和数组第一个开始的是下标为0而不是下标为1的意思一样!(这让我很郁闷!我想这位开发者当初是不是脑子一晕,把这一点认为是数组了?当然关于分页的知识我的课本没有涉及,如果有不合适的地方请指出!谢谢!)[/color]
至于SQL Server或者oracle的分页语句是不是这样我就不知道,因为这两个我不常用!等学过,注意一下!
下面是我在这个项目中写的分页语句:

/分页查询!
int startPos = (pageNo - 1) * pageSize ;

Statement stmt = conn.createStatement() ;
String sql = "select * from article where pid=0 order by pdate desc limit " + startPos + " , " + pageSize ;
ResultSet rs = stmt.executeQuery(sql) ;


2、验证SQL语句是否正确的方法:
把所写的SQL语句在控制台(或者客户端)上,打印出来,运行一下!观察是不是和预想的一样!

3、在用JDBC的知识写SQL语句时,一定要注意空格问题!

4、在BBS中实际显示帖子时按时间倒序排列的,则相应的SQL语句为:
select * from article where pid = 0 order by pdate desc limit (pageNo - 1), pageSize ;

5、求BBS中总记录数的语句(下面的SQL可能不是,但是类似!)

//查找BBS中主题的总个数
String sqlCount = "select count(*) from article where pid = 0" ;
ResultSet rsCount = stmtCount.executeQuery(sqlCount) ;
rsCount.next() ;
int totalRecords = rsCount.getInt(1) ; //这样就取得了BBS中主题的总个数!


6、求BBS中的有多少页的语句

//求得BBS中含有多少页!
int totalPages = totalRecords % pageSize == 0 ? totalRecords / pageSize : totalRecords / pageSize + 1 ;
if (pageNo > totalPages) {
pageNo = totalPages ;
}

//这样就可以把能整除与不能整除的都考虑进去了!


7、在JS中常常会见到<!-- -->(这是HTML的注释)不会影响JS的执行!(在JS中的注释只有两种:①:// ②:/**/)但会影响到HTML。
当一个HTML的编辑器来可视化的编辑一段含有JS的HTML文件,若不支持JS时,则这段JS将会对其产生影响!但是如果用<!-- -->这种方式“注掉”这段JS,这段JS将不会对编辑器产生影响了!而且又不影响JS运行!

8、对客户端检查室一种用户友好的体验,但是服务器端的检查室永远替代不了的。所以不管客户端是否检查,服务器端必须检查!

9、要将数据从DB中拿出来,并在页面中以表格的形式展现出来,相关语句为:

[color=red]这里一定要注意while语句的位置!!!不能写到JSP区域中!![/color]
<body>
<table border="1">
<%
while(rs.next()) {
%>
<tr>
<td><%=rs.getInt("id")%></td>
<td><%=rs.getString("title")%></td>
</tr>
<%
}
%>
</table>
</body>
<%
rs.close() ;
...
%>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值