技术学习
若依微服务
研发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;
public class BusMoApsorder extends BaseEntity { private static final long serialVersionUID = 1L;
private String id;
@Excel(name = "工单id") private String moOrderId;
@Excel(name = "工单单号") private String moOrderNo;
@Excel(name = "排产方式:10=按机台排产,20=按时间排产") private String produceWay;
}
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(); } 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对象中的随之改变,影响两个实例。
碎碎言
上面二周刚刚搬入新的环境,六期的风景宜人,就是太远了。每天的朝九晚六的生活已经把自己的精力耗尽,本打算回窝完成自己的项目,总是很疲惫。没能坚持,到现在为止还没开始自己的项目。六月的风波、毕业季的来临。我总会被迫的学会成长,很多辛苦与泪水都慢慢的能够自己消化。每到夜深总能反省自己,今天自己做了什么。加油吧自己,对每一天。
在这里祝自己毕业快乐!绽开新篇章!新的工作、新的生活。
