常用常忘常记

这篇博客介绍了如何在MySQL中添加字段和备注,查询最新数据,以及生成六位数递增ID。同时讨论了Java中对象的浅拷贝和深拷贝的区别,并提供了实现深拷贝的方法。此外,还涉及到Redis操作和Git上传时忽略文件的配置。
摘要由CSDN通过智能技术生成

mysql

   

# 添加字段和备注
    ALTER TABLE t_corp_realname_info ADD manufacture_id varchar(20) NULL COMMENT '制造商ID' AFTER developer_id;
# 查询最新两条数据
    order by update_time DESC limit 2;
# 创建六位递增数据
    select CONCAT("R", LPAD((@i:=@i+1), 6, 0)) manufacture_id, t.* from t_user t,(select @i:=0) init where t.user_id is not null;
    select LPAD((@i:=@i+1), 6, 0) manufacture_id, t.* from t_user t,(select @i:=0) init where t.user_id is not null;

    注意点:
        1.查询的时候需要考虑状态和标志位
        

stream
    
    去重
        .stream().collect(collectingAndThen(toCollection(()
            -> new TreeSet<>(comparing(ManufactureIdPo::getIdentificationNumber))), ArrayList::new));


    list合并去重
        List<String> collect = Stream.of(listA, listB).flatMap(Collection::stream).distinct().collect(Collectors.toList());
    
    
浅拷贝和深拷贝
    https://demon.blog.csdn.net/article/details/54572908
    首先注意几个点,对象类型分基本数据类型、和引用类型
    String是不可变的,引用类型浅拷贝内存地址都是相同的(hashCode相同),深拷贝相当于重新写入了一个新的内存地址(hashCode不相同)
    
    浅拷贝
        对象拷贝
            BeanUtils.copyProperties(source, target);
        拷贝list
            ArrayList<ManufactureIdPo> targetList = new ArrayList<>();
            Collections.addAll(repeatList, new ManufactureIdPo[sourceList.size()]);
            Collections.copy(targetList, sourceList);
            
            new ArrayList<>(sourceList)
            
            targetList = new ArrayList<>();
            targetList.addAll(sourceList);
            
            浅拷贝因为是新new出来的一个list,所以add(),delete()不会影响上一个list


    深拷贝
        在Java语言中,如果需要实现深克隆,可以通过覆盖Object类的clone()方法实现,也可以通过序列化(Serialization)等方式来实现。
        (如果引用类型里面还包含很多引用类型,或者内层引用类型的类里面又包含引用类型,使用clone方法就会很麻烦。这时我们可以用序列化的方式来实现对象的深克隆。)
        

实现六位数递增代码
    

private String getNewMFGId() {
        String newMFGId;
        String maxMFGIdNum = corpRealNameMapper.getMaxMFGIdNum();
        // 如果能查询出数据,则再原有数据上+1
        if (StringUtils.isNotEmpty(maxMFGIdNum)) {
            int no = Integer.parseInt(maxMFGIdNum);
            int newMFGIdNo = ++no;
            newMFGId = String.format("%06d", newMFGIdNo);
        } else {
            newMFGId = "000001";
        }
        return newMFGId;
    }


redis
    

redisTemplate.opsForValue().set("key", value); // 这样设置的是没有过期时间的
Objects.equals(redisTemplate.hasKey(redisKey), Boolean.TRUE) // 用于判断redis中key是否存在
Long leftTime = redisTemplate.getExpire(redisKey); // 获取过期时间

    
    

idea git上传过滤无用文件

在项目中创建.gitignore文件,与pom.xml同级

.idea/
target/
mvnw*
.mvn/
*.iml
*.ipr
*.iws

ocrTemp
logs
# Compiled class file
*.class

# Log file
*.log

# BlueJ files
*.ctxt

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*

git rm -r --cached .

git add .

git commit -m 'update .gitignore'

git push -u origin master

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值