java工作随笔

        String s = JSONObject.toJSONString(fixedAsset);logger.error("-----------------8------------------" + s);CusFixedAssettDTO CusFixedAssettDTO3 = JSONObject.parseObject(s, CusFixedAssettDTO.class);

父类转子类

相同对象合并

import java.util.Date;
@Data
@ToString(callSuper=true)
@EqualsAndHashCode(callSuper = true)
public class CusFixedAssetsDTO extends FixedAssetDTO {@ApiModelProperty(value = "计数单位")//解决相同对象在select赋值之后互相为空的情况,将两个对象合并private CusFixedAssettDTO combineSydwCore(CusFixedAssettDTO sourceBean,CusFixedAssettDTO targetBean){Class sourceBeanClass = sourceBean.getClass();//sourceBean.getClass().getSuperclass();获取父类Class targetBeanClass = targetBean.getClass();Field[] sourceFields = sourceBeanClass.getDeclaredFields();Field[] targetFields = targetBeanClass.getDeclaredFields();for(int i=0; i<sourceFields.length; i++){Field sourceField = sourceFields[i];if(Modifier.isStatic(sourceField.getModifiers())){continue;}Field targetField = targetFields[i];if(Modifier.isStatic(targetField.getModifiers())){continue;}sourceField.setAccessible(true);targetField.setAccessible(true);try {//if( !(sourceField.get(sourceBean) == null) &&  !"serialVersionUID".equals(sourceField.getName().toString())){ targetField.set(targetBean,sourceField.get(sourceBean));}if(sourceField.get(sourceBean) == null){sourceField.set(sourceBean,sourceField.get(targetBean));}} catch (IllegalArgumentException | IllegalAccessException e) {e.printStackTrace();}}return sourceBean;}

循环list对象

