自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 收藏
  • 关注

原创 java使用jsqlparser实现入参,并生成可执行sql

通过java入参获取sql表名,字段名,分组等信息生成sql语句

2023-08-07 21:55:29 1841 1

原创 如何对oracle和mysql进行 分区分表

Oracle和MySQL都提供了一些分区相关的语句,例如添加、删除、合并、拆分、重建、交换等。

2023-08-07 21:34:14 1322

原创 sql中on条件和where条件查询结果一样嘛?

因此,如果您在on条件中加入b.del=0,那么只有满足该条件的b表记录才会和a表记录进行连接,否则就会用null填充。而如果您在where条件中加入b.del=0,那么只有满足该条件的临时表记录才会被返回,否则就会被过滤掉。所以,您的两个查询语句的结果可能是不一样的,具体取决于b表中是否有del不等于0的记录。如果有,那么第一个查询语句会返回更多的记录,而第二个查询语句会返回更少的记录。on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。如果使用 join不会有影响。

2023-07-26 17:05:32 362

原创 自己整理的JAVA集合

结构区别:JDK7的是由一个Segment数组组成,每个Segment是一个类似于HashMap的结构,它包含一个Node数组和一个链表。JDK8的是由一个Node数组组成,每个Node是一个键值对,它可以连接成一个链表或者一个红黑树。锁区别:JDK7的使用了分段锁的机制,每个Segment继承了ReentrantLock,对Segment进行读写操作时需要加锁。JDK8的取消了分段锁,而是使用了synchronized和CAS来实现对每个节点的细粒度锁控制。

2023-07-25 16:41:12 117

转载 BigDecimal

​ Java在java.math包中提供的API类BigDecimal

2022-12-07 14:27:16 106 1

原创 oracle存储过程实现定时备份表和处理重复数据

oralce采用存储过程,实现定时备份某个数据表,并且对原表进行重复数据的处理操作,错误日志的记录等

2022-07-01 14:24:37 1497

原创 springboot使用@Value注解遇到的问题

在配置文件中配置了一个参数值后,不能够正常启动项目,并报如下错误:原因分析:全部参数的构造函数的自动生成,该注解的作用域也是只有在实体类上,参数的顺序与属性定义的顺序一致。发现其他的类也是这么写的没啥问题。是因为我在这个类中加了@Value注解。将配置文件的属性读取出来。解决办法:可以 用@RequiredArgsConstructor 代替 @AllArgsConstructor;@RestController@Slf4j@RequiredArgsConstructor@Reques

2022-03-11 14:13:09 1069

原创 本地远程连接服务器调试

本地可以对测试以及生产环境得代码进行打断点调试1.idea配置新建一个远程Remote JVM Debug修改个名称,以及host和port(host就是服务器的地址,port 给80就行,默认http请求)然后选择对应的项目服务器启动配置没加连接配置需要将第一步生成的命令复制到启动配置里-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:80 放到 nohup java 后面如果放到别的位置,可能会导致起

2022-03-11 11:51:04 1669

原创 java使用jsqlparser实现自定义转换

jsqlparser描述:JSqlParser 解析 SQL 语句并将其转换为 Java 类的层次结构。基本上的sql关键字和函数都可以被jsqlparser解析成对象层层包装。实现的功能:基础sql查询,条件查询,字段和表得别名,排序,分组,聚合,case when,基本上都是有得。我的使用场景:将一个表和字段不是数据库直接查询的表字段,进行通过jsqlparser来转换成elasticsearch中存储的表和字段进行到openlokeng中进行查询界面输入:openlookeng 执行:

2021-09-28 10:07:53 1683

原创 使用groovy 进行java单元测试-基础使用

参考:https://semaphoreci.com/community/tutorials/stubbing-and-mocking-in-java-with-the-spock-testing-framework了解groovyGroovy 是一种基于 JVM 的敏捷开发语言,它结合了 Python、Ruby 和 Smalltalk 的许多强大的特性,Groovy 代码能够与 Java 代码很好地结合,也能用于扩展现有代码。由于其运行在 JVM 上的特性,Groovy 可以使用其他 Java .

2021-09-18 11:04:35 1126

原创 JUNIT 和 Jmockit 进行单元测试

JUNIT 和 Jmockit 进行单元测试参考:http://jmockit.github.io/引入的包gradle方式jmockit('org.jmockit:jmockit:1.49')testCompile('junit:junit:4.12')maven方式<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId><

2021-09-18 10:40:35 571

原创 cuba新项目导入修改数据库和修改打印日志,前端地址配置

