5-17学习笔记
MyBatisPLus
什么是MybatisPlus?
Mybatis基础上 只做增强不做改变 的工具
MybatisPlus有什么用?
封装好了增删改查方法
更加高效地使用Mybatis进行数据库操作。
MybatisPlus怎么使用?
使用步骤:
1、导入依赖
<!-- mybatis-plus 的起步依赖 --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.2</version> </dependency>
2、定义一个Mapper接口 extends BaseMapper<XXX>
3、定义Service接口 extends IService<XXX>
4、定义Service实现类 extends ServiceImpl<XXXMapper,XXX>
5、除了增删改查,还有分页:
1)导入MybatisPlus封装好的配置类(官网复制)
2)写到Service中
构建一个Page对象
如果需要条件 封装条件
执行Service中的page方法
使用MybatisPlus本质上 能直接使用Service的方法就直接使用就行了
今天要掌握的重要点:
1、用MybatisPlus实现基本的增删改查、分页
2、隐式删除密码 (deleted字段和@TableS注解)
3、MybatisPlus插件直接生成增删改查的代码
5-18学习笔记
git相关
什么是git?
git是代码的版本管理工具
git有什么作用?
git管理代码,能够回溯、版本切换、多人协作、远程备份
git怎么用?
1、黑窗口,git命令操作 管理代码
2、IDEA,直接用git管理代码
所以今天的学习目标是:
- 能够掌握版本控制Git核心作用是什么
- 能够掌握Git基本概念,如本地仓库、远程仓库、分支
- 能够掌握Git常用命令,如本地仓库命令,远程仓库命令,分支、合并命令
- 在IDE中集成并使用Git来完成项目代码的版本控制
黑窗口
主要命令有三块:1.本地仓库 2.远程仓库 3.分支
1.本地仓库
创建仓库 git init
(看到.git文件即创建成功)
加入暂存区 git add 文件名 / git add .
暂存区提交到版本库 git commit 文件名 -m'提交时备注信息'
切换历史版本 git reset --hard 版本号
(git log 查看版本历史)
2.远程仓库 (.gitignore 忽略版本文件)
从远程仓库克隆(第一次使用项目) git clone url
(克隆到本地,仓库直接存在,在里面直接操作)
添加关联的远程仓库 git remote add origin url
(上传远程仓库先关联,git remote -v查看关联的远程仓库)
远程仓库推送代码 git push master(分支名称)
(第一次需要身份认证,除了本身就是被授权的开发者)
从远程仓库拉去 git pull origin master(分支名称)
另外
注意:如果当前本地仓库不是从远程仓库克隆,而是本地创建的仓库,并且仓库中存在文件,此时再从远程仓库拉取文件的时候会报错(fatal: refusing to merge unrelated histories )
解决此问题可以在git pull命令后加入参数--allow-unrelated-histories
3.分支
从远程仓库拉取 git pull <shortname如origin默认> <branch如master默认>
创建分支命令格式:git branch 分支名称
切换分支命令格式:git checkout 分支名称
推送至远程仓库分支: git push 远程仓库简称 分支命令
冲突产生的情况
多人同时修改同一文件: 多人开发一个项目,都对同一个文件的相同部分进行修改,尝试提交时除了第一个人其他人都会无法提交
合并分支时 俩人各自的分支合并到主分支时有在同一文件修改 就会冲突
重命名或移动文件 一个分支中重命名或移动文件,另一个分支中对原始文件也修改了,那么在合并这些分支时可能会产生冲突。
删除文件 如果一个分支删除了某个文件,而另一个分支对该文件进行了修改
冲突解决: idea 使用git手动合并代码并修改即可
解决冲突时,需仔细分析原因和上下文,确保选择正确方案。为减少冲突,建议保持良好沟通和协作,避免同时修改同一文件部分,频繁提交代码和定期合并分支也有助于及时发现和解决冲突。
IDEA简单操作Git
配置
第一次远程仓库操作
clone 远程仓库克隆下来
commit提交到本地仓库区(可备注),再push到远程仓库
注意 .gitigonre 忽略文件
本地仓库操作
create 创建本地仓库
add 将文件加入暂存区
commit 将暂存区的文件提交到版本库
showhistory 查看整个项目提交日志
远程仓库操作(已克隆的基础上)
manage remotes 查看远程仓库和添加远程仓库
推送到远程仓库
从远程仓库拉取代码(更新代码)
两种方式更新
Merge(合并)将传入的更改合并到当前分支中
Rebase(变基)将当前分支变基(重新设定基点)到传入更改之上
分支操作
分支操作:
- 查看分支,本质就是执行 git branch 命令
- 创建分支,本质就是执行 git branch 分支名 命令
- 切换分支,本质就是执行 git checkout 命令
- 将分支推送到远程仓库,本质就是执行 git push 命令
- 合并分支,本质就是执行 git merge 命令
查看分支
创建分支
切换分支、将分支推送到远程仓库、合并分支
解决冲突
总结:
日常开发
命令使用流程
- 进入团队先找直属领导开通远程仓库Git账号
- 用IDEA输入URL克隆远程仓库的代码到本地的工作空间(首次使用,仅需一次)
- 配置Git,编写代码完毕后,点 add添加暂存区
- 点commit提交到本地仓库
- 点push推送到远程仓库
- 点pull命令拉取最新的代码,如有冲突需mrger沟通解决
- 不断重复3-6步
等等,其他看文档即可
预习5-20号内容
用若依快速搭建项目
具体的学习目标如下:
- 掌握中州养老项目核心业务流程、系统架构、技术架构
- 能够熟悉若依框架的基本信息,包括它的功能、版本、特性等
- 能够独立完成若依框架的前后端项目的环境搭建
- 能够掌握前后端代码的结构以及它们的作用
- 能够独立完成若依框架的代码生成的功能,完成单表的增删改查
- 能够使用AI工具阅读代码
中间出现了连接问题,发现服务器没开,然后找了半天密码在最后一行,重新改了配置就好了成功启动
5-22号学习内容
VO 和 DTO:
VO 是 展示专门封装好的数据到特定页面的
DTO 是 页面传数据到后台 接收数据的
学习5-23号内容
1、在线/离线接口文档测试
领导提到swagger测试一下,一般有两种访问方式swagger和knifj 进行测试
服务地址+/swagger-ui/index.html --- > http://localhost:8080/swagger-ui/index.html
服务地址+/doc.html --- > 访问页面http://localhost:8080/doc.html
2)用于生成接口文档的注解
通过注解可以控制生成的接口文档,使接口文档拥有更好的可读性,常用注解如下:
注解 | 说明 |
@Api | 用在类上,描述Controller的作用 |
@ApiOperation | 用在方法上,说明方法的用途、作用 |
@ApiParam | 用在方法的参数上,描述单个形参的含义 |
@ApiImplicitParam | 用在方法上,描述单个形参的含义,与上面相比使用范围更广 |
@ApiModel | 用在类上,用对象来接收参数或者返回参数,描述类的含义 |
@ApiModelProperty | 用在类的属性上,用对象来接收参数或者返回参数,描述字段的含义 |
3)下载测试文档
2、修改代码生成功能:
改vm
vm的语法
vm的生成使用
3、禅道的使用
禅道,上班用来管理项目的平台
主要在上面领任务,处理bug完成工作
5-24正式开始项目一 :中州养老
查询所有启用的护理等级功能完善
在已有等级列表查询功能的基础上 新增一个只查询所有启用的护理等级功能的controller方法即可完成功能
5-25自习课,发现还有不熟悉的内容
1、MybatisPlus条件构造
2、dto和vo的使用
5-26 Redis
上午总结
Redis是什么?
Redis是一个基于内存的一款非关系型数据库(表和表之间没有关联关系),以键值对存储数据的,存储到了内存中
主要特点:
基于内存存储,读写性能高
采用单线程机制 多路复用 效率高
适合存储热点数据(热点商品、资讯、新闻)
企业应用广泛
复习:
Docker安装Redis的命令
Docker
Docker pull redis
Docker images
Docker run-d--name=redis-p 6379:6379 redis
Docker start | stopl restart redis
Redis基本命令
@Test public void testString() throws InterruptedException { //放数据 set name lisi redisTemplate.boundValueOps("name").set("lisi"); //取数据 get name Object name = redisTemplate.boundValueOps("name").get(); System.out.println(name); //放数据带超时时间setex setex age 10 20 redisTemplate.boundValueOps("age").set(20, 10, TimeUnit.SECONDS); Object age = redisTemplate.boundValueOps("age").get(); System.out.println(age); Thread.sleep(10000); //睡眠11秒 验证下一次能否获取到值 age = redisTemplate.boundValueOps("age").get(); System.out.println(age); //如果存在key,则不设置,返回faLse,如果不存在,则设置,返回truesetnx redisTemplate.boundValueOps("city2").setIfAbsent("beijing"); redisTemplate.boundValueOps("city2").setIfAbsent("beijing"); }
推荐阅读:
文章有(0)条网友点评