03.MybatisPlus的增删改查
[toc]
MyBatisPlus实现增删改查1. 插入数据insert
主键生成策略我们使用默认的ID_WORKER或ID_WORKER_STR策略
123456789101112131415161718192021222324@RunWith(SpringRunner.class)@SpringBootTestpublic class CRUDTests { @Autowired private UserMapper userMapper; @Test public void testInsert(){ User user = new User(); user.setName("HeMiao2"); user.setAge(28); user.setEmail("55317332@qq.com"); int result = userMapper.insert(user); // 影响的行数 ...
03.Shell编程
Shell编程[toc]
1. Shell简介
Shell 是一个命令行解释器,它为用户提供了一个向 Linux 内核发送请求以便运行程序的界面系统级程序,用户可以用 Shell 来启动、挂起、停止甚至是编写一些程序.
2. Shell脚本格式要求
脚本以 # !/bin/bash 开头
脚本需要有可执行权限
3. Shell的变量
Linux Shell 中的变量分为,系统变量和用户自定义变量。
系统变量:$HOME、$PWD、$SHELL、$USER 等等
myShell.sh
1234567891011121314151617181920212223242526272829303132333435 #!/bin/bash echo "Hello shell!"#输出系统变量 echo "PATH=$PATH" echo "USER=$USER" A=100 echo "A=$A" #撤销变量unset unset A echo "A=$A" ...
03.servlet体系和Http
[TOC]
servlet体系结构
servlet—是一个接口 实现GenericServlet—是一个抽象类 继承HttpServlet—是一个抽象类
==GenericServlet== :
将servlet接口中的其他的方法都给了默认实现,只将service方法作为抽象方法。定义一个Servlet类时,可以继承GenericServlet,重写他的service方法就可以了。如果定义一个Servlet类时,可以实现Servlet接口,重写他的(init() , getServletConfig() , service() , getServletInfo() , **destroy()**)
==HttpServlet==:对http协议的封装的servlet类。 使用:定义一个类继承HttpServlet,然后重写doGet和doPost方法就可以了。
1234567@WebServlet(urlPatterns = {"/student","/student1"},loadOnS ...
04.Cookie和Session
会话技术:cookie和session1. 会话技术
一次会话包含了多次请求和响应
一次会话:浏览器第一次发送请求的时候建立连接,建立会话,直到有一方断开的时候会话结束。
作用:==共享数据==
方式:
1. 客户端会话技术:cookie
2. 服务器端会话技术:session
2. Cookie
概念:客户端会话技术,将共享的数据放到浏览器端
2.1 步骤
创建一个cookie的对象,绑定数据。
1new Cookie(String name,String value);
发送cookie给浏览器
1response.addCookie(Cookie cookie);
获取cookie,拿到数据
1Cookie[] cookies = request.getCookies();
2.2 实现原理 ==基于响应头set-cookie和请求头cookie实现的。==
2.3 cookie细节2.3.1 一次是否可以发送多个cookie?
可以,在服务器端创建多个cookie对象,使用response调用多次 addCookie 方法发送给浏览器。
2.3.2 cooki ...
04.DQL查询语句-排序和分组
只愿君心似我心,定不负相思意。
——李之仪《卜算子》
第一部分 DQL查询语句1.1 排序
asc 升序,默认值
desc 降序
通过order by 子句,可以将查询出的结果进行排序(排序只是显示方式,不会影响数据库中数据的顺序)
12-- 语句select * from 表名 where 字段=值 order by 字段名 [asc];
1.1.1 单列排序
什么是单列排序?只按某一个字段进行排序
12-- 查询所有数据,使用年龄降序排序select * from student order by age desc;
1.1.2 组合排序
什么是组合排序?同时对多个字段进行排序,如果第 1 个字段相等,则按第 2 个字段排序,依次类推。
12345select * from 表名 where 字段=值 order by 字段名 1 [ASC|DESC], 字段名 2 [ASC|DESC];-- 查询所有数据,在年龄降序排序的基础上,如果年龄相同再以数学成绩升序排序select * from student order by age desc, math a ...
04.Docker入门
[toc]
Docker1. 什么是Docker
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
2. 为什么选择Docker?Docker是供开发人员和系统管理员 使用容器构建,运行和共享应用程序的平台。使用容器部署应用程序称为容器化。容器并不是新事物,但是它们用于轻松部署应用程序的用途是。
容器化越来越受欢迎,因为容器是:
灵活:即使最复杂的应用程序也可以容器化。
轻量级:容器利用并共享了主机内核,在系统资源方面比虚拟机更有效。
可移植性:您可以在本地构建,部署到云并在任何地方运行。
松散耦合:容器是高度自给自足并封装的容器,使您可以在不破坏其他容器的情况下更换或升级它们。
可扩展:您可以在数据中心内增加并自动分布容器副本。
安全:容器将积极的约束和隔离应用于流程,而无需用 ...
04.MyBatisPlus的主键生成策略
[toc]
主键生成策略
参考资料:分布式系统唯一ID生成方案汇总:https://www.cnblogs.com/haoxinyue/p/5208136.html
系统唯一ID是我们在设计一个系统的时候常常会遇见的问题,也常常为这个问题而纠结。生成ID的方法有很多,适应不同的场景、需求以及性能要求。所以有些比较复杂的系统会有多个ID生成的策略。
主键自增策略
要想主键自增需要配置如下主键策略
需要在创建数据表的时候设置主键自增
实体字段中配置 @TableId(type = IdType.AUTO)
123// 要想影响所有实体的配置,可以设置全局主键配置@TableId(type = IdType.AUTO)private Long id;
12#全局设置主键生成策略mybatis-plus.global-config.db-config.id-type=auto
优点:
简单,代码方便,性能可以接受。
数字ID天然排序,对分页或者需要排序的结果很有帮助。
缺点:
不同数据库语法和实现不同,数据库迁移的时候或多数据库版本支持的时候需要处 ...
00.数据结构之栈
数据结构之栈Stack
栈的应用场景
子程序的调用:在跳往子程序前,会先将下个指令的地址存到堆栈中,直到子程序执行完后再将地址取出,以回到原来的程序中。
处理递归调用:和子程序的调用类似,只是除了储存下一个指令的地址外,也将参数、区域变量等数据存入堆栈中。
表达式的转换[中缀表达式转后缀表达式]与求值(实际解决)。
二叉树的遍历。
图形的深度优先(depth 一 first)搜索法。
1. 栈入门
栈是一个 先入后出(FILO-First In Last Out) 的有序列表。
栈(stack) 是限制线性表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性表。 。 允许插入和删除的一端,为 变化的一端,称为栈顶(Top) ,另一端为 固定的一端,称为栈底(Bottom) 。
根据栈的定义可知 , 最先放入栈中元素在栈底 , 最后放入的元素在栈顶 , 而删除元素刚好相反 , 最后放入的元素最先删除,最先放入的元素最后删除
图解方式说明出栈(pop) 和入栈(push)
1.1 使用数组模拟栈12345678910111213141516171819202122232 ...
04.运算符总结
雅态妍姿正欢洽,落花流水忽西东。
——柳永《雪梅香》
[TOC]
1. 运算符1.1 算数运算符
需要注意++ 和 –
+
加法运算字符串连接运算
-
减法运算
*
乘法运算
/
除法运算
%
取模运算,两个数字相除取余数
++ --
自增自减运算
1.2 赋值运算符
赋值运算符,就是将符号右边的值,赋给左边的变量。
=
等于号
+=
加等于
-=
减等于
*=
乘等于
/=
除等于
%=
取模等
1.3 比较运算符
比较运算符,是两个数据之间进行比较的运算,运算结果都是布尔值true或者false 。
==
比较符号两边数据是否相等,相等结果是true。
<
比较符号左边的数据是否小于右边的数据,如果小于结果是true。
>
比较符号左边的数据是否大于右边的数据,如果大于结果是true。
<=
比较符号左边的数据是否小于或者等于右边的数据,如果大于结果是false。
>=
比较符号左边的数据是否大于或者等于右边的数据,如果小于结果是false。
!=
不等 ...
05.Docker安装
[toc]
Docker安装与启动1. 安装Docker Docker官方建议在Ubuntu中安装,因为Docker是基于Ubuntu发布的,而且一般Docker出现的问题Ubuntu是最先更新或者打补丁的。在很多版本的CentOS中是不支持更新最新的一些补丁包的。
由于我们学习的环境都使用的是CentOS,因此这里我们将Docker安装到CentOS上。注意:这里建议安装在CentOS7.x以上的版本,在CentOS6.x的版本中,安装前需要安装其他很多的环境而且Docker很多补丁不支持更新。
(1)yum 包更新到最新
12#下面是基于centos7.3版本下安装的sudo yum update
(2)安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
1sudo yum install -y yum-utils device-mapper-persistent-data lvm2
(3)设置yum源为阿里云
1sudo yum-config-manager --add-repo ...