自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

老张的便利贴

禾薇草

  • 博客(98)
  • 资源 (2)
  • 收藏
  • 关注

原创 【scala】map转jsonString格式异常问题记录

最近准备用flink开发实时交易量统计功能,架构是由业务系统通过kafka发送交易日志,flink服务收集kafka数据统计后存储到es中。scala map转jsonString的时候,结果格式[{"_1":“name”,"_2":“value”}]期望格式{“name”,“value”}原版var OBJECT_MAPPER = new ObjectMapper();var codeMap = new mutable.HashMap[String, Long];elements.for

2022-10-11 10:02:31 1410 1

原创 【oracle】用sql获取状态为异常的存储过程

问题:nested exception is java.sql.SQLException: ORA-06550: line 1, column 7: PLS-00905: objectXXX is invalid ORA-06550: line 1, column 7: PL/SQL: Statement ignored原因:同事写的存储过程创建脚本有问题BEGINEXECUTE IMMEDIATE ‘ALTER TABLE ’ || tableName || ’ ADD PARTITION ’

2022-10-11 09:44:41 1100

原创 【Java】Elasticsearch基于BoolQueryBuilder筛选栏位为null

需求现存在连接和批量两种场景:联机服务键值为appName批量服务键值为batchId存在一个es,存储两套服务异常交易数据。现想提供查询接口,从这个es中分别获取联机异常和批次异常。代码使用QueryBuilders.existsQuery处理 // 联机判断 bool.must(QueryBuilders.existsQuery("appName")); // 批次判断 bool.must(QueryBuilders.existsQuery("batchId"));..

2022-04-12 20:06:48 2556

原创 【JAVA】实现服务启动时通过配置加载不同RabbitMq集群

