MVC设计模式

1. Maven构建项目

Maven来创建Web项目,创建方式有两种:使用骨架和不使用骨架

使用骨架

具体的步骤包含:

1.创建Maven项目,给项目取好名字
2.选择自己下载的jdk版本
3.选择使用Web项目骨架
4.确认Maven相关的配置信息
5.完成项目创建
6.删除pom.xml中多余内容,只留下面的这些内容,注意打包方式 jar和war的区别
7.补齐Maven Web项目缺失的目录结构,默认没有java和resources目录

不使用骨架

具体的步骤包含:

1.创建Maven项目
2.选择不使用Web项目骨架,选择本地的jdk
3.完成项目的创建
4.在pom.xml设置打包方式为war
5.补齐Maven Web项目缺失webapp的目录结构
6.补充完后,调整一下项目结构

2. 三层架构模式

![在这里插入图片描述](https://img-blog.csdnimg.cn/74a41ed9aafd4f5c92e9775708f513a3.png在这里插入图片描述

在这里插入图片描述

MVC模式
在这里插入图片描述
在这里插入图片描述

Mybatis框架
在这里插入图片描述

1. Servlet

Servlet3.0版本之后,推出了各种Servlet基于注解式开发。优点是什么?
。开发效率高,不需要编写大量的配置信息。直接在java类上使用注解进行标注。
。web.xml文件体积变小了。
●并不是说注解有了之后,web.xml文件就不需要了:
。有一些需要变化的信息,还是要配置到web.xm|文件中。 -般都是注解+配置文件的开发模式。
。一些不会经常变化修改的配置建议使用注解。-些可能会被修改的建议写到配置文件中。
●我们的第一个注解:
jakarta.servlet.annotation.WebServlet
在Servlet类 上使用: @WebServlet,WebServlet注解中有哪些属 性呢?

name属性:用来指定Servlet的名字。 等同于:
urlPatterns属性: 用来指定Servlet的映射路径。 可以指定多个字符串。
loadOnStartUp属性: 用来指定在服务器启动阶段是否加载该Servlet。等同于: <1oad-on-startup>
value属性: 当注解的属性名是value的时候, 使用注解的时候,value属性名是可以省略的。
=注意:不是必须将所有属性都写上,只需要提供需要的。 (需要什么用什么。)
注意:属性是一个数组,如果数组中只有一个元素,使用该注解的时候,属性值的大括号可以省略。

●注解对象的使用格式:
@注解名称(属性名=属性值,属性名=属性值,属性名=属性…)
/ /@WebServLet(urlPatterns = {" /welcome1", ”/welcome2"})

//注意:当注解的属性是一个数组, 并且数组中只有 一个元素,大括号可以省略。
/ /@WebServLet (urLPatterns = " /welcome”)

//这个value属 性和urlPatterns属性一致, 都是用来指定ServLet的映射路径的。
//@WebServLet(value = {" /welcome1", ”/welcome2"})

//如果注解的属性名是value的话, 属性名也是可以省略的。
//@WebServLet(value =”/welcome1" )
//@WebServLet(" /welcome1")

1. Mybatis缓存机制

缓存: cache
缓存的作用:通过减少I0的方式,来提高程序的执行效率。
mybatis的缓存: 将select语句的查询结果放到缓存(内存)当中,下一次还是这条select语句的话,直接从缓存中取,不再查数据库。- -方面是减少了I0。另-面不再执行繁琐的查找算法。效率大大提升。

mybatis缓存包括:
一级缓存:将查询到的数据存储到SqlSession中。
二级缓存:将查询到的数据存储到SqISessionFactory中。
或者集成其它第三方的缓存:比如EhCache [Java语言开发的]、Memcache[C语言开发]的等。
缓存只针对于DQL语句,也就是说缓存机制只对应select语句。

在这里插入图片描述
一级缓存
一级缓存默认是开启的。不需要做任何配置。
原理:只要使用同一个SqlSession对象执行同一条SQL语句,就会走缓存。

二级缓存的范围是SqlSessionFactory。
使用二级缓存需要具备以下几个条件:

  1. 全局性地开启或关闭所有映射器配置文件中已配置的任何缓存。默认就是true,无需设置。
  2. 在需要使用二级缓存的Sq|Mapper.xml文件中添加配置:
  3. 使用二级缓存的实体类对象必须是可序列化的,也就是必须实现java.io.Serializable接口
  4. SqISession对象关闭或提交之后,-级缓存中的数据才会被写入到二级缓存当中。此时二级缓存才可用。
    二级缓存的失效:只要两次查询之间出现了增删改操作。二级缓存就会失效。[一级缓存也会失效]

mybatis分页

页码: pageNum (用户会发送请求,携带页码pageNum给服务器. )
每页显示的记录条数:pageSize,例如百度默认就是每页展示10条记录。

实际上每一次在进行分页请求发送的时候,都是要发送两个数据的:
页码pageNum要传送给服务器。
每页显示的记录条数pageSize也要传送给服务器。

前端提交表单的话,数据格式:
uri ?pageNum= 1&pageSize=10


mysql的limit关键字和分页

关于mysq1当中的分页sq1应该怎么写? limit关键字。
limit语法格式:
limit开始下标,显示的记录条数

limit startIndex, pageSize
select * from t_ car limit 0,3;
select * from t_ car limit 2; 和 select * from t_ car limit 0,2;  是等效的。

mysql当中起始行的下标从0开始。第一条记录的下标是0.

|假设每页显示3条记录:
第1页: limit 0,3 (0 1 2)
第2页: limit 3, 3 (3 4 5)
第3页: limit 6, 3 (6 7 8)
第4项: limit 9, 3 (9 10 11)
假设每页显示pageSize条记录:
第pageNum页: limit (pageNum- 1) *pageSize,pageSize
//每页显示的记录条数
int pageSize = 3;
// 页码
int pageNum = 10;
//起始下标
limt startIndex = (pageNum-1) * pageSize|

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值