development assay(2)

11、mysql用Limit

limit 1,1 oracle用rowNum

12、String判空

StringUtils.isEmpty()

这两个方法都是判断字符是否为空的,前者要求没有任何字符,后者要求是空白字符,isBank判断的空字符其实包括了isEmpty,也就是说isEmpty判断的范围比isBank小。而两者最大的区别就在于——isBank能判空格符而isEmpty不能。

select c2.appr_no,dbms_lob_substr(wm_concat(distinct(c1.approver)),400,1) as approver from copy1 c1,copy2 c2 where

instr(‘,’||c2.appr_no||‘,’,’,‘||c1.appr_no||‘,’>0 group by c2.appr_no order by c2.appr_no asc)

13、oracle处理like查询

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0yk31iVs-1652769971420)(C:\Users\Stereo\AppData\Roaming\Typora\typora-user-images\image-20211028093154922.png)]

14、PriorityQueue 优先级队列

15、服务器部署

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-didvQ2Ie-1652769971421)(C:\Users\Stereo\AppData\Roaming\Typora\typora-user-images\image-20211101155543518.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QBLbjxeM-1652769971421)(C:\Users\Stereo\AppData\Roaming\Typora\typora-user-images\image-20211220144951343.png)]

16、cherry-pick

在branch1开发,进行多个提交,这时切换到branch2,想把之前branch1分支提交的commit都【复制】过来,怎么办?

首先切换到branch1分支,然后查看提交历史记录,也可以用sourceTree查看,也可以用命令git log

例如我的git log 如下:

commit1 xxx_id1
commit2 xxx_id2
commit3 xxx_id3

我想把 commit1 和 commit3 复制到 branch2 分支里,只需要切换到 branch2 分支,然后执行

git cherry-pick xxx_id1…xxx_id3

注意中间的两个点,表示把两个commit区间的所有commit多复制过去

单个 commit 只需要 git cherry-pick commitid

多个commit 只需要git cherry-pick

commitid1…commitid100

注意,不包含第一个 commitid , 即 git cherry-pick (commitid1…commitid100]

如果想搞成[]区间,使用 git cherry-pick A^…B 相当于[A B]包含A

17、git Reset[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在这里插入图片描述

18、git Reset

输入q

19、浏览代码心得

1、JsonObject 存放键值对,相当于Map

2、可将字符串转化为JsonObject对象, 在putAll 全部放置到系统内部中

.putAll(JsonObject.parseObject())

sql剥离

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ArKP9VWl-1652769971422)(C:\Users\Stereo\AppData\Roaming\Typora\typora-user-images\image-20211102171041927.png)]

20、sql

select a.emp_no, (b.salary - c.salary) as growth
from
employees as a
inner join salaries as b
on a.emp_no = b.emp_no and b.to_date = ‘9999-01-01’
inner join salaries as c
on a.emp_no = c.emp_no and a.hire_date = c.from_date
order by growth asc

SELECT
 ``s1.emp_no,
 ``s1.salary,
 ``(SELECT
  ``COUNT(DISTINCT s2.salary)
 ``FROM
  ``salaries s2
 ``WHERE s2.to_date = ``'9999-01-01'
  ``AND s2.salary >= s1.salary) AS `rank` -- 去重:计算并列排名
FROM
 ``salaries s1
WHERE s1.to_date = ``'9999-01-01'
ORDER BY s1.salary DESC,
 ``s1.emp_no ;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EW0ZU7sJ-1652769971422)(C:\Users\Stereo\AppData\Roaming\Typora\typora-user-images\image-20211103161922803.png)]

21、索引

  1. 添加主键

    ALTER TABLE tbl_name ADD PRIMARY KEY (col_list);``// 该语句添加一个主键,这意味着索引值必须是唯一的,且不能为NULL。

  2. 添加唯一索引

    复制代码

    ALTER TABLE tbl_name ADD UNIQUE index_name (col_list);``// 这条语句创建索引的值必须是唯一的。

  3. 添加普通索引

    ALTER TABLE tbl_name ADD INDEX index_name (col_list);``// 添加普通索引,索引值可出现多次。

  4. 添加全文索引

    ALTER TABLE tbl_name ADD FULLTEXT index_name (col_list);``// 该语句指定了索引为 FULLTEXT ,用于全文索引。

