- 博客(141)
- 资源 (3)
- 收藏
- 关注
原创 Laravel实现软删除
Laravel实现软删除Laravel 的 Eloquent ORM 提供了一个漂亮、简洁的 ActiveRecord 实现来和数据库交互。每个数据库表都有一个对应的「模型」用来与该表交互。你可以通过模型查询数据表中的数据,以及在数据表中插入新记录。官方文档对于软删除的解释如下:除了真实删除数据库记录,Eloquent 也可以「软删除」模型。软删除的模型并不是真的从数据库中删除了。 事实上,是在模型上设置了deleted_at属性并将其值写入数据库。如果deleted_at值非空,代表这个模型已被软删
2020-07-17 22:31:55 4838
原创 git add . 和 git add * 区别
git add [参数] [–] <路径> //作用就是将我们需要提交的代码从工作区添加到暂存区,就是告诉git系统,我们要提交哪些文件,之后就可以使用git commit命令进行提交了。git add . 会把本地所有untrack的文件都加入暂存区,并且会根据.gitignore做过滤,但是git add * 会忽略.gitignore文件,并把任何文件都加入...
2020-06-30 09:57:43 1382
原创 Window常用快捷键
Window常用快捷键快捷键作用Win + R打开运行对话框Win + Q快速打开搜索Win + I快速打开Win10设置栏Ctrl+Alt+Del /Esc快速打开任务管理器Alt+F4关闭当前界面与快速关机Win+ P演示设置Win +左/右 Win +上/下窗口可以变为1/4大小放置在屏幕4个角落Alt + Tab任务切换界面Win + Tab松开键盘界面不会消失Win + Ctrl + D创建新的虚拟桌面
2020-06-28 16:40:33 271
转载 PHP的empty,isset和is_null区别
PHP提供了三个用于测试变量值的函数,分别是isset(),empty(),is_null(),他们都返回布尔值,但是也有区别。通过以下表格查看: 对比项 isset()方法 empty()方法 is_null方法 ""(空字符串) true ture false " "(一个空格) true false false FALS...
2020-05-13 10:02:53 176
原创 CentOS使用composer install 报错 - phpunitphpunit 8
使用composer install报错。解决方案:使用命令查看引入的模块php -m如果没有dom这个模块,查询可以拓展的模块,这里我的PHP版本是7.3yum search php73 找到如下拓展安装yum -y install php73-php-xml.x86_64重启php frmsystemctl restart php73-php-fpm再使用ph...
2020-05-06 23:27:28 281
原创 PhpStorm配置Laravel环境
PhpStorm配置Laravel环境1.安装Laravel插件安装完成重启后,应用laravel plugin到当前项目2.让Command Line Tool Console控制台支持artisan命令设置完成后,打开Command Line Tool Console控制台在里面输入如下内容artisan make:controller TestController...
2020-05-03 14:07:46 2835
原创 怎么安装 Laravel
怎么安装 LaravelLaravel是PHP的一个Web框架,本次安装的版本是7,需要的PHP版本 >= 7.2.51.安装composer安装Laravel之前,需要安装composer。Laravel 框架使用 Composer(PHP包管理工具,参考 Composer 中文文档)来管理代码依赖性。 首先,你需要下载 Composer 的 PHAR 打包文件( composer...
2020-05-01 23:09:19 646
原创 快速失败和安全失败的区别
在 java.util 包的集合类就都是快速失败的;而 java.util.concurrent 包下的类都是安全失败快速失败:在使用迭代器对集合进行迭代的过程中,如果 A 线程正在对集合进行遍历,此时 B 线程对集合进行修改(增加、删除、修改),或者 A 线程在遍历过程中对集合进行修改,都会导致 A 线程抛出 ConcurrentModificationException 异常。这里我们以...
2020-04-19 22:56:35 2860
原创 如何把1000随机分配成10个数
剪绳子:1.声明一个数组,长度为1000。2.产生随机9个数字,将数组分为10段3.每段的长度加起来为1000代码实现如下: public static void main(String[] args) { boolean[] arr = new boolean[1001]; for (int i = 0; i< 9; i++) ...
2020-03-29 20:56:56 2887
原创 Mysql常见面试题
1.事务2.数据库范式3.事务隔离级别4.并发一致性问题5.存储引擎(InnoDB和MyISAM区别)6.锁机制(有哪些锁?)6.B+索引数据结构,和B树(B-树)的区别7.红黑树8.数据库索引原理9.聚簇索引和非聚簇索引区别10.覆盖索引11.压缩索引(前缀压缩)12.冗余索引和重复索引13.索引为什么能提高速度?14.MVCC机制15.SQL优化16.Mysql...
2020-02-29 21:06:31 186
转载 Webstorm的一些常用快捷键
下面是Webstorm的一些常用快捷键:ctrl + shift + n: 打开工程中的文件,目的是打开当前工程下任意目录的文件。ctrl + j: 输出模板ctrl + b: 跳到变量申明处ctrl + alt + T: 围绕包裹代码(包括zencoding的Wrap with Abbreviation)ctrl + []: 匹配 {}[]ctrl + F12: 可以显示当前文件的...
2020-02-29 21:02:12 234
原创 fastDFS的storage启动失败
fastDFS的storage启动失败原因详解笔者在安装fastDFS时,启动storage一直不成功。启动storage可以使用service fdfs_storaged start 或/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart但是启动之后,如下图所示错误原因解析:①我们可以通过如下命令来查看fdfs进程...
2020-01-25 17:55:19 13653 6
原创 浅谈 服务熔断 降级 限流
复杂分布式体系结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免地失败。**服务雪崩:**多个微服务之间调用的时候,假设微服务A调用微服务B和微服务C,微服务B和微服务C又调用其它的微服务,这就是所谓的“扇出”。如果扇出的链路上某个微服务的调用响应时间过长或者不可用,对微服务A的调用就会占用越来越多的系统资源,进而引起系统崩溃,所谓的“雪崩效应”。对于高流量的应用来说,比如秒杀...
2019-12-29 19:46:12 489
原创 Sentinel哨兵
一、概述Sentinel(哨兵、哨岗)是Redis的高可用性解决方案。由一个或多个Sentinel实例组成的Sentinel系统Redis Sentinel 是一个分布式系统, 你可以在一个架构中运行多个 Sentinel 进程(progress), 这些进程使用流言协议(gossip protocols)来接收关于主服务器是否下线的信息, 并使用投票协议(agreement protocol...
2019-11-30 18:39:18 393
原创 markdown构建目录结构
markdown构建目录结构程序员经常会有需求,需要列出项目的结构树。Mac或者Linux下可以使用tree列出项目结构,比如:Demo├── Demo.http.mysqlDemo│ ├── Godeps│ │ └── Godeps.json│ ├── build.sh│ ├── common│ │ ├── client.go│ │ ├──...
2019-10-29 10:14:07 2156
原创 解决Failed to read artifact descriptor for org.springframework.cloud:spring-cloud-starter-eureka-serve
今天搭建Springcloud项目,遇到了POM.xml文件 Failed to read artifact descriptor for org.springframework.cloud:spring-cloud-starter-eureka-server:jar:unknow报错查看自己的依赖 <!--eureka-server服务端 --> &...
2019-10-27 09:41:23 10226
原创 String StringBuffer StringBuilder区别
1. 可变性String 不可变:查看源码发现,String 类中使用 final 关键字修饰字符数组来保存字符串 /** The value is used for character storage. */ private final char value[];String类是不可变类,任何对String的改变都会引发新的String对象的生成;如果是String...
2019-09-30 21:15:51 239
原创 聚簇索引和非聚簇索引区别
聚簇索引和非聚簇索引区别MySQL的聚簇索引是指Innodb引擎的特性,MySIAM并没有,如果需要该索引,只要将索引指定为主键(primary key)就可以了。聚集(clustered)索引,也称聚簇索引。聚簇索引并不是一种单独的索引类型,而是一种数据存储方式。Innodb引擎的聚簇索引实际上存放了B+树索引和数据行。所以由于无法同时把数据行存放在两个不同的地方,所以一个表只能有一个聚簇索...
2019-08-28 23:36:44 933
原创 这个符号在Mysql中到底是什么?
Mysql中有个 <=>符号,到底是什么含义呢?https://stackoverflow.com/questions/21927117/what-is-this-operator-in-mysql
2019-08-28 16:34:24 504
原创 Redis过期键删除策略
定时删除: 在设置键的过期时间的同时,创建一个定时器,让定时器在键的过期时间来临时,立即对键的删除操作。优点:通过使用定时器,定时删除策略可以保证过期键会尽可能快地被删除,并释放过期键所占用的内存。缺点:对CPU时间不友好:在过期键比较多的情况下,删除过期键这一行为可能会占用相当一部分CPU时间。除此之外,创建一个定时器需要用到Redis服务器中的时间时间,而当前时间事件的实现方式–无序链表...
2019-08-28 10:41:35 445
原创 Java多线程详解
一、基本概念程序(program)是为完成特定任务、用某种语言编写的一组指令的集合。即指一段静态的代码,静态对象。 进程(process)进程是程序的一次执行过程,或是正在运行的一个程序。是一个动态的过程:有它自身的产生、存在和消亡的过程。——生命周期如:运行中的QQ,运行中的MP3播放器程序是静态的,进程是动态的进程作为资源分配的单位,系统在运行时会为每个进程分配不同的...
2019-07-28 18:41:21 195
原创 Java中compareTo()方法详解
Java提供了一个Comparable接口,该接口里定义了一个compareTo(Object obj)方法,该方法返回一个整数值,实现该接口的类必须实现该方法,实现了该接口的类的对象就可以比较大小。当一个对象调用该方法与另一个对象进行比较时,例如obj1.compareTo(obj2),如果该方法返回0,则表示两个对象相等,如果该方法返回一个正整数,则表明obj1大于obj2;如果该方法返回一个...
2019-07-23 12:28:42 26650 3
原创 关于LINUX权限-bash: ./startup.sh: Permission denied
用命令chmod 修改一下bin目录下的.sh权限就可以了如chmod u+x *.sh
2019-06-25 21:38:03 1787 1
原创 JSP 解决Page directive illegal to have multiple occurrences of contentType with different values 错误
在一个JSP页面使用include标签包括了另一个页面<%@ include file="../common/menu.jsp"%>然后就报了如下的错误HTTP Status 500 - /WEB-INF/views/permission/../common/menu.jsp (line: 1, column: 2) Page directive: illegal to h...
2019-06-22 00:24:28 579
原创 Springboot搭建文件服务器
笔者最近遇到了一个需求,需要搭建一个文件服务器,用于上传文件(.txt格式等)和图片(.jpg格式等)。下面演示怎么上传txt文件和上传头像(.jpg),如有需要可自行修改后缀名进行拓展。准备工作:配置文件以及配置类:主要配置不同类型的文件路径,比如上传头像,可以放到 avatar目录,上传不同类型的文件方便区分,并获取其指定的上传路径。配置文件application.yml:# 项目相...
2019-05-20 17:37:55 15777 8
原创 Java8特性之Optional类
Optional 类(java.util.Optional) 是一个容器类,代表一个值存在或不存在,原来用 null 表示一个值不存在,现在 Optional 可以更好的表达这个概念。并且可以避免空指针异常。常用方法:Optional.of(T t) : 创建一个 Optional 实例Optional.empty() : 创建一个空的 Optional 实例Optional.ofNul...
2019-05-19 00:14:39 161
原创 Mysql CASE函数 详解
CASE函数格式如下:CASE expr WHEN v1 THEN r1 [WHEN v2 THEN r2][ELSE rn] END该函数表示,如果expr值等于某个vn,可以是等于v1或v2…vn,则返回对应位置THEN后面的结果。如果与苏军偶有值都不相等,则返回ELSE后面的rn。示例一:使用CASE value WHEN 语句执行分支操作,输入语句如下:SELECT CA...
2019-05-09 16:31:34 2925
转载 Python初始化列表
Python初始化列表下面我们就来介绍在Python中初始化列表(我们创建大小为1000并使用零初始化的列表)的一些方法。1)方法一:使用for循环和append()函数arr = []for i in range(1000): arr.append(0)2)方法二:使用带计数器变量的while循环和append()arr = []i = 0while(i<100...
2019-04-29 18:17:49 32171 3
原创 Python基础入门(五)——高级变量类型
高级变量类型1)高级变量类型概述Python 中数据类型可以分为 数字型 和 非数字型数字型整型 (int)浮点型(float)布尔型(bool)真 True 非 0 数 —— 非零即真假 False 0复数型 (complex)主要用于科学计算,例如:平面场问题、波动问题、电感电容等问题非数字型字符串列表元组字典在 Python 中,所...
2019-04-28 09:30:10 407
原创 Springboot—@RequestParam和@PathVariable详解
@RequestParam@RequestParam注解一般是加在Controller的方法参数上下面我们来分析一下加@RequestParam与不加@RequestParam的区别第一种情况,加@RequestParam@RequestMapping("/test")public void test(@RequestParam Integer testId){ }@Req...
2019-04-17 22:37:04 5918
原创 Java8特性之Stream流
一、Stream流概念Java8中有两大最为重要的改变。第一个是 Lambda 表达式;另外一 个则是 Stream API(java.util.stream.*)。Stream 是 Java8 中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。 使用Stream API 对集合数据进行操作,就类似于使用 SQL 执行的数据库查询。也可...
2019-03-31 18:07:41 299 1
原创 Python基础入门(四)——函数
函数1)函数概念所谓函数,就是把 具有独立功能的代码块 组织为一个小模块,在需要的时候 调用函数的使用包含两个步骤:定义函数 —— 封装 独立的功能调用函数 —— 享受 封装 的成果函数的作用,在开发程序时,使用函数可以提高编写的效率以及代码的 重用2)函数定义定义函数的格式如下:def 函数名(): 函数封装的代码 ……def是英文defi...
2019-03-31 15:09:57 989
原创 Python基础入门(三)——控制语句
一、分支语句if 判断语句基本语法在 Python 中,if 语句 就是用来进行判断的,格式如下:if 要判断的条件: 条件成立时,要做的事情 ……注意:代码的缩进为一个 tab 键,或者 4 个空格 —— 建议使用空格在 Python 开发中,Tab 和空格不要混用!我们可以把整个 if 语句看成一个完整的代码块# 1. 定义年龄变量age = 18...
2019-03-27 14:21:32 475
原创 Python基础入门(二)——变量
Python基础入门二变量变量类型在 Python 中定义变量是 不需要指定类型(在其他很多高级语言中都需要)数据类型可以分为 数字型 和 非数字型数字型整型 (int)浮点型(float)布尔型(bool)真 True 非 0 数 —— 非零即真假 False 0复数型 (complex)主要用于科学计算,例如:平面场问题、波动问题、电感电容等问题...
2019-03-27 10:31:07 289
原创 Java8特性之内置函数式接口
上一篇Lambda表达式说到,Lambda表达式需要“函数式接口”的支持,那每一次需要用到Lambda表达式,都得写一个接口,这样不就更麻烦了吗?但是,Java8已经为我们内置了一些常用的函数式接口,一般来说,我们是不需要自己定义一个函数式接口的。内置函数式接口一:Consumer : 消费型接口 void accept(T t);消费型接口的返回值为void,也就是对参数进行操作,...
2019-03-23 13:48:45 186
原创 Java8特性之Lambda表达式
一、Lambda入门Java8中引入了一个新的操作符 “->” 该操作符称为箭头操作符或 Lambda 操作符,箭头操作符将 Lambda 表达式拆分成两部分:左侧:Lambda 表达式的参数列表右侧:Lambda 表达式中所需执行的功能, 即 Lambda 体Lambda语法格式①:无参数,无返回值示例下面是匿名内部类的写法Runnable r1 = new ...
2019-03-22 16:24:28 167
原创 Java中获取当前时间
Java中获取当前时间1)获取当前时间。返回类型为long类型,这个值其实是距离 1970-01-01 00:00:00 相差的毫秒数import java.util.Date;public class Test { public static void main(String[] args) { //方法一 Date date = new Date(); Sys...
2019-03-20 14:06:33 18184 6
原创 Mybatis查询Mysql datetime类型时,相差8小时 解决方案
最近,笔者在做项目的时候,发现了一件特别奇怪的事情。Mysql数据库里数据如下:可是,使用Mybatis查询出来的数据却是查出来的数据跟数据库里的数据相差了8个小时,这是为什么呢?这是因为Mysql 使用系统默认时区,东八区。而Tomcat java使用UTC时区进行处理业务逻辑。System.out.println(System.getProperty("user.ti...
2019-03-19 15:44:38 9892 2
SpringMVC4超权威教程
2018-04-19
《重构》和《clean code》
2018-02-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人