- 博客(50)
- 收藏
- 关注
原创 Linux之vim编辑器
一,模式间转换二,一般模式以vim打开一个文档就直接进入一般模式了,在这个模式中,可以使用上下左右按键来移动光标,也可以使用删除字符或删除整行来处理文档内容,可以粘贴,复制来处理文件常用语法yy 复制光标当前一行y数字y复制一段,从第几行到第几行p箭头移动到目的行粘贴u撤销上一步dd删除光标当前行d 数字 d 删除光标后多少行x剪切一个字符,相当于delX剪切一个字符,相当于backspaceyw 复制一个词dw删除一个词shift+6移动到行头shift+4移动到行尾
2022-04-23 17:49:19 1137
原创 一,Linux的文件系统和目录结构
1.Linux文件linux中一切皆文件2.Linux目录结构**/**根目录linux下是以/来表示层级关系EXT4是linux6.x文件系统,linux7.x用的XFS是一个日志型的文件系统,能在断电以及操作系统崩溃的情况下保证数据的一致性。挂载:即把一个分区或磁盘放在一个目录里。挂载点:指定的特定linux目录结构是从unix文件系统层级标准演变过来的。/bin是binary的缩写,这个目录下存放着最经常使用的命令。/sbin s是Super User的意思,存放的是系统管理元使
2022-04-23 15:06:01 1185
原创 多表查询与练习
1.多表查询分类讲解1.1 等值连接 vs 非等值连接SELECT employees.last_name, departments.department_name,employees.department_idFROM employees, departmentsWHERE employees.department_id = departments.department_id;-- 简化:使用别名可以提高查询效率SELECT e.employee_id, e.last_name, e.depa
2022-04-11 21:49:50 621
原创 Mysql-排序与分页
1. 排序数据1.1 排序规则ASC(ascend): 升序DESC(descend):降序ORDER BY子句在SELECT语句后面1.2 单列排序SELECT last_name, job_id, department_id, hire_dateFROM employeesORDER BY hire_date; 时间从先到后SELECT last_name. job_id, department_id, hire_date FROM employeesORDER BY hir
2022-04-10 20:35:45 952
原创 sql运算符练习题
选择工资不在5000到12000的员工的姓名和工资SELECT last_name, salary FROM employees WHERE salary < 5000 OR salary > 12000;SELECT last_name, salary FROM employees WHERE salary NOT BETWEEN 5000 AND 12000;选择在20或50号部门工作的员工姓名和部门号SELECT last_name, department_id FROM.
2022-04-09 20:23:32 161
原创 sql语言的规则和规范和基本的select语句
1.sql分类DDL(Data Definition Languages,数据定义语言):这些语句定义了不同的数据库,表,视图,索引等数据库对象,还可以用来创建,删除,修改数据库和表的结构。CREATE.DROP.ALTERDML(Data Manipulation Languages,数据操作语言),用于添加,删除,更新和查询数据库记录,并检查数据完整性。INSERT,DELETE,UPDATE.SELECTDCL(Data Control Language,数据控制语言):用于定义数据库,表,字
2022-04-09 17:21:41 424
原创 掌握mybatis3.X的核心流程及增删查改及常见配置,复杂sql和一二级缓存和懒加载
快速掌握mybatis3.X的核心流程及增删查改及常见配置,复杂sql和一二级缓存和懒加载
2022-04-05 19:07:05 249
原创 java开发-map给list赋值写法(list赋予null踩坑记录)
参数解释:Map<Integer, CommonFileVO> commonFilesMap:总map数据Set fileIds 要取的key值合集List commonFileVOList要得到的list合集写法: Set<Integer> fileIds = new HashSet<>(JSON.parseArray(reportPicFiles, Integer.TYPE)); List<CommonFileVO> comm
2022-01-19 13:55:58 1014
原创 用Redis做业务简单实现
1.添加依赖<!-- spring data redis 依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency><!-- commons-pool2 对象池依赖 --><
2021-12-09 10:54:19 345
原创 Java8新特性-CompletableFuture异步回调
简介Java8提供了一个新的,具备异步回调能力的工具类**-CompletableFuture**,该类实现了Future接口,同时具备函数式编程的能力。该类实现了Future接口和CompletionStage两个接口。该类的实例是作为一个异步任务,可以在自己异步执行完成之后触发一些其他的异步任务,从而达到异步回调的效果。Future接口Future在java里面,通常用来表示一个异步任务的引用,比如我们将任务提交到线程池里面,会得到一个Future,在Future里面有isDone方法来判断任务
2021-10-29 16:04:55 1075
原创 基于java的Mock利器-Mockito
1.认识MockitoMockito是java单元测试中使用率最高的Mock框架之一。特点:简明的语法和完整的文档,Mockito支持永Maven和Gradle来进行依赖引入和管理。2.Mockito Maven引入:<dependency> <groupId>org.mockito</groupId> <artifactId>mockito-core</artifactId>
2021-10-18 11:11:34 1849
原创 常见的认证机制
1.HTTP Basic Auth每次请求时都童工用户的username,password,是配合RESTful API使用的最简单的认证方式,但是又把用户名密码暴露给第三方客户端的风险。在开发对外开放的RESTful API时,尽量避免采用HTTP Basic Auth2.Cookie AuthCookie认证机制就是为一次请求认证在服务的创建一个Session对象,同时在客户端的浏览器端创建了一个Cookie对象,通过客户端带上来的Cookie对象来与服务器端的session对象匹配来实现状态管理
2021-10-15 14:35:45 615
原创 观察者模式=出版者+订阅者
观察者模式=出版者+订阅者主题对象管理某些数据,当主题内的数据改变,就会通知观察者。观察者对象已经订阅(注册)主题以变在主题数据改变时能够收到更新。观察者的除名和注册需要到主题对象哪里进行请求。定义观察者:观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,他的所有依赖都会收到通知并自动更新。可以使用报纸订阅服务来比拟。这和一对多的关系有何关联?利用观察者模式,主题是具有状态的对象,另一方面,观察者使用这些对象,,观察者依赖主题告诉他们何时状态改变了,煮酒产生了一个关系,一个
2021-09-08 11:01:22 97
原创 2021-09-07后端代码规范随笔
DTO要怎么写?@Data@Builder@NoArgsConstructor@AllArgsConstructorpublic class ThirdPublishPrjApprovalDTO {@see 全路径包名#方法名(参数类型列表) /** * 审批类型 * * @see ApprovalAssignType#getType() */ @Schema(description = "审批类型") private Integer
2021-09-07 15:38:18 94
原创 在一段日期和时间段查询list
拼接法 if (Objects.nonNull(prjCheckRecordSearchCond.getStartDate())) { queryWrapper.apply("date_format (check_time,'%Y-%m-%d')>='" + prjCheckRecordSearchCond.getStartDate() + "'"); } if (Objects.nonNull(prjCheckRecordSearchCond.g
2021-08-24 14:47:55 176
原创 一篇文章搞懂SpringBoot整合Redis,通过注解实现缓存功能。
1.Docker环境下安装Redis5.01.1下载Redis5.0的Docker镜像1.2使用Docker命令启动Redis容器
2021-08-09 17:43:34 355
原创 Spring 框架总结
1、Spring 框架概述(1)轻量级开源 JavaEE 框架,为了解决企业复杂性,两个核心组成:IOC 和 AOP(2)Spring5.2.6 版本2、IOC 容器(1)IOC 底层原理(工厂、反射等)(2)IOC 接口(BeanFactory)(3)IOC 操作 Bean 管理(基于 xml)(4)IOC 操作 Bean 管理(基于注解)3、Aop(1)AOP 底层原理:动态代理,有接口(JDK 动态代理),没有接口(CGLIB 动态代理)(2)术语:切入点、增强(通知)、切面(3
2021-08-07 16:11:35 83
原创 一篇文章搞懂Spring事务
2、在 Spring 进行事务管理操作(1)有两种方式:编程式事务管理和声明式事务管理(使用)3、声明式事务管理(1)基于注解方式(使用)(2)基于 xml 配置文件方式4、在 Spring 进行声明式事务管理,底层使用 AOP 原理5、Spring 事务管理 API(1)提供一个接口,代表事务管理器,这个接口针对不同的框架提供不同的实现类3.事务操作(注解声明式事务管理)1、在 spring 配置文件配置事务管理器<!--创建事务管理器--> <bean id="t
2021-08-07 16:07:46 109
原创 一篇文章搞懂Spring框架的AOP
1.什么是AOP(1)面向切面编程(方面),利用 AOP 可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。(2)通俗描述:不通过修改源代码方式,在主干功能里面添加新功能(3)使用登录例子说明 AOP**2.AOP底层原理1、AOP 底层使用动态代理(1)有两种情况动态代理第一种 有接口情况,使用 JDK 动态代理创建接口实现类代理对象,增强类的方法第二种 没有接口情况,使用 CGLIB 动态代理创建子类的代理对象
2021-08-07 15:18:38 86
原创 一篇文章搞懂Spring的IOC容器
1.IOC底层原理原始方式:工厂模式:IOC过程:xml解析,工厂模式,反射2.IOC接口(BeanFactory)1.IOC思想基于IOC容器完成,IOC容器的底层就是对象工厂2.Spring提供了IOC容器实现二点两种方式:(两个接口)(1)BeanFactory:IOC容器基本实现,是Spring内部的使用接口,不提供开发人员使用*加载配置文件时不会创建配置文件,获取对象时才创建对象。(2)ApplicationContext:BeanFactory接口的子接口,提供更多更强大
2021-08-07 11:38:44 118
原创 Spring的初始化使用入门
1.引包2.创建对象public class User { public void add(){ System.out.println("add...."); }}3.创建bean1.xml<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.o
2021-08-06 15:54:42 204
原创 使用EasyExcel导入导出数据
EasyExcel集成添加依赖<dependencies> <!-- https://mvnrepository.com/artifact/com.alibaba/easyexcel --> <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <v
2021-08-03 16:42:12 320
原创 乐观锁解决问题场景及实现方式
乐观锁解决问题-丢失更新问题当张三和李四同时对一条记录进行修改时,出现张三提交事务为5000-9000,同时李四提交事务为5000-100时,这个事件就是丢失更新,正确的方式应该是张三在事务一中将5000-9000,而李四在事务二中将9000-100.乐观锁的实现流程1.去除记录时,获取当前version2.更新时,带上这个version3.执行更新时, set version = newVersion where version = oldVersion4.如果version不对,就更新失
2021-07-31 15:24:34 1479
原创 jdk8下的查询单条判空操作,防止NPE问题
jdk8下的查询单条判空操作 Optional<Question> question = questionDao.getQuestionById(questionId); if (!question.isPresent()) { return; } String status = question.get().getStatus();
2021-07-27 10:33:02 93
原创 Java参数值,对象,list,Map判空的规范写法
参数值判空question.getQuestionTemplateId() == null 对象判空## Objects.isNull(templateById)对象不为空Objects.nonNull(curPrev)list判空CollectionUtils.isEmpty(questionList)public static boolean isNotEmpty(Collection<?> collection) { return (collection !
2021-07-17 15:53:59 261
原创 快速进阶Map的构建及使用
1.## map的原型由list而来第一步得到;List List<DepartmentPersonVO> personList = organizationFeignClient.getPersonByIds(Lists.newArrayList(personIds)).getData();构建方法一:选取对象中的某一元素和对象本身形成Map Map<Integer, DepartmentPersonVO> personMap = personList.stream().
2021-07-17 15:13:38 373
原创 枚举类的使用方法
package com.sippr.contract.base.enums;import org.springframework.lang.NonNull;/** * @Author:liangchangjian * @Date:2021/6/29 */public enum EntContractStatus { /** * 草稿. draft */ DRAFT("draft", 1), /** * 执行中.execution
2021-07-12 11:15:44 122
原创 Java8新特性-streamAPI优化Java代码
流和lambda表达式结合起来使用流声明式处理数据集合的特点,使代码简洁易读定个需求:针对数据库中的一张表-记录着一堆食物,需要对数据库查询到的菜肴进行处理,处理要求如下:1.筛选出卡路里小于400的菜肴2.对筛选出来的菜肴进行排序3.获取排序后菜肴的名字public class Dish { private String name; private boolean vegetarian; private int calories; private Type
2021-07-07 17:15:32 74
原创 将对象转换为collection
projectListToVoList(Lists.newArrayList(project)).get(0);
2021-06-21 13:12:43 555
原创 枚举类的使用
枚举类的创建@AllArgsConstructorpublic enum ProjectStatusEnum { /** * 未开始 */ NOT_STARTED(1,"未开始"), /** * 进行中 */ IN_PROGRESS(2,"进行中"), /** * 暂停 */ TERMINATED(4,"终止"), /** * 尾款 */ FINAL_PAYME
2021-06-21 13:07:13 139
原创 2021-06-21回顾代码收获
dao层1.查询多条数据规范 public List<PrjPerson> listByStaff(Integer staffId) { LambdaQueryWrapper<PrjPerson> wrapper = new LambdaQueryWrapper<>(); wrapper.eq(PrjPerson::getStaffId, staffId).eq(PrjPerson::getDeleted, Boolean.FAL
2021-06-21 12:36:17 111
原创 将获取的List<T>转化为某一列List<R>
1.将List映射为List比如List personList转为List nameList /** * 将List映射为List,比如List<Person> personList转为List<String> nameList * 可以指定过滤规则 * * @param originList 原数据 * @param mapper 映射规则 * @param predicate 过滤规则 * @pa
2021-05-21 18:04:27 1008
原创 工具类之将List转为Map
实际项目中,我们从数据库中查询得到的数据都是由Mapper封装成的单个list,我们想给他转为对应的Map处理两张表或多张表的数据匹配问题,增加算法效率。1.将List转为Map/** * 将list转为Map * * @param list 原数据 * @param keyExtractor key的抽取规则 * @param <K> key * @param <V>
2021-05-21 17:53:11 502
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人