06.过滤器和监听器
案例复习:123456789101112131415161718192021222324252627281.分页对象: 属性: totalpage:总页数 currentPage:当前页 rows:每一页的条数 List<T> list:当前页面的数据public class PageBean<T>{ private Integer totalPage; private Integer currentPage; private Integer rows; private List<T> list;}servlet中一共有三个域request:一次请求中生效session:一次会话中生效servletcontext:整个web工程中都是生效的。pagecontext 仅仅在当前页面中生效。requestsessionapplication
FIlter:过滤器12345678910111213141516171819202122232425262728293031323334353637383940414243 ...
07.Docker部署应用
[toc]
1. 应用部署1.1 MySql部署
-p 代表端口映射,格式为 宿主机映射端口:容器运行端口
-e 代表添加环境变量 MYSQL_ROOT_PASSWORD 是root用户的登陆密码
12345678910111213#拉取mysql镜像docker pull mysql:5.7#创建容器docker run -it --name=mysql5.7 -e MYSQL_ROOT_PASSWORD=123456 -p 3307:3306 mysql:5.7#远程登录mysql #连接宿主机的IP ,指定端口为3307#连接测试[root@iZuf693tkif8cwd2lnbg1gZ ~]# docker exec -it mysql5.7 /bin/bashroot@0c16a7b2748c:/# mysql -u root -p#mysql日志查看 docker logs mysql5.7
1.2 tomcat部署
-v : 宿主机目录:容器目录
12345#拉取镜像docker pull tomcat:8-jre8#创建容器#创建容器 -p表示 ...
07.MyBatisPlus实现逻辑删除
[toc]
MyBatisPlus实现逻辑删除
物理删除:真实删除,将对应数据从数据库中删除,之后查询不到此条被删除数据。
逻辑删除:假删除,将对应数据中代表是否被删除字段状态修改为“被删除状态”,之后在数据库中仍旧能看到此条数据记录。
![12 mp实现逻辑删除功能](/medias/mybatisplus/12 mp实现逻辑删除功能.png)
1. 数据库中添加 deleted字段1ALTER TABLE `user` ADD COLUMN `deleted` boolean
2. 实体类添加deleted字段
并加上 @TableLogic 注解 和 @TableField(fill = FieldFill.INSERT) 注解
123@TableLogic@TableField(fill = FieldFill.INSERT)private Boolean deleted;
3. 元对象处理器接口添加deleted的insert默认值12345678910111213141516171819/** * @Date 2020/4/10 12:49 * @Vers ...
07.排序算法之冒泡排序
排序算法之冒泡排序
80000长度的数据值在[0,800000)之间的数据本机使用冒泡排序,耗时10s;
1. 基本介绍 冒泡排序(Bubble Sorting)的基本思想是:通过对待排序序列从前向后(从下标较小的元素开始), 依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就象水底下的气泡一样逐渐向上冒。
1.1 优化 因排序的过程中,各元素不断接近自己的位置, 如果一趟比较下来没有进行过交换 , 就说明序列有序,因此要在排序过程中设置一个标志 flag 判断元素是否进行过交换。从而减少不必要的比较。(这里说的优化,可以在冒泡排序写好后,在进行)
1.2 演示冒泡过程
一共进行 数组的大小-1 次 大的循环
每一趟排序的次数在逐渐的减少
如果我们发现在某趟排序中,没有发生一次交换, 可以提前结束冒泡排序。这个就是优化
2. 冒泡排序123456789101112131415161718 int[] array = {3, 9, -1, 10, 20};System.out.println(" ...
07.数据库事
庭院深深深几许,杨柳堆烟,帘幕无重数。
——欧阳修《蝶恋花》
事务
什么是事务?
在实际的开发过程中,一个业务操作如:转账,往往是要多次访问数据库才能完成的。转账是一个用户扣钱,另一个用户加钱。如果其中有一条 SQL 语句出现异常,这条 SQL 就可能执行失败。
事务执行是一个整体,所有的 SQL 语句都必须执行成功。如果其中有 1 条 SQL 语句出现异常,则所有的 SQL 语句都要回滚,整个业务执行失败。
例如转账的操作
如果你不是很明白可以通过下面这个例子来结合着理解!
1. 通过案例理解事务12345678910111213-- 数据准备create table account (id int primary key auto_increment,name varchar(10),money double);-- 添加数据insert into account (name, money) values ('dd', 1000), ('mm', 1000);
模拟dd给mm转 500 元钱,一个转账的业务操作最少 ...
07.面向对象及封装特性
算好春长在,好花长见,原只是、人憔悴。
——程垓《水龙吟》
[TOC]
面向对象1. 面向对象
Java语言是一种面向对象的程序设计语言,而面向对象思想是一种程序设计思想,我们在面向对象思想的指引下,使用Java语言去设计、开发计算机程序。 这里的**对象泛指现实中一切事物,每种事物都具备自己的属性和行为**。面向对象思想就是在计算机程序设计过程中,参照现实中事物,将事物的属性特征、行为特征抽象出来,描述成计算机事件的设计思想。 它区别于面向过程思想,强调的是通过调用对象的行为来实现功能,而不是自己一步一步的去操作实现。
举例:比如说洗衣服
面向过程:把衣服脱下来 –>找一个盆–>放点洗衣粉–>加点水–>浸泡10分钟–>揉一揉–>清洗衣服–>拧干–>晾起来。(强调步骤)
当需要实现一个功能的时候,每一个步骤都亲力亲为,详细的处理每一个细节
面向对象:把衣服脱下来 –>打开全自动洗衣机–>扔衣服–>按钮–>晾起来(强调对象,这里的对象就是洗衣机)
当需要实现一个功能的时候,不需要关系具体的实现步骤,找一个具 ...
07.ajax和json
[TOC]
ajax和json1.ajax
ajax:异步的javascript和xml
同步和异步:客户端和服务器端相互通信的基础上
客户端必须等待服务器的响应,在次期间,在等待的响应客户端不能做其他操作,这就是同步。
客户端必须等待服务器的响应,在此期间,在等待的响应的客户端可以进行其他的操作,这就是异步。
ajax技术:是一种在不需要重新加载浏览器页面的情况下,实现部分页面更新。通过在后台与服务器进行数据交换,ajax可以使当前的网页实现异步更新。在不实现整个网页重新加载的前提下,实现部分页面内容的更新。
如果不使用ajax技术,页面内容的替换,必须刷新整个网页,使用ajax技术可以提升用户体验。
XMLHttpRequest 是 AJAX 的基础。
XMLHttpRequest 术语缩写为XHR,中文可以解释为可扩展超文本传输请求。
XMLHttpRequest 对象可以在不向服务器提交整个页面的情况下,实现局部更新网页。
XMLHttpRequest的对象用于客户端和服务器之间的异步通信。
它执行以下操作:
在后台从客户端发送数据
从服务 ...
08.Dockerfile
[toc]
1. 迁移与备份1.1 容器保存为镜像12#将容器保存为镜像docker commit 30d9c3d682e1 tomcat8080
1.2 镜像备份我们可以通过以下命令
12#将镜像保存为tar文件(保存在当前目录下)docker save -o localTomcat8080.tar tomcat8080
1.3 镜像恢复与迁移
-i 输入的文件
123#执行此命令进行恢复docker load -i mynginx.tar#执行后再次查看镜像,可以看到镜像已经恢复
2. Dockerfile2.1 什么是Dockerfile?Dockerfile是由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新的镜像。
对于开发人员:可以为开发团队提供一个完全一致的开发环境;
对于测试人员:可以直接拿开发时所构建的镜像或者通过Dockerfile文件构建一个新的镜像开始工作了;
对于运维人员:在部署时,可以实现应用的无缝移植。
2.2 常用命令
命令
作用
FROM image_name:tag
定义了使用哪个基础镜像启动构建流程
...
08.Java基础之Object类详解
两情若是久长时,又岂在朝朝暮暮。
——秦观《鹊桥仙》
## 1. Object类详解
1.1 Object类在学习Java中基础类之前我们需要了解Object这个类!
Object类是所有类的超类, Object是Java语言中唯一一个没有父类的类。
一个类可以不是Object类的直接子类,但一定是Object类的子类,Java中的每一个类(包括数组)都是从Object扩展来的。
在Object类中定义的方法,在所有类中都可以使用。
java.lang Java语言包(包含String、Math、System等类),任何类中,该包中的类都会被自动导入。
java.util 包含一些实用的工具类( 包含 list, calendar, date等类)
java.awt 图形用户界面包。
java.io 提供多种输入/输出功能的类。
java.net 提供网络应用功能的类。
1.2 Object类中的方法
源码:
private static native void registerNatives(); 是一个native方法,说明这个方法的实现不是在ja ...
08.MyBatisPlus性能分析
[toc]
MyBatisPlus性能分析-开发环境使用
性能分析拦截器,用于输出每条 SQL 语句及其执行时间。
SQL 性能执行分析,开发环境使用,超过指定时间,停止运行。有助于发现问题
1. 配置插件1.1 参数说明
参数:maxTime: SQL 执行最大时长,超过自动停止运行,有助于发现问题。
参数:format: SQL是否格式化,默认false。
1.2 在 MybatisPlusConfig 中配置
public PerformanceInterceptor performanceInterceptor();
123456789101112131415161718192021222324252627/** * @Date 2020/4/10 22:53 * @Version 10.21 * @Author DuanChaojie */@Configuration@EnableTransactionManagement@MapperScan("cn.justweb.mybatisplus.mapper")public class MyBa ...