PS: 附赠删除索引的语法:

DROP INDEX index_name ON tbl_name;``// 或者``ALTER TABLE tbl_name DROP INDEX index_name;``ALTER TABLE tbl_name DROP PRIMARY KEY;

MySQL唯一索引索引

[举报](javascript:void(0)😉

22、去重

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lbmbiVll-1652769971423)(C:\Users\Stereo\AppData\Roaming\Typora\typora-user-images\image-20211104092127645.png)]

23、mysql不允许查询的同时删除数据,需要将查询的原始数据重命名为另一个表

24、replace(emp_no,10001,10005)函数

其中包含三个参数,第一个参数为该字段的名称,第二参数为该字段的需要被修改值,第三个参数为该字段修改后的值。

25、条件

有group by的查询语句中,select指定的字段要么就包含在group by语句的后面,作为分组的依据,要么就包含在聚合函数中

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CLJgpjgX-1652769971423)(C:\Users\Stereo\AppData\Roaming\Typora\typora-user-images\image-20211105101718709.png)]

23、

(select count(distinct b.number) from passing_number b where b.number>=a.number )

统计排名

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xZ7AjMzU-1652769971423)(C:\Users\Stereo\AppData\Roaming\Typora\typora-user-images\image-20211105102306353.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QCHoY7KL-1652769971423)(C:\Users\Stereo\AppData\Roaming\Typora\typora-user-images\image-20211105104419507.png)]

24、计算总和窗口函数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4rB6rWOt-1652769971424)(C:\Users\Stereo\AppData\Roaming\Typora\typora-user-images\image-20211105142111520.png)]

over()中使用了order by子句,所以默认从第一行累计到当前行;若不使用order by子句,则会针对整个分区求和(此处没指定partition by,所以将整个表视为一个分区

25、统计留存率

要统计牛客新登录用户的次日成功的留存率,首先把公式列出来:

(第一天登录的新用户并且第二天也登录的用户)/(总用户)即为新登录用户的次日成功的留存率

总用户其实挺好算,如下:

select count(distinct user_id) from login

找到每个用户第一天登陆的日子,其实挺好找,和前面找最近登录的日子差不多,一个是max,一个是min:

select user_id,min(date) from login group by user_id

比如上面查找语句是1,2020-10-12;那么如果找到一个结果为1,2020-10-13的那么是不是就符合结果了,于是可以如下写:

select user_id,date(min(date),``'+1 day'``) from login group by user_id

这样就可以找到所有的在第一天登录的新用户并且第二天也登录的用户,以及第二天的日期。

所以从这个里面找到所有的count(distinct user_id)除以总用户就可以得到结果了,于是整个sql语句如下:

select ``round(count(distinct user_id)*1.0/(select count(distinct user_id) from login) ,3)``from login``where (user_id,date)``in (select user_id,date(min(date),``'+1 day'``) from login group by user_id);

mysql的解法为:

select ``round(count(distinct user_id)*1.0/(select count(distinct user_id) from login) ,3)``from login``where (user_id,date)``in (select user_id,DATE_ADD(min(date),INTERVAL 1 DAY) from login group by user_id);

16、次日留存

在这里插入图片描述

26、查最差是第几名

select grade, sum(number) over(order by grade) t_rank 
from class_grade 
order by grade;

窗口函数

dense_rank()排名

  1. select * *from vitae a*
  2. where (a.peopleId,a.seq) in (*select peopleId,seq **from vitae **group **by peopleId,seq **having count(*) > 1)*********
  3. and rowid not in (select *min(rowid) **from vitae **group **by peopleId,seq **having count(*)>1)*********

27stream流映射数据库字典项

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-02yJ0N6L-1652769971424)(C:\Users\Stereo\AppData\Roaming\Typora\typora-user-images\image-20211117102333188.png)]

28 flatMap聚沙成塔

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wqQbc7LD-1652769971424)(C:\Users\Stereo\AppData\Roaming\Typora\typora-user-images\image-20211117155021047.png)]