需求为了高可用,防止一些突发场景(比如说XX光纤被挖事件)。现在很多公司都会做异地灾备。对于异地服务,鉴于通信耗时问题,一般深圳地区的服务,都连着深圳地区的数据库或其他中间件。实现加载配置类(RabbitProperties是spring自带的,基于它搞事)@Configuration@ConfigurationProperties(prefix = "spring.rabbitmq.xx")@ConditionalOnProperty(name = "test.cache.enabled",

2022-03-03 16:31:21 2407

原创 【JAVA】主线程抛出采用线程池时子线程异常错误

前言:有个批量需求,想读一张表A数据,用此表数据维护其他表数据。因数据量可能很大,采用了单线程读表A,多线程处理其他表数据。遇到问题不做处理时,子线程异常是不影响主线程的。参考了很多网上代码,如: ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(10, 100, 30L, TimeUnit.SECONDS, new LinkedBlockingQueue<>(), nam

2022-03-02 19:19:14 1082

原创 @Transactional注解导致service注入失败的一种场景

Spring如何实现事务Spring的核心是IOC和AOP(Aspect Oriented Programming)。AOP是面向切面编程,使用动态代理技术,动态代理内部实现用的是反射。Spring的事务是通过aop来实现的。Spring的代理模式有两种:java自带的动态代理模式和cglib代理模式问题代码模型抽象类:public abstract class abstractTemplate { @Autowired private TestService service;

2021-12-24 11:28:26 703

原创 Java通过RestTemplate实现路由功能

思路通过拦截器,拦截请求,并将请求报文存入ThreadLocal中。后续直接使用,转发。代码拦截器:@Configuration@Import(BeanPostProcessor.class)public class Configuration { /** * 拦截请求,数据处理. */ @Bean @ConditionalOnProperty(name = "enabled", havingValue = "true", matchIfMissin

2021-12-06 20:16:15 1013 1

原创 [jGit]java代码push时删除文件不能上传问题

背景需要开发一套管理系统,需要使用Jgit公共jar包完成java代码对Git的操作。引入jar包版本:org.eclipse.jgit:org.eclipse.jgit:5.1.3.201810200350-r代码: public void pushExistProject(File directory) { try { Git git = Git.open(directory); git.add().addFilepatt

2021-12-06 19:51:38 408

原创 【Java】判断对象是否存在有值的属性

最近在搞个项目,需要做到请求一个接口,这个接口可能涉及多张表的字段。做一套公共机制,可能直接根据是否上送了某张表的栏位更新对应表的值,没涉及的表则不更新。思路将接口dto采用copy工具,给入到一个个类中,然后判断每个类是否存在有值得属性。public class ObjectUtil { public static boolean hasContent(Object object) { return hasContestWithoutKeys(object, Collections.singl

2021-03-01 20:21:03 3406

原创 java正则表达式控制半角字符串输入

@Pattern(regexp = "^[\\x00-\\xff]*$")

2021-01-11 19:38:42 1088

原创 Java实现多字符串之间拼接符号

代码:public String join(String delimiter,CharSequence... chars) { return Arrays.stream(chars).map(s -> StrUtil.isBlank(s) ? "":s).collect(Collectors.joining(delimiter));}这写法多个字符串没有值也会拼接符号,比如说空格和"abc"就拼接成了",abc"。mark下仅供参考。...

2020-11-25 21:22:45 1461

原创 Oracle基础命令二

连接方式1.等值连接from table1 a,table2 bwhere a.num = b.num2.不等值连接from table1 a,table2 bwhere a.num between b.min and b.max3.外连接左外连接:当连接条件不成立时,等号左边的表任然被包含右外连接:当连接条件不成立时,等号右边的表任然被包含右外连接写法如下from table1 a,table2 bwhere a.name(+) = b.namegroup by b.name1

2020-10-28 19:17:30 97

原创 Oracle基础命令一

查询表信息desc tableName查看用户Show user清理屏幕host cls分组函数:avg 平均sum 累加min 最小值max 最大值count 计数wm_concat 行转列非空过滤nvl例:count(nvl(name,0))注意:count(*) 计数时未过滤了非空值count(name) 计数时过滤了非空值注意:1.在select列表中所有未包含在组函数中的列都应该包含在gr.

2020-10-13 20:30:22 155

原创 HtmlUnit解决https证书不信任问题

使用HtmlUnit请求网页地址时报错九月 10, 2020 4:37:41 下午 com.gargoylesoftware.htmlunit.javascript.DefaultJavaScriptErrorListener loadScriptError严重: Error loading JavaScript from [https://---------------------------].javax.net.ssl.SSLHandshakeException: sun.security.

2020-09-10 16:42:09 963

原创 解决gradle项目Configure build下载慢的问题

Gradle加载依赖很慢,换成国内源repositories { //使用国内源下载依赖 maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' } mavenCentral()}

2020-09-10 11:55:49 1398

原创 Java使用graphql client

注意事项1.引入jar包版本注意用1.2以上的,1.1没有addObjectParameter方法,对json报文格式处理有欠缺。org.mountcloudgraphql-client1.22.返回的数据格式为map,建议使用阿里大佬开源的fastjson包解析。代码记录private final String url = "http:xxxxx";private final String token = "Bearer xxxxxxxxxxx";public Object que

2020-09-01 17:30:59 2214 5

原创 Java写CSV文件双引号逗号不转义

问题CSV文件默认逗号换单元格,现想将一对字符串写入CSV的同一单元格中。字符串内容是json格式{“0”:1000,“100”:59,“22”:12}这里既有双引号也有逗号。不让逗号转义直接将内容加上双引号包含起来即可。解决方法String data = "{\"0\":1000,\"100\":59,\"22\":12}";BufferedWriter stream = new BufferedWriter(new OutputStreamWrite(new FileOutputStre

2020-09-01 16:59:24 1790

原创 VUE实现table-column特定值修改颜色,其他情况保持原值

代码<el-table-column prop="level" label="级别"> <template scope="scope"> <span v-if="scope.row.level=='严重'" style="color: red">严重</span> <span v-else>{{scope.row.level}}</span> </template><

2020-08-26 10:38:05 2499

原创 Java时间戳字符串转时间格式字符串

需求java中需将1597800000时间戳格式的字符串转成日期格式的字符串。代码 private static final String TIME_FORMAT = "yyyy-MM-dd HH:mm:ss"; public String timeStampToDate(String time) { return new SimpleDateFormat(TIME_FORMAT).format(new Date(Long.parseLong(time + "000"))); }...

2020-08-20 16:36:35 1811

原创 JS时间戳转日期格式

需求将1597826640000样式的时间戳转成yyyy/MM/dd 上午hh:mm格式代码 new Date(parseInt(time)).toLocaleString().replace(/:\d{1,2}$/,' ');

2020-08-20 12:01:20 1411

原创 VUE读取本地execl文件

一、环境需要需要xlsx包,安装方法:npm install xlsx --save一个execl文件,并且放到vue项目的public目录下。二、代码新建一个.vue<template><div><el-button @click="beforeUpload()">加载数据</el-button></div></template><script>import axios from 'axios

2020-08-11 19:10:51 865

原创 【正则表达式】控制小数点前后数字个数

@Pattern(regexp = "^([1-9]\\d{0,14}|0)([.]?|(\\.\\d{0,4})?)$") private String amt;

2020-08-03 19:53:52 1199 1

原创 【正则表达式】支持不输入或输入只允许个别字符

@Pattern(regexp = "^$|^([YN])$" , message = "错了错了") private String inputFlag;

2020-07-31 17:27:23 1196

原创 Mybatis plus多筛选条件批量更新

前提mybatis plus 自带的updateBatchById方法很6,可以支持使用key批量更新数据。不过因需求要求,现遇需根据多栏位筛选批量更新,很是伤感(吃现成的最开心了)。源码:public boolean updateBatchById(Collection<T> entityList, int batchSize) { Assert.notEmpty(entityList, "error: entityList must not be empty"); St

2020-07-27 09:47:51 16095 6

原创 shell实现数值格式导出

使用sqlplus实现注:此方法sql语句中用到了连接符“||”,则对输出的格式设置无效1.使用colunm 方式sqlplus ${user}/${password}@${host}/sid << EOF >/dev/nullset echo off;set terimspool on;colunm a1 format 999,999,999.99;spool ${filename};select a1,a2,a3 from tablespace.tablenamesp

2020-07-15 11:20:04 165

原创 shell脚本实现对比DB2和Oracle数据库表数据

前言项目需要迁移DB2数据到Oracle数据库中,但两个数据会在生产同时运行一段时间,产生需求:对比两个数据库表数据是否一致,筛选不一致记录展示思路:导出DB2和Oracle数据,再对比两个文件。实现1、导出DB2数据脚本#! /bin/shDB=""DBUSER=""DBPASSWORD=""EXPTFILE="./DB2_FILE.DAT"RUL="modified by nochardel coldel0x7c STRIPLZEROS DECPLUSBLANK CODEPAGE

2020-07-14 21:11:00 559

原创 责任链模式实现链路中注入服务

前言项目中使用到责任链模式重构代码,每个责任的链路中需要引用其他服务方法。按一般责任链的写法是new 链路对象,此时则不适用。正文主要思路是采用接口+Ordered类。接口:public interface BaseHandler extends Ordered { boolean doHandle(InputDTO inputDto);}链路实现:@Componentpublic class FirstHandler implements BaseHandler { @Autow

2020-07-02 19:52:01 699

转载 【转载】使用 Mockito 修改私有属性

分享一篇好文使用mockito做单元测试时,欲对一些私有变量进行mock。头大中,故百度。来自大佬:链接 https://yanbin.blog/mockito-modify-private-field/, 来自 隔叶黄莺 Yanbin Blog正文修改私有属性来 Mock 可能不是一种很好的测试方式, 因为属性名是动态的,但有时不得已而为了,例如下面的代码:public class UserService { private ExternalApi external = Externa

2020-07-02 10:50:05 8888 1

原创 【整理】目标移除fastjson,采用jackson的一些方法使用

前言最近官方宣布fastjson有漏洞,于是一波修改需求迎面扑来。总结下使用jackson的写法。实战0.前置,需要定义ObjectMapper对象,才进行json的格式处理。ObjectMapper mapper = new ObjectMapper;1、Map对象(自己看着玩吧)转Json格式字符串Map<String,String> map = new HashMap<>();map.put("abc","123");try { System.out.pr

2020-06-19 16:22:34 495

原创 oracle建表timestamp设定默认值

语句CREATE TABLE 名字( start_time TIMESTAMP DEFUALT TO_TIMESTAMP('20190101 00:00:00.000000','yyyyMMdd HH24:mi:ss.ff6') NOT NULL;)注:这里的格式,仅对应给定默认值数据格式。不影响最终插入数据后实际展示结果。

2020-06-09 20:31:42 6621 1

原创 Mybatis plus实现Distinct去重功能

不啰嗦,上菜 QueryWrapper queryWrapper = new QueryWrapper(); queryWrapper.select("DISTINCT no,name").orderByAsc("no"); return mapper.selectList(queryWrapper);PS:顺便一提,指明查询出后的结果输出类型,可以参考如下: QueryWrapper<TablePo> queryWrapper = new QueryWrapper<>

2020-06-05 19:24:55 62749 8

原创 Orcale 12 + mybatis plus同时实现键值用户输入和自增

需求因需求需要,迁移数据库,由原来的db2迁移到oracle。同时上线后db2与oracle会并行运行一段时间,同时保证数据一致性。于是需要实现新系统创建服务:传入键值时,按键值插入到数据库;未输入时,键值按数据库自增形式插入。实现建表语句CREATE TABLE 表名 ( ID NUMBER(10,0) GENERATED BY DEFAULT AS IDENTITY , NAME VARCHAR2(10), PRIMARY KEY(ID));Java代码对应数据库的dto

2020-06-04 20:25:15 214

原创 Orcale 12 + mybatis plus实现自增(不用新增序列)

本人不喜废话,直接上代码了。建表语句CREATE TABLE 表名 ( ID NUMBER(10,0) GENERATED ALWAYS AS IDENTITY , NAME VARCHAR2(10), PRIMARY KEY(ID));Java代码项目中,先增加对应插件@Configurationpublic class Configuration { @Bean public IKeyGenerator keyGenerator() { return new Oracle

2020-05-28 09:54:03 605 1

原创 Orcale + mybatis plus实现自增(新增序列)

本人不喜废话,直接上代码了。建序列CREATE SEQUENCE 序列名MINVALUE 1MAXVALUE 10000000START WITH 1INCREMENT BY 1CACHE 20NOCYCLENOORDER;Java代码项目中,先增加对应插件@Configurationpublic class Configuration { @Bean public IKeyGenerator keyGenerator() { return new OracleKeyGe

2020-05-28 09:45:54 1290 1

原创 idea启动maven项目报错找不到包但包是存在的

前言旧maven项目以前是在eclipse开发的。本人在idea上导入后,编译一直报错,找不到包。各种处理,最终解决。现统计下遇到包存在编译找不到的处理方法。处理方法方法一直接点IDEA的FILE -> Invalidate Caches /Restart … -> Invalidate and Restart方法二如果maven下显示如图“Unigore Projects”,那就点击下这个按钮,使其变成“Ignore Projects”方法三把Setting下如图所示的勾选框

2020-05-28 09:32:39 10559 7

原创 Java实现QueryWrapper分页查询

前言最近在用mybatisplus,遇到个需要分页的需求,百度后发现可以使用page功能,但查询后的结果一直是全量。一圈研究发现需要引入mybatisplus的分页插件(官网上有)。实现mybatisplus分页插件: public class MyBatisConfiguration{ @Bean public PaginationInterceptor paginationInterceptor(){ return new PaginationInterceptor(); }

2020-05-22 08:31:31 19584

原创 Java实现以某栏位Elasticsearch聚合查询

设置筛选条件:private QueryBuilder setCondititon(Long lowTime,Long upperTime){ return boolQuery().must(rangeQuery("time").gte(lowTime).lte(upperTime));}设置AGG聚合查询private TermsAggregation queryByMinute(QueryBuilder queryBuilder){ var groupByTeamAgg = terms("

2020-05-13 18:58:19 158

原创 Java实现以时间维度Elasticsearch聚合查询

设置筛选条件:private QueryBuilder setCondititon(Long lowTime,Long upperTime){ return boolQuery().must(rangeQuery("time").gte(lowTime).lte(upperTime));}设置AGG聚合查询private HistogramAggregation queryByMinute(QueryBuilder queryBuilder){ var groupByMinuteAgg = d

2020-05-13 18:52:38 950

原创 Java实现Http的Get请求发送Json格式报文

主函数代码块: HttpClient httpClient = HttpClientBuilder.create().build(); // Get请求 URIBuilder uriBuilder = new URIBuilder(payurl); if (StringUtils.isNotEmpty(reqJson))...

2020-04-14 19:16:45 3895 1

原创 Java实现Json转GET请求字符串

代码: /** * json格式转Get * @param body * @return */ private String jsonToGet(String body){ return body.replace("{", "").replace("}", ""). replace("\"", "")...

2020-04-14 19:10:48 2020

贷款等额本息推算工具Execl

简单的等额本息还款方式,推算工具。欢迎下载使用,有任何建议可以联系本人。 贷款常见,想学习和详细了解的可以互相探讨。

2019-11-26

j8583_changebyjone.zip

对ISO8583协议的变长组合字段域(如63域),如采用长度值压缩为BCD码时。修改支持组合域内子域变长字段的长度值也可以转BCD码。

2019-10-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除