jsp 28
equals/== 区分
前端
1)导入jquery
<script type="text/javascript" src="js/jquery-1.8.3.js"></script>
2)隔行变色
<script type="text/javascript">
$(document).ready(function () {
$("tr:odd").css("background-color","lightgrqy")
});
</script>
3)三层优化
面向接口开发
接口:interface ————》IXxxxService
实现类:implements————》XxxxServiceImpl
以后使用接口/实现类的时候:
父类可以指向子类(子类的子类)
接口 x = new 实现类();
2.DBUtil数据库帮助类(通用的),简化Dao 的代码冗余
DataBase Util
帮助类,xxx.util
3)报错14:39 Error running ‘tomcat’: Address localhost:1099 is already in use
C:\Users\asus>netstat -ano
活动连接
协议 本地地址 外部地址 状态 PID
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 1016
TCP 0.0.0.0:443 0.0.0.0:0 LISTENING 5640
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4
TCP 0.0.0.0:902 0.0.0.0:0 LISTENING 4392
TCP 0.0.0.0:912 0.0.0.0:0 LISTENING 4392
TCP 0.0.0.0:1099 0.0.0.0:0 LISTENING 5180
TCP 0.0.0.0:3306 0.0.0.0:0 LISTENING 2132
4)方法重构
5)int,double,float等都是基本类型,不是类,更没有父类了,所以你说的不行,无法通过编译
但是如果你改成对应的包装类Integer或者Double、Float等作为子类的返回类型,就可以了,这叫做协变返回
分页
推导公式
某一页的数据从哪儿开始 从哪儿结束
oracle
第n页 | 开始 | 结束 |
---|---|---|
1 | 1 | 10 |
2 | 11 | 20 |
3 | 21 | 30 |
4 | … | … |
5 | (n-1)*10+1 | n*10 |
结论:(n-1)X10+1—— nX10
mysql从0开始计数(数据库底层特性)
第n页 | 开始 | 结束 |
---|---|---|
0 | 0 | 9 |
1 | 10 | 19 |
2 | 20 | 29 |
3 | 30 | 39 |
4 | … | … |
5 | n*10 | (n+1)*10-1 |
第0页:SELECT * FROM student LIMIT 0,10
第一页:SELECT * FROM student LIMIT 10,10
第n页:SELECT * FROM student LIMIT n*10,10
分页实现
数据总数 SELECT COUNT(*) FROM student
页面大小(每页显示的条数) 用户自定义
总页数 数据总数/页面大小
总页数=数据总数%页面大小==0?数据总数/页面大小:数据总数/页面大小+1
当前页的页码 用户自定义
当前类对象集合 查数据库
#### ResultSet
while (rs.next()) {
int sid = rs.getInt("id");
String sname = rs.getString("name");
int sage = rs.getInt("age");
String saddress = rs.getString("address");
students.add(new Student(sid, sname, sage, saddress));
}
@param columnIndex the first column is 1, the second is 2, ...
@return the column value;
int getInt(String columnLabel);参数为数据库的列数,从1开始,返回取得对应的数据
int getInt(String columnLabel);参数为数据库的列名
String getString(int columnIndex);
String getString(String columnLabel);
sql 语句
SELECT COUNT(*) all FROM student
(*)代表查询哪一列
select count(1) from student比count(*)效率高
1)封装分页所需数据
public class Page {
//当前页
private int currentPage;
//页面大小
private int pageSize;
//当前页数据集合
private List<Student> students;
//总数据量
private int totalCount;
//总页数
private int totalPage;
}
封装在javaBean
2)servlet取得数据库所有数据
int currentPage = Integer.parseInt(CPage);
int pageSize = 3;
List<Student> students = studentService.queryStudentsByPage(currentPage,pageSize);
Page page = new Page();
//先算总数据量,再赋值页面大小,根据前两者得出总页数
page.setTotalCount(studentService.getTotalCount());
page.setCurrentPage(currentPage);
page.setPageSize(pageSize);
page.setStudents(students);
req.setAttribute("page",page);
req.getRequestDispatcher("index1.jsp").forward(req,resp);
3)前端获取request域里面的数据(存在了page里面)
注意:page是jsp内置对象
<%
Page page1 = (Page) request.getAttribute("page");
for (Student s :
page1.getStudents()) {
%>
4)分页用户自定义每页显示几条数据