29开发随笔

项目日志查看

biz-error.log 报错信息

tail -f命令同步查看执行情况

more 命令查看文件所有信息

  • 按回车:默认下一行数据;
  • 按空格键盘,默认下一页,以当前屏幕为单位;
  • 按Ctrl+ B 上一页,以当前屏幕大小为单位;
  • 按B 回到文档第一页面

一期服务日志
在这里插入图片描述

二期服务日志

/var/log/apps/sppXxxx.log

文件升降序

ls -lrt 升序
ls -lt降序

cat:从第一行开始显示文本内容(适用于内容较少的)
tac:从最后一行开始显示,是 cat 的逆顺序
more:一页一页的显示文本内容(适用于内容较多的)
less:与 more 类似,但是比 more 更好的是,它可以往前翻页!
head:只看文本的前面几行
tail:只看文本的后面几行
nl:显示文本内容与行号
————————————————

30、json格式转换

ApplyFlow flow=JsonParser.create().parse(JSONObject.toJSONString(object),APPLYFLOW.class);

31、去重删除

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-n2YP2CB1-1652769971425)(C:\Users\Stereo\AppData\Roaming\Typora\typora-user-images\image-20211208094028451.png)]

32、hashMap键值对

keySet是键的集合,Set里面的类型即key的类型
entrySet是 键-值 对的集合,Set里面的类型是Map.Entry
keySet()的速度比entrySet()慢了很多
使用entrySet则必须将map对象转换为Map.Entry,keySet则不需要

33、@JsonInclude

字段不为空才返回该值

@TableField(exist = false) 注解加载bean属性上,表示当前属性不是数据库的字段,但在项目中必须使用,这样在新增等使用bean的时候,mybatis-plus就会忽略这个,不会报错

BeanUtils.copyProperties(vo,entity)

34、BigDecimal

BIGDECIMAL用于参数校验

比较方法用compareTo

35、格式

jackson:

data-format:yyyy-mm-dd HH:MM:ss

36、redis需要开启持久化

37、string判空

StringUtils.isEmpty null!=

List判空
在这里插入图片描述

37、开发环境检查

在这里插入图片描述

欢迎界面设置

java Compiler 设置java8

file Encoding 设置UTF-8 字符码

39 git log

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zO8kc8T3-1652771139805)(C:\Users\Stereo\AppData\Roaming\Typora\typora-user-images\image-20220217095253821.png)]

40、数据库处理

在这里插入图片描述

在这里插入图片描述

![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FbGsTk8B-1652771139806)(C:\Users\Stereo\AppData\Roaming\Typora\typora-user-images\image-20220217111009283.png)](https://img-blog.csdnimg.cn/eb38bac8559445bcbf4c048000cc580a.png)

41、Oracle去除重复(某一列的值重复),取最新(日期字段最新)的一条数据

解决思路:用Oracle的row_number() over函数来解决该问题。

解决过程:

1.查看表中的重复记录

select

t.id,

t.device_id,

t.update_dtm,

t.test_result

from DEVICE_INFO_TBL t

2.标记重复的记录

select

t.id,

t.device_id,

t.update_dtm,

t.test_result,

row_number() OVER(PARTITION BY device_id ORDER BY t.update_dtm desc) as row_flg

from DEVICE_INFO_TBL t

3.过滤重复数据,取得最新的记录

select

temp.id,

temp.device_id,

temp.update_dtm,

temp.test_result

from (

​ select

​ t.id,

​ t.device_id,

​ t.update_dtm,

​ t.test_result,

​ row_number() OVER(PARTITION BY device_id ORDER BY t.update_dtm desc) as row_flg

​ from DEVICE_INFO_TBL t ) temp

where temp.row_flg = ‘1’

row_number() OVER (PARTITION BY COL1 ORDER BY COL2) 表示根据COL1分组,在分组内部根据 COL2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的).

与rownum的区别在于:使用rownum进行排序的时候是先对结果集加入伪列rownum然后再进行排序,而此函数在包含排序从句后是先排序再计算行号码.

row_number()和rownum差不多,功能更强一点(可以在各个分组内从1开时排序).

