精简版BBS学习札记(三)

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

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

  可是今天下午我就(pageNo - 1)这个问题考虑了一下午!为什么呢?如果是第一页呢?那(pageNo - 1)不就等于0了吗?可是在数据库的id里没有从0开始的!这就让我很纳闷了!最后一问才知道! 原来在mysql中规定分页查找第一页第一条就是从0开始的,和数组第一个开始的是下标为0而不是下标为1的意思一样!(这让我很郁闷!我想这位开发者当初是不是脑子一晕,把这一点认为是数组了?当然关于分页的知识我的课本没有涉及,如果有不合适的地方请指出!谢谢!)
   至于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() ;
   ...
%>

你可能感兴趣的:(oracle,sql,mysql,SQL Server,bbs)