linux基本命令

前言

可以使用 man 命令来查看各个命令的使用文档,如:man cp

文件基本属性

Linux中我们可以使用 ll 或者 ls –l 命令来显示一个文件的属性以及文件所属的用户和组

$ ll
total 2184
-rw-r--r-- 1 renyapeng staff 846K 9 22 16:08 db.json
drwxr-xr-x 315 renyapeng staff 9.8K 8 12 14:07 node_modules
drwxr-xr-x 21 renyapeng staff 672B 9 22 15:28 public

每个文件的属性由左边第一部分的 10 个字符来确定(如下图)

查看更多

java.util.ConcurrentModificationException 异常详解

环境:JDK 1.8.0

使用 iterator 遍历集合的同时对集合进行修改会报错 java.util.ConcurrentModificationException

问题复现

抛异常代码

@Test
public void test02() {
List<Integer> list = new ArrayList<>();
for (int i = 1; i < 11; i++) {
list.add(i);
}

Iterator<Integer> it = list.iterator();
while (it.hasNext()) {
Integer next = it.next();
if (next == 5) {
list.remove(next);
}
}
}

查看更多

Mybatis foreach 批量操作

mybatis foreach 遍历传递进来的集合

mapper 接口

List<Employee> getEmpsByConditions(@Param("list") List<Integer> idList);

mapper.xml

<!-- 注意返回的数据类型是集合中保存的数据类型 Employee-->
<select id="getEmpsByConditions" resultType="com.jas.mybatis.bean.Employee">
SELECT * FROM t_employee WHERE id IN
<!--
collection:指定要遍历的集合
item:取出当前集合中元素,赋给 item 中的值
separator:遍历出的多个元素之间用什么分隔符分隔开
open:遍历集合前用什么字符进行拼接
close:遍历集合后用什么字符进行拼接

在 foreach 标签中还有一个属性 index,
遍历集合的时候 index 表示的是当前元素的索引,item 对应索引中的值
遍历 map 的时候 index 表示的是当前 map 中的 key,item 是 key 对应的 value
-->
<foreach collection="list" item="item" separator="," open="(" close=")">
#{item}
</foreach>
</select>

foreach 批量插入数据

mapper 接口

Integer addEmpsByList(@Param("list") List<Employee> list);

查看更多

lombok使用方法

@Data

注解在类上,提供类所有属性的 getter 和 setter 方法,此外还提供了equals、canEqual、hashCode、toString 方法、无参构造方法;

@Accessors(chain = true)

注解在类上,使用链式设置属性;

@Setter

注解在属性上,为单个属性提供 setter 方法、无参构造方法;

注解在类上,为该类所有的属性提供 setter 方法、无参构造方法;

@Getter

注解在属性上,为单个属性提供 getter 方法、无参构造方法;

查看更多

冒泡排序

基本介绍

冒泡排序(Bubble Sort)需要重复的走访要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来,使值较大的元素逐渐从前移向后边。

冒泡排序 Bubble Sort

算法描述

冒泡排序算法的运作如下:

  1. 比较相邻的元素。如果第一个比第二个大,就交换
查看更多

数据库三范式

数据库三范式

第一范式(1st NF-列都是不可再分)

第一范式的目标是确保每列的原子性:如果每列都是不可再分的最小数据单元(也称为最小的原子单元),则满足第一范式(1NF)

数据库第一范式

第二范式(2nd NF-每个表只描述一件事情)

首先满足第一范式,并且表中非主键列不存在对主键的部分依赖。 第二范式要求每个表只描述一件事情。

数据库第二范式

第三范式(3rd NF-不存在对非主键列的传递依赖)

第三范式定义是,满足第二范式,并且表中的列不存在对非主键列的传递依赖。除了主键订单编号外,顾客姓名依赖于非主键顾客编号。

查看更多