自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

进步让人兴奋

Stay hungry,stay foolish!

  • 博客(90)
  • 问答 (1)
  • 收藏
  • 关注

原创 Java利用反射动态创建XML文件

需要根据不同的Java对象,动态生成对应的XML文件。根据xml创建对应的Java类,结构与xml结构一致。

2022-10-20 18:37:17 477 1

原创 navicat连接postgresql经常断开的问题解决

一、问题场景在使用navicat连接postgresql的时候,每次查询后过不了多久就会报如下的错:二、环境说明服务器:linux centos数据库:postgresql 12.4 (使用docker部署的)连接工具:navicat 12三、问题解决可以在navicat查看pgsql的相关配置:select name,setting,reset_val from pg_settings步骤如下:1、拷贝postgresql.conf文件到服务器某个目录sudo docker cp

2022-02-16 19:06:05 3287 1

原创 centos7使用docker搭建elasticsearch集群

原文发于:https://hjxlog.com/posts/20220215221548.html一、前言前几天买了腾讯云的服务器,正巧最近在学习elasticsearch,于是想搭建一个es集群玩玩。根据关键字在百度上搜了几篇博客,发现内容出奇的相似,我就预感事情并不简单。果然!没有一篇博客能够完整安装的,翻了翻官方文档,要安装官方的镜像啥的,英语也不好,看着难受,退出去了。经过一下午的摸索,现记录一下完整的安装过程。如能帮助到你,那就太好了!如果不行,那就请你再继续接着摸索,谢谢!二、服务器

2022-02-16 09:57:18 1298

原创 Spring中静态变量根据@Value获取不到值

