//String按固定长度值MAX_LENGTH=3切割转List

private List<String> context2List(String clauseContext){List<String> list=new ArrayList<>();if(StrUtil.isEmpty(clauseContext)){return list;}int size=clauseContext.length()/MAX_LENGTH;int rest=clauseContext.length()%MAX_LENGTH;if(rest>0){size+=1;}System.out.println(size);for(int i=0;i<size;i++){String substring ="";if(i==size-1){substring = clauseContext.substring(i * MAX_LENGTH, clauseContext.length());}else {substring = clauseContext.substring(i * MAX_LENGTH, (i + 1) * MAX_LENGTH);}list.add(substring);}return list;}

//List转Json

List<User> user= new ArrayList();
String str = JSON.toJSONString(user);

//Json 转List方法

List<User> user= JSON.parseArray(json,User.class); 

//XML里模糊匹配数据库JSON字段中的对象某个属性值

and case when JSON_VALID ( tags ) then JSON_CONTAINS ( tags, JSON_OBJECT ( 'plant_no', #{plantNo} ) ) else null end

//XML里查询并合并去重某个字段用、连接

GROUP_CONCAT( DISTINCT f.plant_no SEPARATOR '、' ) as plantNo

//XML里in的写法(foreach循环遍历数组或集合)

<if test="countryCode != null and countryCode.length > 0">AND f.country_code IN<foreach  item="code" collection="countryCode" index="index"  open="(" separator="," close=")">#{code}</foreach>
</if>

//String转Long:
long l = Long.valueOf("123").longValue();

//根据某个实体属性去重

List<NewsTagsResponse> collect1 = n.stream().filter(distinctByKey((p) -> (p.getPlantName()))).collect(Collectors.toList());
System.out.println(collect1);

//根据多个实体属性去重

List<NewsTagsResponse> collect2 = n.stream().filter(distinctByKey((p) -> (p.getPlantName()))).filter(distinctByKey((p)-> (p.getArea()))).collect(Collectors.toList());
System.out.println(collect2);public static <T> Predicate<T> distinctByKey(Function<? super T, Object> keyExtractor) {Map<Object, Boolean> seen = new ConcurrentHashMap<>();System.out.println("这个函数将应用到每一个item");return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
}

//mysql获取JSON字段

SELECTSUBSTR(JSON_EXTRACT( tags, "$[0].area" ) FROM 2 FOR (LENGTH( JSON_EXTRACT( tags, "$[0].area" )- 1 ))),id
FROMt_article
WHEREtags IS NOT NULL;

//验证字符串是否全为正整数

Pattern pattern1 = Pattern.compile("^\\+?[1-9][0-9]*$");

//验证字符串为可含4位小数的数字

Pattern pattern2 = Pattern.compile("^[0-9]+(.[0-9]{0,4})?$");
例子:g.getQty() != null && pattern1.matcher(g.getQty().toString()).matches() == false

//设置时区

spring:# 设置时区jackson:time-zone: GMT+8date-format: yyyy-MM-dd HH:mm:ss

//批量修改某个值

objects.forEach( o -> {o.setMoney(BigDecimal.ZERO);});

//将对象集合中的某个属性值用";"拼接,并且自动去除null,空字符串和纯空格并且去重:

String cid = tbReceiptgs.stream().map(TbReceiptg::getCid).distinct().filter(p->p!=null&&!p.trim().equalsIgnoreCase("")).collect(Collectors.joining(";"));

//将对象集合根据某个字段排序

list = list.stream().sorted(Comparator.comparingInt(Person::getAge)).collect(toList());

//List根据某个字段求和
preSalesTaskVos=preSalesTaskVos.stream().filter(e->e.getPlanWorkTime()!=null).collect(Collectors.toList());

       BigDecimal planTotalWorkTime = preSalesTaskVos.stream()// 将user对象的age取出来map为Bigdecimal.map(PreSalesTaskVo::getPlanWorkTime)// 使用reduce()聚合函数,实现累加器.reduce(BigDecimal.ZERO,BigDecimal::add);

//将对象List的某个数字类型的字段全部相加
BigDecimal reduce = refundDeductList.stream().filter(e -> e.getRefundFcy() != null).map(TbRefundDeduct::getRefundFcy).reduce(BigDecimal.ZERO, BigDecimal::add);

//实用excel注解
@Excel(name = "状态", readConverterExp = "0=正常,1=停用",dictType="sys_normal_disable")
@ApiModelProperty(value = "部门对象 SysDept")
    @Excels({@Excel(name = "部门", targetAttr = "deptName", type = Type.EXPORT)})
    private SysDept dept;

//List对象将某个属性作为KEY,另一个属性作为value转换成Map集合

deductMap = deductList.stream().collect(Collectors.toMap(TbRefundDeduct::getOrdcode, TbRefundDeduct::getRefundFcy));

//List对象将某个属性作为KEY,整个对象作为value转换成Map集合

Map<String, TbPaygAct> paygActMap = list.stream().collect(Collectors.toMap(TbPaygAct::getPaygId, c -> c);
//假设KEY值有重复,后面的value覆盖前面的value
list.stream().collect(Collectors.toMap(TbPaygAct::getPaygId, c -> c, (c1, c2) -> c1));
//假设KEY值有重复将前面的value 和后面的value拼接起来
list.stream().collect(Collectors.toMap(TbPaygAct::getPaygId, c -> c, (c1, c2) -> c1+","+c2));

//map转list

List<String> list = map.values().stream().collect(Collectors.toList());

//mybatis-plus设置打印执行的SQL语句在日志中

//同时修改多个表字段

alter table t_factory_access
modify COLUMN access_type VARCHAR(16) DEFAULT '' COMMENT '准入产品类型 ',
MODIFY COLUMN country_name VARCHAR(128) DEFAULT '' COMMENT '国家名称',

字段注解:

@NotNull(message = “用户不能为空”)
    @Null 被注释的元素必须为null
    @NotNull 被注释的元素不能为null
    @AssertTrue 被注释的元素必须为true
    @AssertFalse 被注释的元素必须为false
    @Min(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值
    @Max(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值
    @DecimalMin(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值
    @DecimalMax(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值
    @Size(max,min) 被注释的元素的大小必须在指定的范围内。
    @Digits(integer,fraction) 被注释的元素必须是一个数字,其值必须在可接受的范围内
    @Past 被注释的元素必须是一个过去的日期
    @Future 被注释的元素必须是一个将来的日期
    @Pattern(value) 被注释的元素必须符合指定的正则表达式。
    @Email 被注释的元素必须是电子邮件地址
    @Length 被注释的字符串的大小必须在指定的范围内
    @NotEmpty 被注释的字符串必须非空

BigDecimal

加法 add()函数     减法subtract()函数        乘法multiply()函数    除法divide()函数

绝对值abs()函数

//判断BigDecimal类型数据不等于0

paygFcy.signum() != 0;
paygFcy.compareTo(BigDecimal.ZERO)!=0;

//BigDecimal除法保留2位小数,并向上进位

BigDecimal usedIcedweight = usedQty.multiply(leftNum.getIcedweight()).divide(salQty, 2, BigDecimal.ROUND_HALF_UP);

//实体类字段注解::插入数据库的时间自动生成

@TableField(fill = FieldFill.INSERT)@TableField(fill = FieldFill.INSERT_UPDATE)

//数据库日期类型字段设置实时修改更新为当前时间(设置默认值)

CURRENT_TIMESTAMP

//抛出含变量的异常:

%d        数字

%s        字符串

例子:throw new CustomException(String.format("该采购单已做付款申请金额,所以商品明细的原币总金额必须大于 %d ",paygFcy));

//QueryWrapper同时模糊匹配两个字段写法:

queryWrapper.and(queryUpdateInformRequest.getContent()!=null,wrapper->wrapper.like("content",queryUpdateInformRequest.getContent()).or().like("content_eng",queryUpdateInformRequest.getContent()));

//分页查询写法

Page<BaseCountry> baseCountryPage = page(new Page<>(page, limit), cnQueryWrapper);
//返回空白分页数据
return PageInfo.emptyReturn();
//返回分页查询结果
return PageInfo.returnPage(baseCountryPage.getTotal(), baseCountryPage.getRecords());

//根据当前日期加10位随机数生成随机单号

String refundCode = orderCodePrefix + DateUtils.dateTimeNow() + new Random().nextInt(10);

//查询表的所有字段

Select column_name from columns Where table_name='tb_purorder'

//查询整个库的某个字段所在的表名

Select DISTINCT(TABLE_NAME) from columns Where COLUMN_NAME='production_range'

//Pattern正则表达式判断字符串

//正整数
Pattern pattern1 = Pattern.compile("^\\+?[1-9][0-9]*$");
pattern1.matcher(校验的变量.toString()).matches() == false/true
//保留4位小数的正数
Pattern pattern2 = Pattern.compile("^[0-9]+(.[0-9]{0,4})?$");
pattern2.matcher(校验的变量.toString()).matches() == false/true

//项目.yml配置

# MyBatis Plus配置
mybatis-plus:# 搜索指定包别名typeAliasesPackage: com.ssht.**.domain# 配置mapper的扫描,找到所有的mapper.xml映射文件mapperLocations: classpath*:mapper/**/*Mapper.xml# 加载全局的配置文件configLocation: classpath:mybatis/mybatis-config.xml# PageHelper分页插件
pagehelper:helperDialect: mysqlsupportMethodsArguments: trueparams: count=countSql# Swagger配置
swagger:# 是否开启swaggerenabled: true# 请求前缀pathMapping: /dev-api# 防止XSS攻击
xss:# 过滤开关enabled: true# 排除链接(多个用逗号分隔)excludes: /system/notice# 匹配链接urlPatterns: /system/*,/monitor/*,/tool/*

//Excel表数据导入(解析数据)

public AjaxResult<TbPayg> importPaygData(MultipartFile file){ExcelUtil<TbPayg> util = new ExcelUtil<>(TbPayg.class);List<TbPayg> dataList = util.importExcel(file.getInputStream());List<TbPayg> filterData = dataList.stream().filter(data -> data !=null).collect(Collectors.toList());
}

//StringBuilder的用法

//追加数据
builder.append("just");
//向指定位置插入数据
builder.insert(0, "you");
//删除指定位置的数据
builder.deleteCharAt(index);
//删除指定范围的数据左闭右开
builder.delete(beginIndex, endIndex);
//将对象中的数据以字符串的形式返回
builder.toString();
//将对象中的数据反转
builder.reverse();

//代码里获取YML配置文件中的值

//第一种@Value
@Value("${token.expireTime}")
private String expireTime;
System.out.println(expireTime);//第二种@Autowired
@Autowired
private Environment env;String loginType="";//自定义变量
String expireTime= env.getProperty("token.expireTime"+loginType);
System.out.println(expireTime);

实体类序列化

private static final long serialVersionUID = 1L;

个人实用java 常用语句(工作笔记)相关推荐

  1. shell脚本常用语句用法笔记

    脚本基本语句用法笔记 grep -i 查询时不区分大小写 -n打印匹配的行号 -v 打印不匹配的行 -AX包括每次匹配之后X行 -BX包括每次匹配之后X行 cat /etc/passwd |grep ...

  2. Java|达梦工作笔记-达梦数据库同步工具(JDBC)

    目录 前言 代码与实例 前言 最近数据库要用达梦,个人对达梦又有了新的认识.使用的是达梦7,这个数据库有很多BUG,官方提供的客户端,不仅卡,而且登录了后,使用Java JDBC操作更新时,是会被阻塞 ...

  3. JAVA高并发工作笔记0002---高并发编程之使用ThreadFactory来创建新的线程

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 首先来构建线程封装类WorkThread,该类的功能主要是为了能够更好的管理线程而创建的 publ ...

  4. JAVA常用API的笔记

    常用API 1.定义: 指的就是 JDK 中提供的各种功能的 Java类,这些类将底层的实现封装了起来 2.String String 类代表字符串,Java 程序中的所有字符串文字(例如" ...

  5. JAVA高并发工作笔记0001---高并发编程之ConcurrentLinkedDeque

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 一.ConcurrentLinkedDeque介绍 ConcurrentLinkedDeque 是 ...

  6. Java常用类学习笔记

    Date类 Date类是在Java中获取日期时间最简单的一个类,可以通过直接实例化对象的方式获得当前的日期时间.得到的日期时间是国外的格式.Date类没有什么特殊的用法,就是简单的获取当前的日期时间. ...

  7. java boolean 包_java Boolean包装类工作笔记

    本文章为各位介绍一篇关于java Boolean包装类工作笔记,希望这篇文章能够帮助到各位同学,有兴趣的朋友可以进来看看吧. 题目:问下列代码运行结果是什么?  代码如下 复制代码 package q ...

  8. 【java】java学习笔记之java常用类

    如下图所示为笔者总结的java常用类学习笔记,其中,附带有代码示例(未展开),方便理解记忆.需要源文件的请到我的资源中下载,下载地址:https://download.csdn.net/downloa ...

  9. Java快速入门学习笔记5 | Java语言中的while循环语句

    有人相爱,有人夜里开车看海,有人却连LeetCode第一题都解不出来!虽然之前系统地学习过java课程,但是到现在一年多没有碰过Java的代码,遇到LeetCode不知是喜是悲,思来想去,然后清空自己 ...

最新文章

  1. 怎么扫描_打印机上扫描仪怎么用 打印机上扫描仪使用及添加方法
  2. redis, memcached, mongo性能比较
  3. mysql 多线程 一致性_常见缓存数据库一致性方案(建议收藏)
  4. 数据库服务器管理系统,数据库管理系统服务器
  5. 利用scipy包计算表格线的峰值,还原表格得到表格结构
  6. 亚马逊出的平板电脑_美国最畅销的安卓平板电脑,还只有2GB内存
  7. 《大数据》2021年第6期目次摘要
  8. 干程序员辣么久,你为什么还没有年薪60万?
  9. C#多线程编程实例 线程与窗体交互
  10. Eclipse常用插件之Top10
  11. Java反编译工具,你知道几个?
  12. 《游戏学习》| html5 飞翔的小鸟 小游戏代码示例
  13. 浏览器扫码器 ,扫描二维码,浏览器调起二维码,扫一扫功能,网页版扫一扫
  14. php文字转拼音API接口下载,微擎API 开发之汉字转拼音助手
  15. 这个Python脚本牛逼了,秒抢红包就算了,还能无视撤回消息
  16. 基于JavaEye-API实现的Gerry-聊天Dos版v1.0
  17. 盘点 2019 Python中文社区十大热门文章
  18. mysql 节假日判断_sql 节假日判断(春节、中秋、国庆、周末等)
  19. 11 | 向埃隆·马斯克学习任务分解
  20. 「Java工具类」汉语转拼音工具类HanyuPinyinHelper.java

热门文章

  1. 《七步走出职场焦虑©:释放压力,做情绪的主人》
  2. filecoin lotus 公钥私钥地址生成过程
  3. 综述|姿态估计方法大盘点
  4. CreateEvent
  5. 【二分答案 最大匹配】JZOJ_1610(初中)【东莞市选2008】导弹
  6. HC32L136国产超低功耗华大MCU芯片介绍
  7. 操作系统MIT6.S081:P7->Interrupts
  8. RESTful介绍(应用场合、常见的注解)
  9. Android如何让APP进程常驻内存?
  10. 国外物理学教程四大名著