news 2026/5/8 9:36:48

Java基本快捷方法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java基本快捷方法

Java基本快捷方法

1、SQL默认建表3要素

ALTER TABLE test ADD COLUMN is_delete tinyint(1) NOT NULL DEFAULT '0' COMMENT '删除状态 0:未删除 1:已删除', ADD COLUMN create_time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', ADD COLUMN update_time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', ADD COLUMN `create_user_id` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT '创建者', ADD COLUMN `update_user_id` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT '更新者';

1.1:DDL增加语句

ALTER TABLE test ADD COLUMN is_delete tinyint(1) NOT NULL DEFAULT '0' COMMENT '删除状态 0:未删除 1:已删除', ADD COLUMN create_time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', ADD COLUMN update_time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间';

1.2:DDL增加语句+修改字段顺序

ALTER TABLE `tem_hot_sales` MODIFY COLUMN `org_id` bigint UNSIGNED NOT NULL DEFAULT 10002 COMMENT '组织id' AFTER `id`;
解析
  • ALTER TABLE tem_hot_sales
    表示修改名为tem_hot_sales的表结构。
  • MODIFY COLUMN org_id bigint UNSIGNED NOT NULL DEFAULT 10002 COMMENT '组织id'
    表示修改表中org_id列的定义:
    • 数据类型修改为bigint UNSIGNED(无符号的 64 位整数)
    • 该字段不允许为 NULL (NOT NULL)
    • 默认值为10002(DEFAULT 10002)
    • 添加字段注释为'组织id'
  • AFTER id
    表示把org_id这个列放到表中id列的后面,调整字段顺序。

1.3:DDL重置主键自增长值

TRUNCATE TABLE `tem_order_spider`; ALTER TABLE `tem_order_spider` AUTO_INCREMENT = 1;
ALTER TABLE tem_replenishment MODIFY COLUMN suggest_quantity INT DEFAULT0COMMENT'建议量';
解析
  1. ALTER TABLE tem_replenishment
    说明需要修改名为tem_replenishment的表。
  2. MODIFY COLUMN suggest_quantity
    说明对表中的suggest_quantity列进行修改。
  3. INT DEFAULT 0
    suggest_quantity字段的数据类型设置为INT(整数),并且默认值为0
    ——也就是说,如果插入数据时没有为suggest_quantity指定值,系统会自动填入0
  4. COMMENT ‘建议量’
    为该字段添加注释说明,内容为“建议量”。

2、出参格式化时间