一、场景在application.yml中配置了常量appKey,想在一个工具类里面的静态方法使用,于是使用了静态变量。使用@Value注解获取值,如下:@Value("${appKey}")private static String appKey;发现获取不到,为null。二、解决方法原因: 因为@Value是依赖属性的set方法注入值的,static修饰的属性没有set方法,不能够注入。解决:private static String appKey;@Value("${appKey

2022-02-08 13:53:57 4727 2

原创 Mybatis:一对多及多对一查询

一、前言在之前的mybatis学习中,只有一些简单的查询,但是在业务开发的过程中,有大量的复杂查询,比如一对多及多对一等。本篇主要学习Mybatis如何处理一对多及多对一查询。二、多对一新建两张表,一张学生表,一张老师表。其中学生表中有字段tid为外键,关联老师表的主键。在这个场景下,是学生和老师的多对一查询。2.1 建表语句-- ------------------------------ Table structure for student-- ---------------------

2021-12-04 23:42:47 682

原创 MalformedByteSequenceException: 1 字节的 UTF-8 序列的字节 1 无效。

一、前言在跟狂神视频学习Mybatis的时候,发现只要在xml里面写着中文注释,就会报错:MalformedByteSequenceException: 1 字节的 UTF-8 序列的字节 1 无效。二、解决方法将项目的编码改成UTF-8即可具体做法,在pom.xml中加入: <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

2021-12-04 22:14:18 1163

原创 navicat导出数据库数据

一、前言最近在转移数据库数据,前期用了datax同步数据,速度很快。还有另一个朴素的做法,直接在navicat中导出数据。可以选择:仅导出结构或者导出结构和数据。二、navicat导出数据选择对应的数据库的schema,右键“转储SQL文件”,选择“仅结构”或者“结构和数据”。仅结构:只导出建表语句。结构和数据:导出建表语句和数据库数据。...

2021-12-03 13:34:06 4060

原创 Could not find resource mybatis-config.xml:maven项目模块设置修改

一、前言使用maven构建,编写mybatis测试,点击测试的时候,提示没有加载到资源。最后发现是maven模块设置问题,在此记录一下。二、报错信息java.io.IOException: Could not find resource mybatis-config.xml at org.apache.ibatis.io.Resources.getResourceAsStream(Resources.java:114) at org.apache.ibatis.io.Resources.getRe

2021-11-30 22:44:19 322

原创 Mybatis配置解析

一、Mybatis核心配置文件核心配置文件:mybatis-config.xmlMyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息。 配置文档的顶层结构如下:configuration(配置)properties(属性)settings(设置)typeAliases(类型别名)typeHandlers(类型处理器)objectFactory(对象工厂)plugins(插件)environments(环境配置)environment(环境变量)tran

2021-11-29 22:10:03 5417

原创 No enum constant org.apache.ibatis.type.JdbcType.Integer

一、前言今天使用mybatis插入数据,报了如下的错误:No enum constant org.apache.ibatis.type.JdbcType.Integer出错代码在Mybatis的参数类型中:#{item.tagGroupId,jdbcType=Integer},#{item.sampleSetId,jdbcType=Integer}看下报错就知道,没有枚举常量 JdbcType.Integer,也就是说JdbcType的枚举中没有这个Integer的东西,是我自己写错了,经查

2021-11-23 11:18:11 1736

原创 Java通过反射获取对象的属性和值

一、前言最近有一个功能,需要判断传过来的对象的属性值是否为空,并附带其他一些判断操作。一开始想着直接obj.getXXX()取出来再挨个判断,后来觉得写了太多重复代码了,于是想着用Java反射试一试。现在在这里记录一下, 换了一个例子,获取Person对象的属性名和属性值。二、代码Person对象:public class Person { private String firstName; private String lastName; public Pers

2021-11-19 18:53:07 1628

原创 Java 判断两个List的内容是否完全一致

以List<String>为例,比较List<String> columnNameList和List<String> colTitleList的内容是否完全一致:if (colTitleList.containsAll(columnNameList) && columnNameList.containsAll(colTitleList)) {// ...}

2021-11-19 10:23:14 4446

原创 Java获取List里对象的属性,转换为List

一、需求现在有一个List对象List<ColumnInfo> columnInfos,其中里面的ColumnInfo对象有两个属性,代码如下:@Datapublic class ColumnInfo { private String columnName; private Map<Object, Object> other;}现在只想要把里面的columnName属性取出来,将其转换为List<String>对象。二、代码使用stream

2021-11-19 09:52:10 5669

原创 postgresql 查询当前schema下所有表数据的数量

一、前言最近做项目偶尔需要查询当前数据库下所有表的数据量,一开始都是用notepad++来拼接sql语句来查询,每次都要操作挺久的。后来改成了通过sql拼接sql语句来查询,方便了一些,这里记录一下。二、sql代码SELECT concat('select ''',tablename,''' as table_name,count(1) as sum from ',tablename,' union all') FROM pg_tables where schemaname = 'XXX'其中XX

2021-11-15 10:48:30 10281 3

原创 maven项目,错误: 找不到或无法加载主类 XXX

一、前言今天在接手一个项目的时候,运行main类报了这个错错误: 找不到或无法加载主类 XXX经过好一番查证才找出了问题所在,原因是maven项目的<scope>provided</scope>导致的,现在记录一下。二、测试代码import org.apache.flink.table.functions.ScalarFunction;public class Test extends ScalarFunction { public static void main

2021-11-15 10:37:12 3986 1

原创 Java批量执行datax脚本

一、前言最近在使用datax同步数据表,由于好多个表,一开始每次都需要等一个执行完再执行下一个,这样明显效率很低,于是写了个Java方法来批量操作;环境: linux服务器二、Java代码/** * @Author: Huang JX * @Date: 2021/11/11 * @Description: datax 批量执行脚本,日志存放在当前目录的 DataxSyncLogs 中; * 注意:需要输入 datax 脚本的文件夹路径作为 main 函数的参数,如 home/xxx/data

2021-11-12 16:56:57 1568

原创 Cannot run program “cd“: error=2, No such file or directory

Springboot项目里需要执行Linux命令,来执行datax程序。一开始的代码是:String[] cmdArr = {"python3","datax.py","/home/datax/job/dw/" + fs.getName()};正确的应该是:String[] cmdArr = {"/bin/sh", "-c", "python3","datax.py","/home/datax/job/dw/" + fs.getName()};...

2021-10-23 10:18:21 1313

原创 Springboot定时任务之Cron表达式说明

一、前言最近在做springboot的定时任务,用到了Cron表达式,查阅资料整理了一下。Cron 表达式用于配置 CronTrigger 的实例,Cron表达式是一个字符串,由六个或者七个字段组成,字段之间用空格分隔,用来描述各种时间。表达式格式:* * * * * * *,从左到右分别表示秒 分 时 日 月 星期几 年字段是否必须允许值允许的特殊字符秒是0-59, - * /分钟是0-59, - * /小时是0-23, - * /日期

2021-10-22 14:24:36 915

原创 DataX 不支持数据库读取这种字段类型. 字段名:[source], 字段名称:[1111], 字段Java类型:[java.lang.String].

前言最近使用datax来同步数据,在生产服务器执行脚本没问题,到了测试服务器出现了报错,报错信息如下:具体错误信息为:com.alibaba.datax.common.exception.DataXException: Code:[DBUtilErrorCode-12], Description:[不支持的数据库类型. 请注意查看 DataX 已经支持的数据库类型以及数据库版本.]. - 您的配置文件中的列配置信息有误. 因为DataX 不支持数据库读取这种字段类型. 字段名:[source],

2021-10-19 10:46:01 2166

原创 Java字符串删除某个字符后面的所有字符

思路:1、contains() 判断字符串中有没有存在这个字符2、通过indexOf() 找到字符下标3、substring() 截取字符串代码: public static void main(String[] args) { String code = "012345.SZ"; System.out.println("before: " + code); if (code.contains(".")) { int inde.

2021-10-12 11:14:08 5730

原创 postgreSQL查找某个字段中是否包含某个字符

查找XXX表中的stock_code字段是否包含有.SZ字符串SELECT * FROM XXX where position('.SZ' in stock_code) > 0;

2021-10-09 13:55:59 4195

原创 postgresql解析json字段,取出某个属性的值

SELECT cast(xxx_detail as jsonb)->>'xxxName' ttt FROM XXX其中,xxx_detail是符合json格式的字段,xxxName是解析后对应的属性名,后面的ttt就是字段别名了。

2021-09-29 13:28:54 3428

原创 notepad++把所有数据变成一行

按Ctrl+F,弹出“替换”的窗口查找目标为:\r\n,替换内容为空

2021-09-28 10:11:39 920

原创 BindingException: Parameter ‘bizType‘ not found. Available parameters are [arg2, arg1, arg0, param3,

一、场景在使用mybatis进行多参数查询的时候,报了如下的错;org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter ‘bizType’ not found. Available parameters are [arg2, arg1, arg0, param3, param1, param2]接口如下:String q

2021-09-22 13:56:14 324

原创 Springboot RestTemplate将返回数据转换为指定类型

一、前言在Springboot项目中需要调用外部接口,使用的是RestTemplate,但是返回数据的时候,返回了LinkedHashMap,先前考虑怎么将LinkedHashMap转成Java对象,先转成JSON对象再转回Java对象等等,都不成功。后来转念一想,可不可以直接在返回的时候,直接转换成我想要的Java对象呢,经过一番查询资料,发现是可以的。二、问题场景调用第三方接口代码:RestTemplate restTemplate = new RestTemplate();Map<St

2021-09-14 10:39:25 1524 5

原创 Springboot RestTemplate 调用外部接口demo

public List<UPDataVo> getUPData(DataPlatformReq dataPlatformReq) { RestTemplate restTemplate = new RestTemplate(); Map<String, Object> map = new HashMap(); map.put("companyType", dataPlatformReq.getCompanyType()); ...

2021-09-13 14:23:05 199

原创 Springboot连接postgresql指定模式Schema

url: jdbc:postgresql://地址:端口/数据库?currentSchema=你的模式&characterEncoding=UTF-8

2021-09-10 14:32:26 1198

原创 解决docker容器中mysql中文乱码问题(问号???)

一、前言部署到服务器的Mysql数据库,中文数据返回到前端都是问号乱码。需要通过修改mysql配置文件,将编码格式改成utf8来解决这个问题。mysql是安装在docker容器中的,操作如下:二、查看mysql编码1、查看当前所有的容器sudo docker ps -a2、找到docker中的mysql容器ID根据第一步,找到postgresql的容器idCONTAINER ID,比方是a3a3a3a33、进入容器sudo docker exec -it a3a3a3a3 bas

2021-09-02 16:30:18 1827

原创 docker修改postgresql时区配置

一、前言在开发程序的时候,发现postgresql数据库的时区和北京时间差了8个小时,原因是postgresql使用的是默认的Etc/UTC时区。因此需要改掉,改成PRC,因为装在docker容器中,需要在docker中操作。二、操作docker容器1、查看当前所有的容器docker ps -a如果权限不够就在前面加上sudo。2、找到docker容器ID根据第一步,找到postgresql的容器idCONTAINER ID,比方是a3a3a3a33、拷贝postgresql.co

2021-09-02 14:17:56 2194 2

原创 有网络,但浏览器不能访问网页,有可能是你开了代理!

前言昨天在电脑上用了代理访问google,没有关闭代理的情况下直接关闭电脑。第二天起来发现有网络的,但是Chrome浏览器网页访问不了。解决方法:打开Chrome,设置->高级->系统->打开您计算机的代理设置->使用代理服务器->关闭...

2021-09-02 09:43:45 4758

原创 Mybatis条件查询特定值不生效

<if test="(compType != null) and (compType != '')"> <choose> <when test="compType == '0'"> AND t1.id not in (SELECT DISTINCT company_id FROM company_type) </when> <otherwise>

2021-08-31 18:36:27 430

原创 Springboot-Redis使用zSet实现分页

一、前言最近在做一个业务,场景是这样的:用户批量导入数据,程序需要把导入数据与现有数据库对比,解析成(新增/变更/异常)三个数据,因为用户还需要对这些数据进行部分的修改/删除,因此当时的方案是把数据存放到redis里面,在最后用户确认变更提交的时候再从redis拿数据存到数据库。这三个数据要分开展示,又由于每一项的数据量都很大,因此要做一个分页展示。二、设计方案为了做分页,考虑使用有序的集合来存储数据,选择了zSet数据结构,使用score来从1开始记录每一项的序号,再通过用户传进来的pageSize

2021-08-26 13:42:49 4154

原创 redisTemplate存储数据,本地可以,服务器上中文乱码

一、业务场景需要把用户导入的excel数据存到redis,后期再入数据库。一开始都没有问题,后期出于性能考虑使用了pipeline来优化性能。但是却出现了本地操作没问题,一旦部署到服务器,就出现中文乱码的问题。定位问题,大概率是在使用了pipeline后导致的异常。二、原始代码及原因使用pipeline插入zSet数据的代码如下: public void executePipelined(String key, Map<Integer, String> map) {

2021-08-26 13:21:45 280

原创 Springboot Redis使用pipeline进行批量插入数据优化

一、前言之前做一个业务,需要把缓存数据存到redis中,一开始使用了for循环,检测后发现数据量一大,就会很慢,1w条数据就需要快2分钟。原始的代码如下:LOG.info("开始写入新增数据缓存");for (int i = 0; i < addCompList.size(); i++) { AddDataCacheVo addDataCacheVo = new AddDataCacheVo(); CompanyImportVo companyImportVo = addCom

2021-08-24 18:26:19 2798

原创 springboot redis 报错:org.springframework.data.redis.serializer.SerializationException: Could not read

一、前言之前直接使用springboot redisTemplate来存取redis缓存zSet数据,一开始没问题,后面因为需要优化性能,加上了Pipelined来操作批量数据。再执行代码的时候就出现了这个报错,经过观察,一开始存入的json数据中的双引号是有转义字符的 ",通过redisTemplate.executePipelined添加数据,因为是直接connection.zSetCommands().zAdd(key.getBytes(),score,value.getBytes());添加的字节

2021-08-24 18:11:04 11329

原创 IDEA 给已存在的类添加注释

一、前言前段时间刚转Java,项目做的急,又没有熟悉IDEA,一开始创建类的时候没有给类添加注释,类似下面这种(一开始没有创建)。到了后面设置了IDEA的模板,每次创建类的时候,会自动生成了这个注释,但对已经存在的类,却没有办法生成,因此,这里需要手动设置一个快捷键来添加模板注释。二、添加Live TemplatesFile -> Settings -> Editor -> Live Templates说明:进入Live Templates,找到Java,点击右边的“

2021-08-23 17:15:43 626

原创 Java多线程:创建线程的几种方式

一、前言从C#转到Java技术栈,最近在补一些基础知识。今天学到了Java多线程这一块,记录创建线程的几种方法。二、方式一:继承Thread,实现run()方法步骤如下:1、编写一个类,让这个类继承Thread2、重写run()方法3、调用start()方法执行线程示例代码:public class TestThread extends Thread{ @Override public void run() { // run()线程体 fo

2021-08-21 17:00:29 56

原创 Java中的匿名代码块、静态代码块和构造器的执行

一、前言今天在学习Java基础的时候,注意到一个以前不怎么用的东西,就是匿名代码块和静态代码块。二、特性匿名代码块匿名代码块是在类里面直接用花括号包装起来的代码,在每次new这个对象都会执行一次,可以用来做初始化操作等。public class Person { // 每次new一个对象都会执行一次,可以用来做初始化操作 { System.out.println("这是匿名代码块..."); }}静态代码块静态代码块是用static 关键字修

2021-08-21 12:58:41 303

原创 Java使用stream().filter() 根据属性值来筛选List中的对象

场景把数据库的数据全都取出来,放到内存里和用户导入的数据进行比较。筛选代码一、首先将数据库数据存到一个List中List<Company> allDBCompanyList = new ArrayList<>();this.allDBCompanyList = companyDaoExt.selectAllCompany();二、针对多个属性进行筛选List<Company> comps = this.allDBCompanyList.stream().f

2021-08-20 19:10:04 3858

原创 服务器运行jar不成功

今天到服务器部署应用,直接sudo nohup java -jar xxx.jar &,结果发现直接退出了[1]+ Exit 1 nohup java -jar xxx.jar后来查看日志排查才发现原来是权限问题:别人之前运行了程序,产生了logs这个文件夹,而我现在运行的程序也需要去读写这个文件,而我的权限不够,所以运行不了了。解决方法:增加权限或者直接删掉Logs文件夹...

2021-08-16 18:30:30 1255

空空如也

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

TA关注的人

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