cuba新项目导入修改数据库1.build.gradle 的mysql地方改成本地ask createDb(dependsOn: assembleDbScripts, description: 'Creates local database', type: CubaDbCreation) { dbms = 'mysql' host = 'localhost' dbName = 'imp_dev_0_1' dbUser = 'root' dbPassword = '

2021-07-01 10:09:38 283 1

原创 项目优化方案及分析过程,解决办法

一、工具和排查方法二、大批量的导入导出优化三、抽样计算功能的优化1.1. 工具和排查方法1.1.1. 使用jdk自带的 jconsole,直接在cmd命令中打入jconsole,就会弹出一个窗体1.1.2. 使用FinalShell 工具查看1.1.3. 使用jprofile工具查看内存和cpu1.1.4. 前端浏览器控制台,F12查看接口调用的time 耗时1.1.5. 采用打印日志方式查看内存和使用时间totalMemory()这个方法返回的是java虚拟机现在已经从操纵

2021-06-17 11:29:21 1406 1

原创 批量删除前缀 xx% 的数据库表(存储过程函数)

CREATE OR REPLACE FUNCTION "public"."drop_tmp_table"("user_name" varchar) RETURNS "pg_catalog"."void" AS $BODY$#variable_conflict use_variable DECLARE _tbl text; BEGIN FOR _tbl IN SELECT quote_ident(table_schema) ||

2021-06-11 10:39:33 227 2

原创 一个表数据量太大,查询太慢,进行分表(临时表)进行处理

首先对于一个2000W的大表中获取数据,那么速度肯定十相当之慢60W临时表创建的大约需要2-3S ,查询 只需要200-400ms ,所以 大数据量的情况下,我们可以直接使用创建一个临时表来处理该数据,那么就不需要直接去查询大表几千万的数据,那样速度很慢。然后我们抽取出来创建临时表,创建表只需要2-3S那么再进行查询这个临时表,更快 只需要200-400ms,因为已经抽取出来部分数据,数据量已经减少。具体的sql代码- 创建临时表create TEMPORARY table dsp_1622

2021-06-11 10:31:42 4297 2

原创 poi和easyExcel 读取文件内存占用统计

介绍:虽然POI是目前使用最多的用来做excel解析的框架,但这个框架并不那么完美。大部分使用POI都是使用他的userModel模式。userModel的好处是上手容易使用简单,随便拷贝个代码跑一下,剩下就是写业务转换了,虽然转换也要写上百行代码,相对比较好理解。然而userModel模式最大的问题是在于非常大的内存消耗,一个几兆的文件解析要用掉上百兆的内存。现在很多应用采用这种模式,之所以还正常在跑一定是并发不大,并发上来后一定会OOM或者频繁的full gc。EasyExcel是一个基于Java的

2021-06-11 10:28:13 2936 1

原创 java获取真实IP地址

获取真实IP效果NGINX配置主要是添加下面几句话proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header REMOTE-HOST $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;server { listen 8866;

2021-03-03 15:21:06 439 1

原创 java通过inpuStram获取到request的请求流后Controller拿不到参数了

问题:查阅资料后得知:在Spring中request的只能被获取一次,拦截器获取之后就会导致Controller拿不到值,因为我写了个拦截器,去拦截获取的参数,对参数进行校验加密(也就是上一篇的防篡改功能),然后拦截器验证没问题,controller获取的json类型的数据却是空的解决办法写过滤器重新把流再塞回去1.创建个类,为了备份request中的值public class MyHttpServletRequestWrapper extends HttpServletRequestWrappe

2021-02-24 14:03:08 585

原创 springboot 和 js (vue) 实现SM3加密 防篡改

springboot 和 js (vue) 实现SM3加密 防篡改一、以下是对引入SM3进行说明1.首先导入jar<dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcprov-jdk15on</artifactId> <version>1.68</version></dependency>2.写一个jav

2021-02-04 19:45:46 9432 8

原创 java实现在线预览word(docx)功能

在线预览word(docx)功能使用的是kkFileView,一个springboot项目直接进行使用即可Docker容器环境环境运行拉取镜像docker pull keking/kkfileview运行docker run -it -p 8012:8012 keking/kkfileview浏览器访问容器8012端口(http://xxx.xxx.xxx.xxx:8012 )即可看到项目演示用首页来源:https://gitee.com/kekingcn/file-online

2021-01-29 15:06:28 5289

原创 使用nginx在linux配置https详细步骤

1.首先确认安装nginx 和 openssl执行nginx -v 和 openssl version2. 生成秘钥key,运行:创建一个生成文件的目录cd /etc/nginx/mkdir ssl_key然后执行密钥keyopenssl genrsa -des3 -out server.key 20483.创建服务器证书的申请文件server.csr,运行:这里会需要输入一些基本信息,随便输入即可,例如都可以输入你的英文名字openssl req -new -key server.

2021-01-24 11:53:52 1810 1

原创 Spring Boot Admin 监控告警

Spring Boot Admin 监控告警要进行监控,需要两个Project,一个是Admin Server端,负责监控Spring boot的项目,另一个是Admin Client端,是被监控的Spring boot服务。当然也可以一个项目同时做服务端和客户端,监控自己的本项目服务;1.这里提供的是两个服务,首先新建一个server端的springboot项目2.server端pom文件配置<?xml version="1.0" encoding="UTF-8"?><pro

2021-01-20 09:59:18 939 5

原创 搭建docker - registry私服

一、下载安装registry1.首先要有docker环境 查看docker版本sudo docker version2.然后下载registry:sudo docker pull registry3.下载完启动 :sudo docker run -d -p 5000:5000 -v /opt/registry/data:/var/lib/registry --privileged=true --restart=always --name registry registry:latest4

2020-12-21 15:03:27 356

原创 特此记录-使用gitlab ci和 dockerfile和docker-compose 持续集成部署多个项目

这种方式可以同时运行多个maven子项目所有的代码都在gitlab.yml 和dockerfile和docker-compose 中完成的包括jdk和maven环境以及打包部署启动首先看下项目的目录结构和Dockerfile以及gitlab-ci文件的放置位置说明:1.根目录下的 Dockerfile文件是搭建 jdk和maven的环境和配置环境变量的镜像2.api和dispatch目录下的Dockerfile文件是创建对应的镜像3.docker-compose文件是运行启动jar的

2020-12-16 15:34:39 2488

原创 特此记录-使用gitlab ci和 docker 持续集成部署单个项目

领导说要用这玩意持续集成,咱也没弄过,弄了三天,n多个坑,终于可以了,特此记录!使用gitlab ci 持续集成部署先来看下总共这一百来个的成果需要的环境说明:gitlab 服务springboot项目一台虚拟机(java,maven,docker环境)一、首先构建虚拟机的java和maven环境(1)下载 apache-maven-3.6.3-bin.tar.gz和jdk-linux-x64.tar.gz然后后解压tar -zxvf /usr/local/jdk8/jdk-l

2020-12-11 14:03:04 506

原创 使用socket实现一个自己的Tomcat

使用socket实现一个自己的Tomcat创建一个请求的类,获取方法和路径public class MyRequest { private String method; private String url; public String getUrl() { return url; } public String getMethod() { return method; } public MyRequest(In

2020-11-25 17:35:05 325

原创 springboot实现自定义注解加日志切面记录

使用自定义注解,日志切面(前置通知 后置通知,获取controller的error执行结果),多线程首先写个自定义注解/** * 系统日志自定义注解 * * @author weijianxing */@Target({ElementType.PARAMETER, ElementType.METHOD})//作用于参数或方法上@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface SystemLog { /

2020-11-20 19:43:23 795

原创 java使用策略模式实现统一接口的不同效果返回

首先说下什么是策略模式以及策略模式的优缺点。策略模式是指定义了算法家族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化不会影响到其他使用算法的用户;可以避免多重的if else 判断语句1.加入系统中有很多类,而他们的区别仅仅在于他们的行为不同2.一个系统需要动态的在几种算法中选择一种优点:1、策略模式符合开闭原则。2、避免使用多重条件转移语句,如 if…else…语句、switch 语句3、使用策略模式可以提高算法的保密性和安全性。缺点:1、客户端必须知道所有的策略,并且自

2020-11-20 17:41:13 4161 5

原创 java实现识别二维码图片功能

java实现识别二维码图片功能所需maven依赖<dependency> <groupId>com.google.zxing</groupId> <artifactId>javase</artifactId> <version>3.2.1</version></dependency><dependency> <groupId>com.google.zxin

2020-09-18 18:12:13 9577 18

原创 记录面试题

面试题面试题之单项选择题单项选择题1.下面那一项是正确的()A. abstract 修饰符可修饰字段、方法和类B. 抽象方法的body部分必须用一对大括号包住C. 声明抽象方法,大括号可有可无D. 声明抽象方法不可写出大括号答案:DA. abstract修饰类 abstract修饰方法B.C.D中 public void a() ; //注意这里的 ; 号 这才叫抽象方法public void a() {} //这里没有 ;号而是 {} 这不是抽象方法 这是一个完整的 被实现的方法

2020-08-31 22:57:20 3722 1

原创 使用jdk操作wsdl生成webservice代码进行使用

使用jdk操作wsdl生成webservice代码进行使用1.使用Axis生产客户端代码(另存为bat文件)之前很多次不行都是目录包含空格 比如Axis_Lib,Output_Path[java] view plaincopyset Axis_Lib=F:\axis1.4\axis\WEB-INF\libset Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%set Output_Path=D:\Workspacesset Package=com.axis.su

2020-08-10 18:15:30 582

原创 记录 内网http 转为 https(tomcat版本)

内网http 转为 https内网项目启用Https配置手册软件需求:OpenSSL https://www.openssl.org/已经安装了Java Jdk环境制作前的需求:已经配置了Jdk环境变量安装好OpenSSL后配置了环境变量回到顶部开始制作CA根证书在任意盘符(我这里选择G盘)下新建一个文件夹 这里我建立一个ca的文件夹用来存储生成的CA证书回到顶部创建私钥生成私钥命令:openssl genrsa -out ca/ca-key.pem 1024回到顶部创建

2020-07-16 15:31:21 2749 4

原创 Springboot写导出excel

导出excel这里是写的一个日志记录列表导出的,其实都是一样的(java),,前端直接就是写个按钮调用接口就行。这里做个记录方便以后直接C+V @Autowired private ILogService @RequestMapping(value = "/export/excelDownloads", method = RequestMethod.GET) public void downloadAllClassmate(HttpServletResponse response) t

2020-07-16 14:09:24 264

原创 Centos7安装postgresql9.6

Centos7安装postgresql9.6第一步:下载库以root模式进入CentOS7,输入yum install -y https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm第二步:安装执行yum install -y postgresql96-server postgresql96-contrib第三步:初始化数据库执行`/usr/

2020-06-12 18:33:12 757 2

原创 使用CentOs 7安装MySQL

安装MySQL1 下载并安装MySQL官方的 Yum Repositorywget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm然后就可以直接yum安装 yum -y install mysql57-community-release-el7-10.noarch.rpm之后就开始安装MySQL服务器yum -y install mysql-community-server2 MySQL

2020-06-12 18:25:17 102

原创 整体搭建linux\centos

整体搭建linux\centos第一步:下载首先下载需要的文件和包(xshell,xftp,jdk,Tomcat,postgre)第二步:安装安装vm ware,然后安装centOs 版本;第三步:传文件控制好网络连接,连接xftp和xshell,然后通过xftp传文件第四步:解压文件把传好的 后缀名为.tar.gz 进行解压首先进入对应文件夹下tar zxvf apache-tomcat-9.0.13.tar.gztar zxvf jdk-8u191-linux-x64.tar

2020-05-18 15:12:20 87

原创 记录的一些 git 基本命令操作

git分支git checkout -b dev_wei 创建一个分支git branch 查看所有的分支git checkout master 切换到主分支master上在不同的分支上进行的版本管理,只有在自己的分支上才会生效。如果我在dev_wei上做了代码修改,然后提交,在主分支是看不到的删除分支的话,不能够在当前使用分支的上面进行删除,必须切换其他分支进行删除git快速合并git merge dev_wei (dev_wei用户修改代码后提交,然后切换到master用户,

2020-05-09 16:16:56 176

原创 Git学习一:安装以及基本操作

慢慢的尝试,细心的操作,你就会发现其实很简单。Git下载与安装1.首先在官网下载git(我的是windows 64位)https://git-scm.com/downloads2.然后按照步骤安装即可,安装成功后,右键可以看到 有两个 Git GUI Here 和 Git Base Here3.点击 Git Base Here 会弹出一个窗体4.然后就可以和linux操作命令...

2020-03-13 14:21:42 98

原创 JVM学习之常用的查看JVM的工具

常用的查看JVM的工具1使用jdk自带的 jconsole直接在cmd命令中打入jconsole,就会弹出一个窗体然后选择对应的pid即可2 使用jvisualvm,同上,直接命令输入安装 visual GC可本地连接,也可远程连接Arthas也可以查看,不举例了。3.MATJava堆分析器,用于查找内存泄漏Heap Dump,称为堆转储文件,是Jav...

2020-02-25 17:02:09 975

原创 JVM学习之JVM参数和常用命令

JVM参数JVM参数分为四种: 标准参数、-X参数 、-XX参数、其他参数1.标准参数-version、 -help、 -server、 -cp2. -X参数非标准参数,也就是在JDK各个版本中可能会变动-Xint 解释执行-Xcomp 第一次使用就编译成本地代码-Xmixed 混合模式,JVM自己来决定3. -XX参数使用得最多的参数类型:非标准化参数,...

2020-02-18 14:46:02 241

空空如也

空空如也

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

TA关注的人

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