        JSONArray array = JSONObject.parseArray(otOutput); // json字符串转json数组for(Object object:content){//String s = String.valueOf(object);String body = JSONObject.toJSONString(object);Object parse1 = JSON.parse(body);String s = parse1.toString();Asset asset1 = JSON.parseObject(s, Asset.class);

[root@localhost logs]# cd /home/hzero/jar/logs
tail -f alm-origin.log

tail -500f ./dev-environment/bangpu/bp-alm-origin/target/app.log

/*HttpPost httpPost = new HttpPost(url);httpPost.setHeader("Content-Type","application/json;charset=utf-8");httpPost.setHeader("X-ECC-Current-Tenant","10000");httpPost.setHeader("Accept-Language","zh-CHS");//加账号密码//String encoding = null;try {encoding = DatatypeConverter.printBase64Binary("sap_dev2023@163.com:WGwg@1928".getBytes("UTF-8" ));  //username  password 自行修改  中间":"不可少} catch (UnsupportedEncodingException e) {// 如果系统不支持UTF-8编码,会捕获到UnsupportedEncodingException:System.out.println(e); // 打印异常信息}httpPost.setHeader("Authorization", "Basic " + encoding);//加账号密码end//StringEntity se = new StringEntity(jsonPrarms, "utf-8");httpPost.setEntity(se);CloseableHttpClient httpClient = HttpClientBuilder.create().build();   //获取浏览器信息HttpResponse response = null;try {response = httpClient.execute(httpPost);} catch (IOException e) {e.printStackTrace();}StatusLine statusLine = response.getStatusLine();   //获取请求对象中的响应行对象int responseCode = statusLine.getStatusCode();StringBuffer jsonString = new StringBuffer();if (responseCode == 200) {BufferedReader bufferedReader = null;try {bufferedReader = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));} catch (IOException e) {e.printStackTrace();}String line;try {while((line = bufferedReader.readLine()) != null) {jsonString.append(line);//拼接字符串}} catch (IOException e) {e.printStackTrace();}}
*/
//        System.out.print(jsonString.toString());
//        JSONObject jsonResult = null;
//        if (responseCode == 200) {
//            String str = "";
//            try {
//                //读取服务器返回过来的json字符串数据
//                str = EntityUtils.toString(response.getEntity());
//                //把json字符串转换成json对象
//                //导入import com.alibaba.fastjson.JSONObject;不然报错(不行试试import net.sf.json.JSONObject;)
//                jsonResult = JSONObject.parseObject(str);
//                System.out.print("jsonResult");
//            } catch (Exception e) {
//                jsonResult = JSONObject.parseObject("字符串错误!");
//            }
//        }//return result;

查询表结构
select column_name, column_comment from information_schema.columns where table_name = ‘arm_gift’ ;

json处理
https://blog.csdn.net/JavaSupeMan/article/details/123919039

maven库中包找不到:(前提是仓库中有jar文件!!!!)
1.删除仓库中所有的.repositories和.lastUpdated文件
2.项目中执行clean
3.项目中删除.idea文件
4.项目中删除.iml文件
5.重新打开项目
6.如果失败
7.打开idea查看setting文件的指定库是否正确
这里idea有个脑残bug在这里插入图片描述
在你每次新打开一个项目时他会默认找maven中写的xml文件,这时如果你新确定了一个文件但是你没有在idea中来的及改,会导致你会生成两个仓库,所以一定注意仓库指定路径!!!
8.如错误再来一遍
9.如正确删除库重新导包

微服务项目的跨库查询数据:https://www.cnblogs.com/east7/p/15731636.html

一个接口有多个实现类时,调用接口时,如何判定调用的哪个实现类?https://blog.csdn.net/zhanduo0118/article/details/120116160

CusAssetDTO 是asset类的子类:实现父子转换:
CusAssetDTO cusAssetDto = CommonConverter.beanConvert(CusAssetDTO.class, asset);

导出excel

1.在导出的DTO类上,使用@ExcelSheet标注导出的Sheet,头行结构中,行上也需要使用该注解标注。在@ExcelSheet中,可配置导出Sheet的标题,分页查询大小等,基本不需配置,使用默认的即可。
2在导出DTO类中,在需要作为导出列的字段上,使用@ExcelColumn标注,该注解可配置列标题、显示顺序等。
Example:
@ExcelSheet(zh = “收货记录”, en = “Receiving record”)
public class ReveRecodeDTO {
@ExcelColumn(zh = “事务编号”, en = “trxNum”, showInChildren=true)
private String trxNum;
@ExcelColumn(zh = “客户”, en = “companyName”, groups = {Group2.class})
private String companyName;
@ExcelColumn(zh = “物品编码”, en = “itemCode”, order = 4, groups = {Group1.class})
private String itemCode;
@ExcelColumn(zh = “物品名称”, en = “itemName”, order = 3, groups = {Group1.class})
private String itemName;
@ExcelColumn(zh = “日期”, en = “trxDate”, pattern = BaseConstants.Pattern.DATE)
private Date trxDate;
@ExcelColumn(zh = “数量”, en = “quantity”, groups = {Group2.class})
private BigDecimal quantity;
@ExcelColumn(zh = “金额”, en = “netAmount”, pattern = BaseConstants.Pattern.TB_ONE_DECIMAL)
private BigDecimal netAmount;
@ExcelColumn(zh = “原因”, en = “moveReason”)
private String moveReason;
@ExcelColumn(zh = “接收人”, en = “receiptPerson”)
private String receiptPerson;
@ExcelColumn(zh = “备注”, en = “remark”, renders = RemarkValueRenderer.class)
private String remark;
@ExcelColumn(zh = “详情列表”, en = “detailsList”, child = true)
List detailsList;

public interface Group1 {}public interface Group2 {}public class RemarkValueRenderer implements ValueRenderer {@Overridepublic Object render(Object value, Object data) {RecordLineDTO dto = (RecordLineDTO) data;return "显示备注:" + dto.remark;}
}// getter/setter

}

3.在导出接口上,使用@ExcelExport标注,注解需配置导出的DTO。
Example:
@GetMapping(“/export”)
@ExcelExport(ReveRecodeDTO.class)
public ResponseEntity export(ReveRecodeDTO record, ExportParam exportParam, HttpServletResponse response, PageRequest pageRequest) {
List list = repository.export(record, exportParam, pageRequest);
return Results.success(list);
}

固定值集

1.固定值集获取
List queryLovValue(String lovCode, Long tenanId)

2.固定值集翻译
目标方法上使用 @ProcessLovValue(targetField = BaseConstants.FIELD_BODY)
目标对象上使用 @LovValue(lovCode = “SPFM.COMPANY_PROCESS_STATUS”)
并添加翻译字段eg:
@LovValue(lovCode = “SPFM.COMPANY_PROCESS_STATUS”)
private ProcessStatus processStatus;
private String processStatusMeaning;

方法上
@ProcessLovValuedto上@RemoteField(fieldType = AlmOrgCommand.class, meaningField = "usingOrgName")private Long usingOrgId;@RemoteField(fieldType = AssetStatusCommand.class, meaningField = "assetStatusName")private Long assetStatusId;@RemoteField(fieldType = EmployeeCommand.class, meaningField = "userPersonName")private Long userPersonId;

编码规则

1.使用说明
org.hzero.boot.platform.code.builder.CodeRuleBuilder#generateCode
参数具体意思如下:
参数名称
参数描述
level 应用维度,可选值:PLATFORM/TENANT/COMPANY
tenantId 租户ID
ruleCode 编码编码
levelCode 编码规则层级,可选值:GLOBAL/COMPANY
levelValue 编码规则层级值
variableMap 变量替换列表

加上这个注解,不然刷不出来
@Permission(level = ResourceLevel.ORGANIZATION)

excel导入
@Override
@Transactional(rollbackFor = Exception.class)
public void importSupplierByTemplate(Long organizationId, Long projectId, Long purchaseTemplateId, MultipartFile multipartFile) {
//1.校验文件和单据
List projectPackages = validateUploadFileAndDoc(organizationId, projectId, multipartFile);
//2.根据询价单号将采购包集合转为Map
Map<String, PurchaseProjectPackage> rfxNumPackageMap = projectPackages.stream().filter(pack -> Objects.nonNull(pack.getPackageCode()))
.collect(Collectors.toMap(PurchaseProjectPackage::getPackageCode, Function.identity()));
//3.读取Excel文件
try {
EasyExcel.read(multipartFile.getInputStream(), RfxLineSupImpTemplateDTO.class,
new RfxLineSupImportListener(purchaseTemplateId, lineSupplierService, rfxLineItemRepository,
customCommonQueryRepository, rfxNumPackageMap)).sheet().doRead();
} catch (IOException e) {
throw new CommonException(“供应商批量导入失败” + e.getMessage());
}
}

redis
背景:redis的火,就像java一样,对于测试人员来说,使用它就需要好好搞下,现在就整理下命令行模式,来查询获取自己想要的值;

命令行连接命令:redis-cli -h 主机名 -p 端口号 -a 密码

1、keys key值,如keys 1153331

keys 值会找到很多对应的keys,通过get方法,就可以得到很多value;

2、下面整理下redis常见的命令

a、对string类型数据的操作:set key value ,把名称为key的值赋值为value

