java web 接口优化_JavaWeb - 三层优化

三层优化

加入接口

建议面向接口开发:先接口-再实现类

service、dao加入接口

接口与实现类的命名规范

起名

例子

接口:interface

实体类Service

IStudentService

实现类:implements

实体类ServiceImpl

StudentServicelmpl接口:实体类层所在包名IStudentService、IStudentDao

接口所在的包: xxx.servicexx.dao

实现类:实体类层所在包名ImplStudentServiceImpl、StudentDaoImpl

实现类所在的包:xxx.service.implxx.dao.impl

以后使用接口/实现类时,推荐写法:

接口 x = new 实现类();

IStudentDao studentDao = new StudentDaoImpl();

DBUtil 通用的数据库帮助类,可以简化Dao层的代码量

帮助类 一般建议写在 xxx.util包

A

{

a(){

B.connection

}

}

B

{

static Connection connection =..

b{

}

}

方法重构: 将多个方法 的共同代码 提炼出来,单独写在一个方法中,然后引入该方法即可

a()

{

..

c();

..

}

b()

{

..

c();

..

}

c()

{

[..

..

...

..]

}

Web调试:

与java代码的调试 区别:启动方式不同

index.jsp -> index_jsp.java -> index_jsp.class

jsp->java->class

jsp翻译成的Java 以及编译后的class文件 存在于tomcat中的work目录中

10000

分页:5变量(属性)

数据总数 (select count(*) from xxx , 查数据库)

页面大小(页面容量,每页显示的数据条数)(用户自定义)

总页数 (自动计算)

800:10= 80页

总页数= 数据总数 /页面大小

802:10= 800/10 +1 ;

总页数= 数据总数 /页面大小 + 1;

–>通式

总页数= 数据总数 % 页面大小==0 ?数据总数 /页面大小:数据总数 /页面大小 + 1;

注意:自动计算的时机:当 数据总数 和 页面大小都被赋值以后,自动计算总页数。

当前页码(用户自定义)

实体类对象集合(当前页的数据集合):依赖于数据库 (查数据库)

假设: 每页显示10条(页面大小=10)

select * from student where id>=起始 and id<=终止;

页数

起止

起止等价写法

1

1-10

(页数-1)10+1-页数10

2

11-20

3

21-30

某一页的数据 起止:

(页数-1)*10+1-页数*10

select * from student where sno>=(页数-1)*10+1 and sno<=页数*10;

此种分页SQL 严格依赖sno的数据, 一旦sno出现了间隙(裂缝),则无法满足每页10条

将此SQL 转换: 1.有rownum 2.不能有rownum>xx

转换的核心: 将rownum从伪列 转换为 一个 临时表的 普通列。

select *from

(

select rownum r,t.*from

(select s.* from student s order by sno asc) t

) where r>=(页数-1)*10+1 and r<=页数*10;

优化:

select *from (

select rownum r,t.*from

(select s.* from student s order by sno asc) t

where rownum<=页数*页面大小

) where r>=(页数-1)*页面大小+1 ;

1

2

3

6

7

8

9

11

12

13

21

22

23

dao和DBUtil的区别:

dao 是处理特定 类的 数据库操作类:

DBUtil是通用 数据库操作类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值