不要问为什么没有1-4 问就是机密不能泄露
五:
字符串都有下标,下标从0开始,即字符串第一位的下标为0
substring 是截取字符串的
substring(0,2) 的 ,substring括号里面的 数值 都代表的是 Index (下标) 的意思,
substring(0,2) 的(0,2) 是 ,包括 0 下标值 而不包括 2 下标的值
也就是 substring 会 截取 下标为 0跟 1的值 ,而不包括 2的值!
stringObject.substring(start,stop)
start 必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置。
stop 可选。一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置多 1。
如果省略该参数,那么返回的子串会一直到字符串的结尾。
eg:
输出:
lo world!
六:
UUID.randomUUID().toString()是javaJDK提供的一个自动生成主键的方法。UUID(Universally Unique Identifier)全局唯一标识符,是指在一台机器上生成的数字,
它保证对在同一时空中的所有机器都是唯一的,是由一个十六位的数字组成,表现出来的 形式。
由以下几部分的组合:当前日期和时间(UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不 同,其余相同),
时钟序列,全局唯一的IEEE机器识别号(如果有网卡,从网卡获得,没有网卡以其他方式获得),UUID的唯一缺陷在于生成的结果串会比较长。
1.UUID.randomUUID().toString();//用来生成数据库的主键id非常不错。。
//UUID是由一个十六位的数字组成,表现出来的形式例如
//550E8400-E29B-11D4-A716-446655440000
2.String uid = UUID.randomUUID().toString().substring(0,5);
//五位UUID
//bf7c3
————————————————
原文链接:https://blog.csdn.net/zhw0596/article/details/81321183
七:
indexOf 和 lastIndexOf 都是索引文件
indexOf 是查某个指定的字符串在字符串首次出现的位置(索引值)(从左往右)
lastIndexOf 是查某个指定的字符串在字符串最后一次出现的位置(索引值)(从右往左)
https://www.cnblogs.com/struggle-cs/p/9223230.html
八:
开发常用工具类
http://www.bjpowernode.com/javazixun/2220.html
九:
java中split的用法详解
https://blog.csdn.net/qq_38419433/article/details/79583322
十:
git操作 先update再commit 再push
十一:
VO:value object 值对象 / view object 表现层对象
1 .主要对应页面显示(web页面/swt、swing界面)的数据对象。
2 .可以和表对应,也可以不,这根据业务的需要。
DTO(TO):Data Transfer Object 数据传输对象
1 .用在需要跨进程或远程传输时,它不应该包含业务逻辑。
2 .比如一张表有100个字段,那么对应的PO就有100个属性(大多数情况下,DTO内的数据来自多个表)。
但view层只需显示10个字段,没有必要把整个PO对象传递到client,这时我们就可以用只有这10个属性的DTO来传输数据到client,这样也不会暴露server端表结构。
到达客户端以后,如果用这个对象来对应界面显示,那此时它的身份就转为VO。
https://blog.csdn.net/xyajia/article/details/108029590?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-0&spm=1001.2101.3001.4242
https://blog.csdn.net/cowcomic/article/details/103751308?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-2.base&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-2.base
十二:
stream().map().collect()用法
https://www.cnblogs.com/ngy0217/p/11080840.html
https://zhuanlan.zhihu.com/p/94882031 思路更清晰
map:
1、map生成的是个一对一映射,for的作用
2、比较常用
3、而且很简单
//new 1
List collect = data.stream().map(person -> person.getName()).collect(toList());
System.out.println(collect);
//new 2
List collect1 = data.stream().map(PersonModel::getName).collect(toList());
System.out.println(collect1);
这两种写法表示的是一个意思,但是上面new1的person->person.getName中person是随便定义的,可以写成x也可以写成s 看个人喜欢。然后下面的::写法则必须要用PersonModel,也就是我们集合里存放的实体类。
collect(toList)表示生成的是一个集合,如果是toSet、toMap表示生成的是Set、Map
stream().filter().collect()用法
filter
1、遍历数据并检查其中的元素时使用。
2、filter接受一个函数作为参数,该函数用Lambda表达式表示。
/**
* 过滤所有的男性 并且小于20岁
*/
写法:
List collect1 = data
.stream()
.filter(person -> (“男”.equals(person.getSex())&&person.getAge()<20))
.collect(toList());
测试环境 http://106.14.11.151:8312/
十三:
vue教程
https://cn.vuejs.org/v2/guide/index.html
十四:
https://lanhuapp.com/url/9YS1E
密码: GUkF
十五:
复合主键:
主键是唯一的索引,通常会用GUID最为主键,但是并不是每个表都存在ID字段,
例如学生表(姓名,生日,性别,班级),这里面每一个值都可能重复,无法使用单一字段作为主键,这时我们可以将多个字段设置为复合主键,由复合主键标识唯一性。
只要不是复合主键每个值都重复,就不算重复。
navicat里面建立符合主键就是把要加主键的字段都加上小钥匙,然后id字段不能设置为自增,不然会报错。
十六:
VUE
第一步 安装vscode 或者webstorm
第二步 安装Node.js 及配置环境变量。(注意:环境变量配置以后要重启电脑)
https://nodejs.org/zh-cn/
https://www.cnblogs.com/coder-lzh/p/9232192.html
配置过后:1.win键 + R ,输入CMD打开命令行。
2.输入node -v 查看node.js是否安装,如果输出版本号,则进行下一步,则表示安装成功。
输入npm -v 查看npm命令是否安装成功,出现版本号则代表成功,和node一样。
3.使用淘宝镜像,输入npm install -g cnpm –registry=https://registry.npm.taobao.org
4.安装vue-cli,输入npm install --global vue-cli
第三步 搭建一个vue项目(Windows + 命令行 + vsCode)
https://blog.csdn.net/nan961136007/article/details/110388068
5.安装成功后,在你需要搭建vue项目的磁盘里创建一个空文件夹,并用命令切换到此目录下。
比如,我的在D盘里创建了一个Helloworld文件夹。
输入
d:
然后
cd ./Helloworld 就进入到改目录下了
6.输入命令 vue init webpack 项目名,此项目名为你想要命名的英文,先稍等片刻
接着需要输入一些项目详情。请看下面。
Project name: 代表你的项目名字。
Project description: 代表此项目的描述。
Author: 代表使用者。
Vue build: 输入Y,代表yes,打包方式。
Install vue-router: 输入Y,代表yes,安装路由。
Use ESLint to lint your code: 输入N,代表no, js 语法检测,目前不需要用到。
Set up unit tests: 输入N,代表no,单元测试工具,目前不需要用到。
Setup e2e tests with Nightwatch: 输入N,代表no,自动化测试,目前不需要用到。
然后就开始创建vue文件了,请等待片刻。
然后打开vsCode,把项目导入进去。
打开终端,输入 npm run dev 来运行项目。(打开终端的快捷键 CTRL·)
十七:
BindingResult 是用来校验的
这儿实体类有很多条件。
然后在controller层就用BindingResult 来校验这些条件满不满足,不满足就报错。
十七:
git命令行
数据库维护地址D:\document\yecai
push项目用命令行就是
先$ git commit -m “蓝湖文档” //蓝湖文档就是提交描述
再$ git push -u origin main
如果用gui界面
先Stage Changed
再commit
再Push(gui界面会出现没用的现象,建议使用命令行)
十八:
BindingResult是什么?BindingResult的使用方法详解
BindingResult用在实体类校验信息返回结果绑定。
https://blog.csdn.net/soulofball/article/details/112011877
配合@Valid 注解使用,实体类有一些校验注解,然后在controller层添加这个注解和@Valid配合使用。
eg:
实体类:
@ApiModel(value =“TestEntity”)
public class TestEntity implements Serializable{
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = “唯一id”)
private Long id;
@Size(max=10,message=“最大长度为10”)
@ApiModelProperty(value = “名称”)
private String name;
@NotNull(message=“参数不能为空”)
@ApiModelProperty(value = “年龄”)
private Integer age;
//getter setter…
}
————————————————
Controller层:
public class TestController {
@PostMapping("/a")
@ApiOperation(value = “测试”, notes = “”)
public void test(@RequestBody @Valid TestEntity test,BindingResult bindingResult) {
System.out.println(test.toString());
if (bindingResult.hasErrors()) {
throw new 自定义Exception(“错误提示码”,bindingResult.getFieldError().getDefaultMessage());
}
}
}
————————————————