                                            get key   返回名称为key的value

b、对list的数据类型操作:rpush key value 在名称为key的list尾部添加一个value的值

                                        lpush key value   在名称为key 的list头部添加一个value的值;llen  key     返回名称为key的list长度lrange  key start  end  返回名称为key的list中start到end的值lset key index value  给名称为key的list中索引为index的值赋值为value

c 、对hash数据类型的操作:hset key field value 向名称为key的hash中添加元素field <—>value

                                            get key field     返回名称为key的hash中field对应的value值hgetall     返回名称为key的hash中所有键(field)及其对应的value值hlen key:返回名称为key的hash中元素个数◼ hdel key field:删除名称为key的hash中键为field的域

d、redis的常用命令 :exists key 确认一个key 是否存在

                                 del  key  删除一个keytype  key  返回值的类型dbsize    返回当前数据库key的数目keys  pattern 返回满足pattern的所有keyselect dbindex 切换数据库flushdb   删除所有的key值  ,小心操作

e、redis的持久化;

        redis的持久化就是将redis的数据内存存储到物理内存上;2种持久化的方式;1、rdb  在指定的时间间隔内将内存中的数据集快照写入磁盘优点:性能最大话,如果数据集很大,rdb的启动效率很高缺点:数据安全性差2、aof   以日志的形式记录服务器每一个写、删除操作,查询操作不会被记录;优点:数据安全性好缺点:对于相同数量的数量集而言,AOF文件通常要大于RDB文件。恢复数据慢

f、多实例部署和主从配置后面再说

六、Redis 多数据库常用命令
Redis 支持多数据库,Redis 默认情况下包含 16 个数据库,数据库名称是用数字 0-15 来依次命名的。
多数据库相互独立,互不干扰。
#多数据库间切换
select 序号
使用 redis-cli 连接 Redis 数据库后,默认使用的是序号为 0 的数据库。
1
2
3
#多数据库间移动数据
move 键值 序号
例:
select 1
get lucien

select 0
get lucien

move lucien 1
get lucien

select 5
get lic

select 0
get lucien
清除数据库内数据
FLUSHDB :清空当前数据库数据
FLUSHALL :清空所有数据库的数据,慎用!

在这里插入图片描述

过滤器小结:
Java过滤器的创建与使用
Java Web之过滤器Filter
JavaWeb之监听器Listener
Spring MVC过滤器-超类

http的获取处理
HttpServletRequest接口详解(还有其他的)

javascript中new url()属性,轻松解析url地址


1.首先写一个假的地址(q=URLUtils.searchParams&topic=api)相当于当前的window.location.href
复制代码
const urlParams = new URL(window.location.href);
urlParams.searchParams.has("topic") === true; // true
urlParams.searchParams.get("topic") === "api"; // true
urlParams.searchParams.getAll("topic"); // ["api"]
urlParams.searchParams.get("foo") === ""; // true
urlParams.searchParams.append("topic", "webdev");
urlParams.searchParams.toString(); // "q=URLUtils.searchParams&topic=api&topic=webdev"
urlParams.searchParams.set("topic", "More webdev");
urlParams.searchParams.toString(); // "q=URLUtils.searchParams&topic=More+webdev"
urlParams.searchParams.delete("topic");
urlParams.searchParams.toString(); // "q=URLUtils.searchParams"
复制代码
是不是很好用?参考(https://developer.mozilla.org/zh-CN/docs/Web/API/URLSearchParams#%E7%A4%BA%E4%BE%8B)

url简单加密:java中URLEncode和URLDecode

Java解析或生成xml字符串的各种方法

Java字符串常用操作

mybatis的通用Mapper函数库以及Example条件函数总结记录

SpringBoot Controller接收参数的几种常用方式
JAVA重定向:
JAVA重定向的几种方法
response.sendRedirect()实现重定向
SpringMVC重定向视图RedirectView分析

字符串(String与日期的转换(Date)

java中Date日期类型的大小比较

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/4414.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Bard:Google AI开始支持中文对话和看图说话了

说起时下火爆的生成式AI&#xff0c;并不是只有ChatGPT。Bard也是一个很优秀的产品&#xff0c;并且刚刚发布的很多有趣的新功能。文末告诉你如何访问Bard。 Google AI在最近的更新中发布了Bard&#xff0c;一个新的语言模型。Bard支持多种语言&#xff0c;包括中文&#xff0…

【Ceph集群应用】Ceph对象存储系统之RGW接口详解

Ceph对象存储系统之RGW接口详解 1.创建Ceph对象存储系统RGW接口2. 开启httphttps,更改监听端口3. 更改监听端口4.S3接口访问测试5.实验中遇到的故障案例 接上文基于ceph-deploy部署Ceph集群详解 1.创建Ceph对象存储系统RGW接口 &#xff08;1&#xff09;对象存储概念 对象存…

WPF嵌入外部exe应用程序-使用Winfom控件承载外部程序

使用Winform控件承载外部程序 在WPF中使用Winfom控件添加winform相关的程序集在XAML头中加入对这两个程序集命名空间的引用使用Winform控件效果&#xff1a;问题 在Winfom控件中嵌入exe程序准备Winfrom控件更换父窗体的句柄完整实现代码&#xff1a;实现效果&#xff1a; 问题和…

perl输出中文乱码【win10】

perl输出中文乱码 运行的时候输出的内容变成了中文乱码&#xff0c;原因首先来查找一下自己的perl的模块里面是否有Encode-CN。请运行打开你的cmd并输入perldoc -l Encode::CN 如果出现了地址 则就是有&#xff0c;如果没有需要进行该模块的安装。 安装方式有很多种&#xff0…

MetaTown:一个可以自己构建数字资产的平台

摘要&#xff1a;华为云Solution as Code重磅推出《基于MetaTown构建数字资产平台》解决方案。 本文分享自华为云社区《基于MetaTown构建数字资产平台》&#xff0c;作者&#xff1a; 阿米托福。 华为云Solution as Code重磅推出《基于MetaTown构建数字资产平台》解决方案&…

“掌握更多的快速排序技巧:三路划分、双路快排和非递归的深入理解”

快速排序是一种基于分治思想的排序算法&#xff0c;它能够以极快的速度将一个乱序的数组重新排列成有序的序列。不仅如此&#xff0c;快速排序还具有简洁的实现代码和良好的可扩展性&#xff0c;成为最受欢迎的排序算法之一。接下来&#xff0c;让我带你了解一下它的魅力吧&…

Linux系统部署Nginx详细教程(图文讲解)

前言&#xff1a;本篇博客记录了我是如何使用Linux系统一步一步部署Nginx的完整过程&#xff0c;也是我学习之路上的一个笔记总结&#xff0c;每一行代码都进行了严格的测试&#xff0c;特此做一个技术分享&#xff01; 目录 一、安装依赖 二、安装Nginx 三、配置Nginx 四、…

visio 图片转换到 latex 中

调整图片大小 在Visio中&#xff0c;设计–>页面设置–>大小–>适应绘图&#xff0c;这样会自动去除多余空白&#xff0c;保留部分空白作为边界&#xff0c;无需使用Word。 2. 将新的Visio文件另存为pdf格式文件 3. latex 中插入pdf 格式图片

手把手教你搭建SpringCloud项目(八)集成Ribbon负载均衡器

什么是微服务&#xff1f;一看就会系列&#xff01; 一、手把手教你搭建SpringCloud项目&#xff08;一&#xff09;图文详解&#xff0c;傻瓜式操作 二、手把手教你搭建SpringCloud项目&#xff08;二&#xff09;生产者与消费者 三、手把手教你搭建SpringCloud项目&#x…

【数据结构】24王道考研笔记——图

六、图 目录 六、图定义及基本术语图的定义有向图以及无向图简单图以及多重图度顶点-顶点间关系连通图、强连通图子图连通分量强连通分量生成树生成森林边的权、带权网/图特殊形态的图 图的存储及基本操作邻接矩阵邻接表法十字链表邻接多重表分析对比图的基本操作 图的遍历广度…

vue学习笔记(一)

1.编辑器选择 是用vscode 和 webstrom 个人感觉 vscode的插件比较多&#xff0c;对vue3的支持比较好 webstorm的自动保存比较好 各有优劣吧 我学习的这个项目目前采用vscode 2.vue2 还是 vue3 框架学通了都是通用的&#xff0c;这个时间点来学肯定是学vue3 只是顾虑到团…

JavaScript XHR、Fetch

1 前端数据请求方式 2 Http协议的解析 3 XHR的基本用法 4 XHR的进阶和封装 5 Fetch的使用详解 6 前端文件上传流程 早期的页面都是后端做好&#xff0c;浏览器直接拿到页面展示的&#xff0c;用到的是jsp、asp、php等等的语言。 这个叫做服务器端渲染SSR。 这里后端向前端…

金融数据库的战场,太平洋保险和OceanBase打了场胜仗

点击关注 文丨刘雨琦 “数据库的国产替代&#xff0c;必须经过严格的考虑&#xff0c;保证不会出错&#xff0c;所以大多数企业的领导层选择按兵不动或者简单扩容。因为不换就不会错&#xff0c;选了很久如果选错&#xff0c;还可能会出现重大事故。” 某银行数据库技术人员…

Go语言之函数补充defer语句,递归函数,章节练习

defer语句是go语言提供的一种用于注册延迟调用的机制&#xff0c;是go语言中一种很有用的特性。 defer语句注册了一个函数调用&#xff0c;这个调用会延迟到defer语句所在的函数执行完毕后执行&#xff0c;所谓执行完毕是指该函数执行了return语句、函数体已执行完最后一条语句…

netty组件详解-上

netty服务端示例: private void doStart() throws InterruptedException {System.out.println("netty服务已启动");// 线程组EventLoopGroup group new NioEventLoopGroup();try {// 创建服务器端引导类ServerBootstrap server new ServerBootstrap();// 初始化服…

苹果APP安装包ipa如何安装在手机上

苹果APP安装包ipa如何安装在手机上 苹果APP的安装比安卓复杂且困难&#xff0c;很多人不知道如何将ipa文件安装到手机上。以下是几种苹果APP安装在iOS设备的方式&#xff0c;供大家参考。 一、上架App Store 这是最正规的方式。虽然审核过程复杂、时间较长&#xff0c;且审核…

数据可视化组件有什么用?

数据可视化组件在数据分析中扮演着至关重要&角色。 通过图表、图形和交互式界面&#xff0c;数据可视化组件帮助将复杂的数据转化为易于理解的视觉展示。这种形式的数据呈现有助于发现模式、趋势和异常&#xff0c;并能够快速有效地传达数据的含义和洞察。 下面简单举两个…

使用Visual Studio打造强大的程序,从添加第三方库开始

使用Visual Studio打造强大的程序&#xff0c;从添加第三方库开始 博主简介一、引言二、理解第三方库三、下载和安装第三方库四、示例代码和演示五、总结 博主简介 &#x1f4a1;一个热爱分享高性能服务器后台开发知识的博主&#xff0c;目标是通过理论与代码实践的结合&#x…

【状态估计】基于FOMIAUKF、分数阶模块、模型估计、多新息系数的电池SOC估计研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

SpringBoot项目中MVC使用--【JSB系列之010】

SpringBoot系列文章目录 SpringBoot知识范围-学习步骤【JSB系列之000】 文章目录 SpringBoot系列文章目录Http协议是马冬梅Cookie机制Session机制Token MVC模型本章的专注内容UserController代码 ThymeleafLets GO!总结作业配套资源题外话 Http协议是马冬梅 HTTP简介 1. HTTP…