@ApiModelProperty(value = "创建时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date createTime ; @ApiModelProperty(value = "修改时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date updateTime ;

3、添加索引

ALTER TABLE `org_organize_application` ADD INDEX `idx_app_id` (`app_id`);

4、非空判断

List<OrganizeApplicationBaseRes> applicationBaseAll = this.getApplicationBaseAll(); return Optional.ofNullable(applicationBaseAll) .orElseGet(Collections::emptyList) .stream() .filter(ObjectUtil::isNotEmpty) .filter(item -> type.equals(item.getType())) .collect(Collectors.toList());

5、重试

//接单排除网络影响 进行3次重试 int retry = 0; while (true) { boolean eleConfirmed = eleConfirmed(platformOrderId, orderCreateDto, appInfo); if (eleConfirmed) { log.info("饿了么成功确认订单,platFormOrderId: {}", platformOrderId); //修改订单状态 --> 订单正在确认中 orderRepo.changeInStatus(platformOrderId, OrderStatus.CONFIRMING); orderUtil.saveOrderLog(ThirdType.ELE.getType(), orderId, "order.confirm", JSON.toJSONString(true)); return; } else { log.error("饿了么确认订单失败 platFormOrderId: {}; retry: {}", platformOrderId, ++retry); if (retry > 3) { return; } ThreadUtil.sleep(1000); } }
//最大等待时间(秒) long maxWaitTime = 120; //等待间隔(毫秒) int retryInterval = 100; long startTime = System.currentTimeMillis(); boolean eleConfirmed = false; while (true) { try { eleConfirmed = eleConfirmed(platformOrderId, orderCreateDto, appInfo); if (eleConfirmed) { log.info("饿了么成功确认订单,platFormOrderId:{},orderId:{}", platformOrderId, orderId); // 修改订单状态 --> 订单正在确认中 orderRepo.changeInStatus(platformOrderId, OrderStatus.CONFIRMING); orderUtil.saveOrderLog(ThirdType.ELE.getType(), orderId, "order.confirm", JSON.toJSONString(true)); return; } } catch (Exception e) { log.error("饿了么确认订单过程中发生异常,platFormOrderId:{},错误信息:{}", platformOrderId, e.getMessage(), e); } //检查是否超过最大等待时间 if (System.currentTimeMillis() - startTime >= TimeUnit.SECONDS.toMillis(maxWaitTime)) { log.error("饿了么确认订单失败,超过最大等待时间未确认订单,platFormOrderId:{}, orderId:{}", platformOrderId, orderId); return; } ThreadUtil.sleep(retryInterval); }

6、redis锁

String lockKey = Constants.ORDER_PUSH_KEY; RLock lockStock = redissonClient.getLock(lockKey); boolean hasLock = false; try { hasLock = lockStock.tryLock(5, 30, TimeUnit.SECONDS); if (!hasLock) { throw new ServiceException("系统繁忙,请稍后重试"); } } catch (Exception e) { log.error("--, 异常信息: {}", e.getMessage(), e); } finally { if (hasLock && lockStock.isHeldByCurrentThread()) { lockStock.unlock(); } }

7、默认填充

@TableField(fill = FieldFill.INSERT) private Date createTime; @TableField(fill = FieldFill.INSERT_UPDATE) private Date updateTime;

8、getOne删除多余

public TemOrder getByChannelOrderId(String channelOrderId) { List<TemOrder> list = this.list(Wrappers.<TemOrder>lambdaQuery().eq(TemOrder::getChannelOrderId, channelOrderId)); if (ObjectUtil.isNotEmpty(list)) { if (list.size() > 1) { TemOrder maxIdRecord = list.stream().max(Comparator.comparing(TemOrder::getId)).orElse(null); Long maxId = maxIdRecord.getId(); List<Long> idsToDelete = list.stream().filter(record -> !record.getId().equals(maxId)).map(TemOrder::getId).collect(Collectors.toList()); if (!idsToDelete.isEmpty()) { this.removeByIds(idsToDelete); } return maxIdRecord; } else { return list.get(0); } } return null; }

9、保存2位小数

BigDecimal.valueOf(Double.valueOf(strDeliveryFee)).setScale(2, RoundingMode.HALF_UP).doubleValue()
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/5 3:42:44

工厂人员定位卡从技术原理、功能与技术实现、选型指南详解(一)

hello~这里是维构lbs智能定位&#xff0c;如果有项目需求和技术交流欢迎来私信我们~点击文章最下方可获取免费获取技术文档和解决方案。 工厂人员定位卡是适配工业全场景的可穿戴定位终端&#xff0c;核心以UWB/蓝牙/RFID/GNSS融合技术实现实时追踪、安全预警与应急联动&#x…

作者头像 李华
网站建设 2026/5/4 7:32:36

N_m3u8DL-RE实用技巧:轻松掌握加密流媒体下载

N_m3u8DL-RE实用技巧&#xff1a;轻松掌握加密流媒体下载 【免费下载链接】N_m3u8DL-RE 跨平台、现代且功能强大的流媒体下载器&#xff0c;支持MPD/M3U8/ISM格式。支持英语、简体中文和繁体中文。 项目地址: https://gitcode.com/GitHub_Trending/nm3/N_m3u8DL-RE 还在…

作者头像 李华
网站建设 2026/4/28 4:19:21

40、网络服务安全认证与SSL配置全解析

网络服务安全认证与SSL配置全解析 在网络服务的开发与使用中,安全认证是至关重要的一环。目前,我们在传输用户凭证时,很多情况下仍然是以明文形式进行的,这无疑存在很大的安全隐患。因此,在使用表单认证时,务必结合SSL来对传输的数据进行加密。接下来,我们将详细介绍基…

作者头像 李华
网站建设 2026/5/7 17:14:07

50、Windows Phone 7.1 开发:相机、增强现实与照片扩展功能

Windows Phone 7.1 开发:相机、增强现实与照片扩展功能 1. 相机功能开发 Windows Phone 7.1 引入了直接处理相机输入的支持,为应用程序中的相机功能提供了更大的灵活性。以下是开发一个简单相机应用的步骤: 1. 添加引用与权限 :在项目中添加对 Microsoft.Xna.Framewor…

作者头像 李华
网站建设 2026/5/7 16:25:51

蓝箭航天完成上市辅导:拟冲刺科创板 公司估值200亿

雷递网 乐天 12月23日蓝箭航天空间科技股份有限公司&#xff08;简称&#xff1a;“蓝箭航天”&#xff09;日前完成上市辅导&#xff0c;准备在科创板上市。蓝箭航天控股股东为张昌武及其控制的淮安天绘科技信息咨询中心&#xff08;有限合伙&#xff09;&#xff0c;占公司14…

作者头像 李华
网站建设 2026/5/5 16:43:33

30、磁盘与存储管理全攻略

磁盘与存储管理全攻略 在计算机的使用过程中,磁盘和存储管理是至关重要的环节,它直接影响着计算机的性能和数据的安全性。下面将详细介绍磁盘管理的相关知识和实用工具。 磁盘管理选项 在磁盘管理中,有多种操作选项可供选择: - 创建新镜像卷 :选择此选项可创建新的镜…

作者头像 李华