你好陌生人,请不要试图越过权限文章,谢谢!

20220627-0705-周总结

技术学习

若依微服务

  研发MES树产项目使用到若依微服务框架。若依微服务拥有非常完善快速开发能力,可以快速生成代码。权限管理、认证模块等。并且支持集群、多数据源。项目研发中,可新建domain文件夹存储实体类、VO文件夹中存储继承实体属性,并添加额外属性变量。这样就可以保证返回前端的实体类不仅局限在实体类中,可自定义返回多样类型,比如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package com.sc.job.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.sc.common.core.annotation.Excel;
import com.sc.common.core.web.domain.BaseEntity;

/**
* 工单排产信息表对象 bus_mo_apsorder
*
* @author sc
* @date 2022-06-23
*/
public class BusMoApsorder extends BaseEntity
{
private static final long serialVersionUID = 1L;

/** id */
private String id;

/** 工单id */
@Excel(name = "工单id")
private String moOrderId;

/** 工单单号 */
@Excel(name = "工单单号")
private String moOrderNo;

/** 排产方式:10=按机台排产,20=按时间排产 */
@Excel(name = "排产方式:10=按机台排产,20=按时间排产")
private String produceWay;

}


//继承 BusMoApsorder,并添加了produceCountMethod变量;
package com.sc.job.domain.vo;

import com.sc.common.core.annotation.Excel;
import com.sc.job.domain.BusMoApsorder;

public class BusMoApsorderVO extends BusMoApsorder {


/**
* 产量算法方式
*/
@Excel(name = "产量算法方式")
private String produceCountMethod;

}


Mysql

  mysql使用 BETWEEN AND语法,可以保证范围内的查询,包括时间、价格等。比如在需要查询 2022-06-01 到 2022-06-30的时间范围,则语句可以为:

1
select 字段 from 表名 where create_time between "2022-06-01" and "2022-06-30";

  mysql使用 IN语法 可以查询满足指定范围的数据,使用如下:

1
select 字段 from 表名 where name in ("Jianfreespace","Jian");

  IN语法可以配合 not使用: 表示 name列数据中不能含有 Jianfreespace与Jian的数据即可返回。not关键字还可应用在between and语法中。

1
select 字段 from 表名 where name not in ("Jianfreespace","Jian");

  mysql对查询的结果去重。语法为: distinct

1
select distinct name from 表名;

Java

  • 浅拷贝的基本概念
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
package com.jianfreespace;

import com.jianfreespace.letter.A;

import java.util.HashSet;

public class StartMain {


public static void main(String[] args) throws ClassNotFoundException {

People p = new People("xiaowang", 10);
Employee employee = new Employee("zhangsan", 20, p);
Employee newEmployee = (Employee) employee.clone();
newEmployee.p.name = "lisi";
newEmployee.p.age = 30;
System.out.println(employee.p.name + " " + employee.p.age);
System.out.println(newEmployee.p.name + " " + newEmployee.p.age);
}

static class People
{
String name;
int age;
People(String name,int age)
{
this.name = name;
this.age = age;
}
}
static class Employee implements Cloneable
{
String name;
int age;
People p;

Employee(String name,int age,People p)
{
this.name = name;
this.age = age;
this.p = p;
}

public Object clone()
{
Employee obj = null;
try
{
obj = (Employee)super.clone(); //Object中需要识别你要克隆的对象
} catch (CloneNotSupportedException e)
{
System.out.println(e.toString());
}
return obj;
}
}
}

以上代码运行的结果为: lisi 30 ; lisi 30.

原因是因为当People的作为对象被引用时候,其内存的指向不变,当employee使用clone方法拷贝了新的对象结果newEmployee,但clone方法实现中,object对象所实现的clone()为浅拷贝,没有实现对People p的对象拷贝,拷贝的是还是原有对象的内存空间,故当改变newEmployee的p时,原p对象中的随之改变,影响两个实例。

碎碎言

  上面二周刚刚搬入新的环境,六期的风景宜人,就是太远了。每天的朝九晚六的生活已经把自己的精力耗尽,本打算回窝完成自己的项目,总是很疲惫。没能坚持,到现在为止还没开始自己的项目。六月的风波、毕业季的来临。我总会被迫的学会成长,很多辛苦与泪水都慢慢的能够自己消化。每到夜深总能反省自己,今天自己做了什么。加油吧自己,对每一天。

  在这里祝自己毕业快乐!绽开新篇章!新的工作、新的生活。