SpringBoot整合数据库
SpringBoot整合数据库
必须导入的依赖:
123456<!--mysql驱动--><dependency> <groupId>com.mysql</groupId> <artifactId>mysql-connector-j</artifactId> <version>8.0.32</version></dependency>
如果用mybatis的话就用
12345<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.2</version></dependency>
如果是自己实现的话就用jdbc的依赖
配置数据库的信息1234spring.data ...
SpringBoot项目复盘
SpringBoot项目复盘项目起始
确定数据库中的表、主键、各个字段及其代表的含义;确立好表与表之间的关联关系; (规范好字段的命名规则)**
按照数据库中表及其字段创建实体类及其属性;规范好命名规则
前端确定好页面长什么样,数据以什么格式交互
导入需要的各种依赖,以及做好自定义配置
准备好自己的后台模板,开始实现功能
实现各个功能登录实现
在form表单中实现对账号、密码的输入。通过th:action="@{/user/login}"将表单数据提交至controller层中
在controller层通过匹配方法上的请求映射为@RequestMapping("/user/login")的方法。
在该方法中实现好对password的判断、是否username为空、username输入有误如何提示、数据如何回显至index页面….
12345678910111213141516@RequestMapping("/user/login")public String login(Model model, ...
Linux任务调度与磁盘分区
任务调度
12345//基本用法crontab -e //编辑cortab的定时任务crontab -l // 查询crotab 任务crontab -r //删除档期那用户的所有crotab任务
123456//快速入门的代码演示rcontab -e//输入完成就会进入编辑页,然后输入*/1 * * * * ls -l /etc/ >/tmp/to.txt//这句话的意思就是每分钟执行一次 【 ls -l /etc/ > tmp/to.txt 】意思就是重定向到tmp下的to.txt
特殊符号的说明
流程
先写脚本
赋权限
设置调度
1234567891011121314151617//相关指令crontab -r //终止任务调度crontab -l //列出当前有那些任务调度service crond restart //重启任务调度 案例一 : */1 * * * *date >> /tmp/mydate案例二:cal >> /home/mycal打开该文件 : cat mycal案例三: ./my.sh ...
二叉树题目合集
求二叉树是否相同?用递归法 ,传入左右两棵树的根节点 ,然后比较 left.left == right.left; 以及 left.right ==right.right;
这是递归里面的内容
递归结束的条件:
1234567891011121314151617181920class Solution { public boolean isSameTree(TreeNode p, TreeNode q) { if( p == null && q == null){ return true ; // 这样的情况下就可以返回true了 }else if ( p != null && q == null){ return false; }else if( p == null && q != null ){ return fals ...
构建二叉树
从中序与后序构建二叉树给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。
示例 1:
输入:inorder = [9,3,15,20,7], postorder = [9,15,7,20,3]输出:[3,9,20,null,null,15,7]示例 2:
输入:inorder = [-1], postorder = [-1]输出:[-1]
思路
判断数组是否为空 !
不为空则向下继续,为空返回null
去后序数组中的最后一个元素为树的头节点的val值,(原因由后序遍历可知)
切割中序数组 ,以头节点的val值为区分(作为切割点) ,切割成中序左数组 和 中序右数组
切割后序数组, 切成后序左数组 和后序右数组
递归处理左右区间
思维图
代码实现(复杂易懂)1234567891011121314151617181920212223242526272829303132class Solution { pu ...
springBoot静态资源配置及其原理
SpringMVC自动配置官网给出 :大多场景我们都无需自定义配置
给出了很多的默认的Spring资源 : Beans 、 静态资源 、 自动注册等等
如果我们想要自己配置来添加更多的:
不用@EnableWebMvc注解。使用 @Configuration + WebMvcConfigurer 自定义规则
简单功能分析
静态资源默认在: ****called /static (or /public or /resources or /META-INF/resources
访问 : 当前项目根路径/ + 静态资源名
原理:静态映射 /**
请求进来,先去找Controller看能不能处理。不能处理的所有请求又都交给静态资源处理器。静态资源也找不到则响应404页面
静态资源添加前缀
在配置文件application.yaml添加前缀
123456789101112spring: mvc: static-path-pattern: /res/** # 上面的作用就是 res下面的所有请求都是静态请求 # 然后,我们当前项目访问静态资源就是 : 当 ...
RESTful请求映射及其原理
请求映射rest的使用与原理
@xxxMapping;
Rest风格支持(使用 HTTP 请求方式动词来表示对资源的操作)
以前: /getUser 获取用户 /deleteUser 删除用户 /editUser 修改用户 /saveUser 保存用户
现在: /user GET-获取用户 DELETE-删除用户 PUT-修改用户 POST-保存用户
核心Filter;HiddenHttpMethodFilter
用法: 表单method=post,隐藏域 _method=put
SpringBoot中手动开启
扩展:如何把_method 这个名字换成我们自己喜欢的。
基于表单提交的RESTful原理
表单提交会带上[_method = put]
请求过来会被HiddenHttpMethodFilter拦截
处理请求(如果请求正常,才会放行)
然后内部进行处理,判断是否有请求。然后将请求转换为大写
(包装原生request)将原生的request转换成为HttpM ...
二叉树的最大深度
题目给定一个二叉树,找出其最大深度
二叉树的深度为根节点到最远叶子节点的最长路径上的节点数
使用前序(中左右),也可以使用后序遍历(左右中),使用前序求的就是深度,使用后序求的是高度。
对于二叉树最大深度和最大高度的理解
二叉树节点的深度:指从根节点到该节点的最长简单路径边的条数或者节点数(取决于深度从0开始还是从1开始)
二叉树节点的高度:指从该节点到叶子节点的最长简单路径边的条数或者节点数(取决于高度从0开始还是从1开始)
而根节点的高度就是二叉树的最大深度,所以本题中我们通过后序求的根节点高度来求的二叉树最大深度。
递归法: (三部曲)
递归法传参是重点
12 //传入的是根节点 ,得到的结果为树的最大深度int getDepth(Node root);
递归的终止条件就是判断是否为叶子节点(也就是说如果下一个节点为空的话就返回 0 )
123if(node == null){ return 0;}
确定单层递归的逻辑
思路确定单层递归的逻辑:先求它的左子树的深度,再求右子树的深度,最后取左右深度最大的数值 再+1 (加1是因为算上当 ...
MyBatis中表的映射关系
MyBatis 中表的映射关系
多对多 和 一对一方法相同 ,这里不展开讲 ,主要讲解 一对多 和 多对一
resultMap的作用 : 处理属性和字段之间的映射关系 (设置自定义映射)属性:
1234id:表示自定义映射的唯一标识 与select标签中的resultMap内容一致type:查询的数据要映射的实体类的类型
子标签:
12345id:设置主键的映射关系result:设置普通字段的映射关系association:设置多对一的映射关系collection:设置一对多的映射关系
属性:
1234property:设置映射关系中实体类中的属性名column:设置映射关系中表中的字段名
First : 多对一的映射关系
查询员工以及员工所对应的部门信息 或者查询学生以及学生所对应的班级信息
本文讲解主要以员工类Emp以及部门类Dept为主,对应的数据库表名[ Emp—>t_emp ] [ Dept—> t_dept]
方法一 : 使用级联的方式处理映射关系1234567891011121314151617181920<resultMap id=&qu ...
SpringBoot自动装配
依赖的管理对于所有的依赖我们需要在父项目中设置版本号等都设置好了,在子项目中就不需要再配置版本
1234567891011<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.4.RELEASE</version></parent>他的父项目 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>2.3.4.RELEASE</version> </parent>
但是如果想要使用非Spri ...