rank()是跳跃排序,有两个第二名时接下来就是第四名(同样是在各个分组内).

dense_rank()l是连续排序,有两个第二名时仍然跟着第三名。相比之下row_number是没有重复值的 .

lag(arg1,arg2,arg3):
arg1是从其他行返回的表达式
arg2是希望检索的当前行分区的偏移量。是一个正的偏移量,时一个往回检索以前的行的数目。
arg3是在arg2表示的数目超出了分组的范围时返回的值。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5QcKtRtR-1652771139806)(C:\Users\Stereo\AppData\Roaming\Typora\typora-user-images\image-20220217112816668.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GCH3s1Qh-1652771139806)(C:\Users\Stereo\AppData\Roaming\Typora\typora-user-images\image-20220218095857537.png)]

43、HTTP

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yuTnNVoc-1652771139807)(C:\Users\Stereo\AppData\Roaming\Typora\typora-user-images\image-20220218114308263.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dhZT4NF4-1652771139807)(C:\Users\Stereo\AppData\Roaming\Typora\typora-user-images\image-20220218114412858.png)]

44、去重插入

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RevQ68c9-1652771139807)(C:\Users\Stereo\AppData\Roaming\Typora\typora-user-images\image-20220218171517978.png)]

45、单一多条返回处理策略

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V5sdiZky-1652771139807)(C:\Users\Stereo\AppData\Roaming\Typora\typora-user-images\image-20220222173610988.png)]

46、日期解析器

@Configuration
public class LocalDateTimeSerializerConfig {

    @Value("${spring.jackson.date-format:yyyy-MM-dd HH:mm:ss}")
    private String pattern;

    public LocalDateTimeSerializer localDateTimeDeserializer() {
        return new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(pattern));
    }

    @Bean
    public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() {
        return builder -> builder.serializerByType(LocalDateTime.class, localDateTimeDeserializer());
    }
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tSX33F3b-1652771139808)(C:\Users\Stereo\AppData\Roaming\Typora\typora-user-images\image-20220302154041129.png)]

日期字段输出

47、文件配置所在地

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RIxGobma-1652771139808)(C:\Users\Stereo\AppData\Roaming\Typora\typora-user-images\image-20220303105812355.png)]

48、数据库实例配置

https://jingyan.baidu.com/article/00a07f381d59fc82d028dcc9.html

49、tcping 特定端口

在这里插入图片描述

https://jingyan.baidu.com/article/c1a3101e878dcede656deb05.html

50、@RequestParam和@RequestBody

注解@RequestParam接收的参数是来自HTTP请求体或请求url的QueryString中。

RequestParam可以接受简单类型的属性,也可以接受对象类型。

@RequestParam有三个配置参数:

required 表示是否必须,默认为 true,必须。
defaultValue 可设置请求参数的默认值。
value 为接收url的参数名(相当于key值)。

json @RequestBody

普通就 @RequestParam

51、服务器不注册进入Eureka

eureka.client.register-with-eureka 配置成false

52、数据库连接

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0hhzYn78-1652772122028)(C:\Users\Stereo\AppData\Roaming\Typora\typora-user-images\image-20220413155627060.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FFodFM28-1652772122028)(C:\Users\Stereo\AppData\Roaming\Typora\typora-user-images\image-20220413155556019.png)]

数据库配置

53、使用stream去重List对象集合

单属性:

List<Course> arrayList = courseThirds.stream().collect(
    Collectors.collectingAndThen(Collectors.toCollection(
        () -> new TreeSet<>(Comparator.comparing( Course::getBjmc))),ArrayList::new));

多属性:

List<Course> arrayList = courses.stream().collect(
    Collectors.collectingAndThen(Collectors.toCollection(
        () -> new TreeSet<>(Comparator.comparing(
             o -> o.getKcmc() + ";" + o.getJsbh() + ";"
                + o.getZc() + ";" + o.getXq() + ";" + o.getJc())
                 )), ArrayList::new));

54、

JSONObject.toJavaObject

Objects.equals

IMS

1

再强调一下,你们在sql里做运算,或者取数的话,一定要加上nvl0,如果是除数就改为nvl1

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值