常用注解
常用注解Mybatis@Param在Mybatis代理模式的时候,用于传递各种参数的时候,给参数起别名
例子:
接口:
123456public interface EmpMapper { List<Emp> findByDeptnoAndSal(@Param("deptno") int deptno,@Param("sal") double sal); List<Emp> findByDeptnoAndSal4(@Param("empa") Emp empa,@Param("empb") Emp empb);}
mapper映射文件:
12345678910111213141516171819202122232425262728293031<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-/ ...
Servlet进阶
Servlet进阶内容概述
Cookie和Session的引入Cookie和Session技术的目的:为了解决http协议是无状态的。http协议无状态的意思是,浏览器发起请求(请求中一般是需要携带数据的),服务器接收到请求后调用相关的后端代码去处理该请求,处理完后会响应浏览器。 本次请求与响应结束后,相关的请求与响应数据就会销毁。
如果浏览器又发送了请求,而且本次请求需要用到上次请求传递过的数据,那么本次请求又要重新带上上次请求传递的数据。这样效率不高,而且用户体验度也差!
如何记住这些想要记住的信息呢?使用Cookie技术或者Session技术。
通过一个生活案例类比,来大致了解Cookie和Session的特点,后面再详细学习。
Cookie对象Cookie的引入问题:
为了解决http协议是无状态的。
http协议无状态的意思是,浏览器发起请求(请求中一般是需要携带数据的),服务器接收到请求后调用相关的后端代码去处理该请求,处理完后会响应浏览器。 本次请求与响应结束后,相关的请求与响应数据就会销毁。
如果浏览器又发送了请求,而且本次请求需要用到上 ...
JSP
JSP主要内容
JSPJSP的基础语法JSP的引入和原理 JSP:Java Server Page SUN 公司提供的动态网页编程技术,是 Java Web 服务器端的动态资源。
它相比 html 而言,html是静态页面,只能为用户提供静态数据,而 Jsp 技术允许在页面中嵌套 java 代码,为用户提供动态数据(比如可以从服务器中获取数据库中数据到jsp中去)。我们不可能所有数据都写死在页面上,所以在这里要学习jsp动态网页技术。
相对servlet而言,servlet也确实可以向页面输出html标签,比如:
但是如果想要自行用代码对数据进行排版,太麻烦了啊!此时就需要jsp,jsp 除了可以用 java 代码产生动态数据的同时,也很容易对数据进行排版,因为在jsp中可以编写html代码的。
所以:
(1)不管是 JSP 还是 Servlet,虽然都可以用于开发动态 web 资源,但由于这 2 门技术各自的特点,在长期的软件实践中,人们逐渐把 servlet 作为 web 应用中的控制器组件来使用(后台代码), ...
Servlet入门
Servlet入门内容概述
JavaEE(Java Enterprise Edition),Java企业版,是一个用于企业级web开发(不需要使用控制台)平台。最早由Sun公司定制并发布,后由Oracle负责维护。
JavaEE平台规范了在开发企业级web应用中的技术标准。
在JavaEE平台共包含了13个技术规范(随着JavaEE版本的变化所包含的技术点的数量会有增多)。它们分别是:JDBC、JNDI、EJB、RMI、Servlet、JSP、XML、JMS、Java IDL、JPA、JTA、JavaMail和JAF。
浏览器和服务器的交互模式
客户端
浏览器
服务端
服务器(高性能的计算机相对于普通的PC来说,服务器在稳定性、安全性、性能等方面有更高的要求)
请求
客户端发送数据给服务端的过程
响应
服务端返回数据给客户端的过程
HTTP协议
客户端请求和响应的标准协议
HTTP协议 HTTP 协议(Hypertext Transfer Protocol, 超文本传输协议),是一个客户端请求和响应的标准协议,这个协议详细 ...
开发流程化
SpringBoot+Vue开发流程这节课目的是分享一下我自己的开发流程,如果需要深入学习还是得自己在b站看视频边看边学的。
这里演示一个登录注册的小demo吧
后端项目初始化环境准备然后启动一下看看是否报错
配置maven
整合依赖MyBatis-Plus官网:快速开始 | MyBatis-Plus
1、在pom.xml添加下面的依赖并且删除MyBatis的依赖防止依赖冲突
SpringBoot2.x
12345<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.10.1</version></dependency>
SpringBoot3.x
12345<dependency> <groupId>com.baomidou</groupId> <artif ...
队列和栈
队列和栈先入先出的数据结构在 FIFO 数据结构中,将首先处理添加到队列中的第一个元素。
如上图所示,队列是典型的 FIFO 数据结构。插入(insert)操作也称作入队(enqueue),新元素始终被添加在队列的末尾。 删除(delete)操作也被称为出队(dequeue)。 你只能移除第一个元素。
队列 - 实现为了实现队列,我们可以使用动态数组和指向队列头部的索引。
如上所述,队列应支持两种操作:入队和出队。2*入队会向队列追加一个新元素,而出队会删除第一个元素。 所以我们需要一个索引来指出起点。
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980// 定义一个队列类 MyQueueclass MyQueue { // 用于存储队列中的元素 private List<Integer> data; ...
链表
链表单链表单链表中的每个结点不仅包含值,还包含链接到下一个结点的引用字段。通过这种方式,单链表将所有结点按顺序组织起来。
下面是一个单链表的例子:
蓝色箭头显示单个链接列表中的结点是如何组合在一起的。
结点结构
以下是单链表中结点的典型定义:
12345678// Definition for singly-linked list.public class SinglyListNode { int val; SinglyListNode next; SinglyListNode(int x) { val = x; }}
操作与数组不同,我们无法在常量时间内访问单链表中的随机元素。 如果我们想要获得第 i 个元素,我们必须从头结点逐个遍历。 我们按索引来访问元素平均要花费 O(N) 时间,其中 N 是链表的长度。
例如,在上面的示例中,头结点是 23。访问第 3 个结点的唯一方法是使用头结点中的“next”字段到达第 2 个结点(结点 6); 然后使用结点 6 的“next”字段,我们能够访问第 3 个结 ...
java8新特性
java8新特性Lambda表达式这是 Java 8 最受关注的特性。它允许把函数作为一个方法的参数(函数作为参数传递进方法中)。
语法:(parameters) -> expression 或 (parameters) -> { statements; }
12345678910// 旧方式new Thread(new Runnable() { @Override public void run() { System.out.println("Hello World"); }}).start();// Java 8 Lambda 方式new Thread(() -> System.out.println("Hello World")).start();
函数式接口Lambda 表达式必须依赖于函数式接口。
定义:一个接口中有且仅有一个抽象方法(但可以有多个默认方法或静态方法)。
注解:@FunctionalInterface(可选,用于编译器检查)。 ...
无题
Docker 基础篇1、Docker简介是什么问题:为什么会有docker出现假定您在开发一个尚硅谷的谷粒商城,您使用的是一台笔记本电脑而且您的开发环境具有特定的配置。其他开发人员身处的环境配置也各有不同。您正在开发的应用依赖于您当前的配置且还要依赖于某些配置文件。此外,您的企业还拥有标准化的测试和生产环境,且具有自身的配置和一系列支持文件。您希望尽可能多在本地模拟这些环境而不产生重新创建服务器环境的开销。请问?您要如何确保应用能够在这些环境中运行和通过质量检测?并且在部署过程中不出现令人头疼的版本、配置问题,也无需重新编写代码和进行故障修复?
答案就是使用容器。Docker之所以发展如此迅速,也是因为它对此给出了一个标准化的解决方案——-系统平滑移植,容器虚拟化技术。
环境配置相当麻烦,换一台机器,就要重来一次,费力费时。很多人想到,能不能从根本上解决问题,软件可以带环境安装?也就是说,安装的时候,把原始环境一模一样地复制过来。开发人员利用 Docker 可以消除协作编码时“在我的机器上可正常工作”的问题。
docker理念Docker是基于Go语言实现的云开源项目。Docker的主 ...
数组和字符串(算法)
数组和字符串(算法)数组和列表、集合之间有什么不同?集合:一个比较抽象的概念,集合里元素类型不一定相同,集合里的元素没有顺序。
列表:没有索引,有顺序,类型没有限制,地址可以相邻也可以不相邻。
数组:有索引,有顺序,类型相同,地址相同
数组中的查询按位置查询。时间复杂度:O(1)。索引+偏移量(下标)按值查询。时间复杂度:O(N)。计算机不知道个位置处的值信息,需要一一查询判断。数组添加元素时间复杂度:O(n)删除元素:时间复杂度:O(n)
处理数组常用APIArrays类:
1234567891011121314151617181920212223//Arrays.toString(数组)方法。方法作用:快速输出数组内容。//Arrays.sort(数组)。方法运用:给数组排序,默认升序//Arrays.sort(数组名,起始下标,排序个数)。对字符串进行排序时,是对每一个字符比较,而不是简单的比较长度//Arrays.equals()方法。方法作用:比较两个数组内容是否相等//Arrays.equals()是比较数组内容,而a.equals(b) 这样的方法是比较地址值//Arra ...






