自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 资源 (2)
  • 收藏
  • 关注

原创 Oracle-查询用户下所有表的数据量

一般我们通过count()语句就可以查询单张标的数据量,但是遇到很多情况,查询多张表,数据量特别大的时候,就比较慢,耽搁时间,毕竟开发的时间还是很宝贵的;也有通过下面的SQL去查询数据量,但不知道为什么,有的库可以查到,有的直接返回空,或许是权限问题吧,哪位大神可以解惑。当然也可以进行sum()汇总等写法,可以自由发挥啦!

2024-01-15 15:51:52 1463

原创 SpringBoot如何通过Nginx代理获取真实IP

在有代理的情况下,由于任何请求首先经过Nginx,故通过request.getRemoteAddr()获取的其实是Nginx的IP,并非真实的客户端IP;springboot作为后台代码,获取到的登录IP是前台的代理服务器地址,并不是用户的真实IP地址,让我们在做统计的时候无从下手。下面是一个后台获取IP地址的类,本质上没有什么问题,问题在于,Nginx给你的就是一个代理之后的地址,所以你当然获取不到真实的地址了。即可获取到客户端的真实IP。

2024-01-15 14:58:09 749

原创 Oracle exists 和 in 的区别

如果外表(即主查询)的数据量非常大而内表(即子查询)的数据量较小时,通常使用EXISTS效率更高;反之,如果内表的数据量非常大而外表的数据量较小时,使用IN可能更有优势。Oracle中的EXISTS和IN操作符都用于查询某个集合的值是否存在于另一个集合中,但Oracle中的EXISTS和IN操作符都用于查询某个集合的值是否存在于另一个集合中,但它们在处理效率和用法上存在显著差异。2.IN:IN操作符也用于子查询,但它是将子查询的结果与主查询进行比较,检查主查询中的字段是否在子查询的结果中。

2023-12-25 15:29:44 442

原创 Oracle 如何设置多个like条件查询数据

【代码】Oracle 如何设置多个like条件查询数据。

2023-12-25 15:21:00 1414

原创 CentOS7 安装 MongoDB5

MongoDB是一种NoSQL数据库,它存储数据的方式与传统的关系型数据库不同。MongoDB使用文档数据库模型,将数据存储在自包含的、可扩展的BSON文档中。MongoDB具有高可用性、自动分片、动态查询能力、灵活性等优点,适合于许多不同的应用场景。下面对Linux centos 安装mongodb数据库做一个简单的介绍,主要是工作当中遇到了,记录下;

2023-08-10 14:47:46 360

原创 若依3.6.1 pageHelper在动态切换数据源问题

在使用若依3.6.1ruoyi-cloud 时,新版若以采用了mybatis-plus的多数据源处理方式封装,在切换多数据源时,不生效,去掉事物注解仍为解决问题。

2022-12-29 11:33:26 1243 1

原创 解放生产力之MybatisPlus自定义SQL日志打印

MybatisPlus本身对SQL的应用淋漓尽致,但是一般控制台中SQL日志打印出来,仍然需要手动去填写参数,特别麻烦,今天就这个问题给出解决方法,只针对与MybatisPlus,那种插件之类的不在讨论范围之内哈;直接上代码:package com.**.common.config;import com.baomidou.mybatisplus.core.enums.IEnum;import com.baomidou.mybatisplus.core.toolkit.PluginUtils;

2022-04-26 17:52:05 2206

原创 Springboot定时任务【多线程处理】

对于服务端同时开启多个定时任务的需求,按照普通的操作方式,springboot单线程的处理方式会造成许多问题,比如两个定时任务时间冲突,只能等一个执行完成在执行另一个;当一个定时任务出现问题,另一个定时任务也无法执行,整个定时任务服务可能会卡死,不再运行,下面所以写,通过多线程方式调用定时任务,创建线程池,姐可能的避免任务冲突的情况;第一步,创建线程池package com.**.config;import org.springframework.context.annotation.Bean

2022-03-28 11:17:45 4923

原创 Oracle 数据去重操作记录

记录一次Oracle数据去重操作;背景,由于某业务表数据来源比较复杂,数据量大,并且不定时推送,所以建表时没有主键,无法进行数据过滤,造成表中数据重复较多;因此,要对该表进行数据去重,操作如下:--查到去重后的所有数据的rowID,再根据rowID去查到去重后的结果集,然后可以直接删除(not in)或者保守处理(创建新表,把去重后的数据存进去,再改表名即可)select * from tableName s where s.rowid in (select min(rowid) fr

2022-02-22 14:19:04 683

原创 Java中 “Nov 11, 2021 1:31:21 PM“ 的格式转换

此处与平常我们遇到的“yyyy-MM-dd hh:mm:ss”格式不同,所以在转换时需要特殊定义下format的格式 public static void main(String[] args) throws Exception{ String a = "Nov 11, 2021 1:31:21 PM"; SimpleDateFormat format = new SimpleDateFormat("MMM dd, yyyy hh:mm:ss aa...

2021-11-11 15:16:10 686 1

原创 Antd vue 中 s-table 序号翻页后连续自增[三步搞定]

注意三处,即可实现:1.<s-table> 标签中的属性: :pagination="pagination"此属性表示使用自定义分页;在return中添加自定义分页: pagination: { total: 0, pageSize: 10, // 每页中显示10条数据 showSizeChanger: true, pageSizeOptions: ['10', '20', '60', '

2021-09-13 14:57:41 1390

原创 MySQL递归所有节点

表:CREATE TABLE `btd_sys_menu` ( `menu_id` bigint(20) NOT NULL AUTO_INCREMENT, `parent_id` bigint(20) DEFAULT NULL COMMENT '父菜单ID,一级菜单为0', `name` varchar(50) DEFAULT NULL COMMENT '菜单名称', `url` varchar(200) DEFAULT NULL COMMENT '菜单URL', `perms`

2021-07-30 16:06:08 202

原创 MySQL 解压版下载安装

1.下载中科大镜像,国内下载较快(迅雷),可修改版本如8http://iso.mirrors.ustc.edu.cn/mysql-ftp/Downloads/MySQL-5.7/mysql-5.7.30-winx64.zip官网下载路径,我自己下慢的要死https://dev.mysql.com/downloads/mysql/2.解压到相应的位置即可3.配置环境变量MYSQL_HOME:D:\mysql-5.7.30-winx64 此处为mysql解压路径在.

2021-07-30 15:54:17 650

原创 Linux下cron定时重启jar

此处省略cron相关安装步骤,直接进入正题;cron服务相关命令:service crond start //启动服务service crond stop //关闭服务service crond restart //重启服务service crond reload //重新载入配置service crond status //启动服务cronTab相关命令:crontab [-u username]    //省略用户表表示操作当前用户的crontab -e

2021-07-12 16:10:29 2063 2

原创 java使用正则验证登录密码

需求:密码长度至少8位;且同时包含数字、大写字母、小写字母和特殊符号;代码: /** * 正则验证 * @param passWord * @return */ private static boolean verifPwd(String passWord) { String regExp = "^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\\W_!@#$%^&*`~()-+=]+$)(?![a-z0-9]+$)(?![a.

2021-04-16 16:17:49 527

原创 List 通过stream()取差集

利用java8的stream流操作,快速匹配出差集,似乎只能是用大集合比较小集合去操作...import java.util.Arrays;import java.util.List;import java.util.stream.Collectors;public class ListChaji { public static void main(String[] args) { List<Integer> list = Arrays.asList.

2021-03-26 10:37:53 1644

原创 JAVA8 stream() 的简单应用

以下代码对java8 stream操作进行简单应用,比如filter 过滤数据、sort 排序等,特此笔记@Override public List<Map<String, Object>> getGisZfrySd(String startDate, String endDate, String areaCode, String areaName) { //返回结果集 List<Map<String, Object...

2021-02-25 10:36:34 133

原创 springboot多数据源dynamic-datasource方式

背景项目中需要连接多个数据源,可能是一主多从,或者不同的多数据源,或者多个不同类型的数据源如项目中有mysql库也有oracle库具体配置1.pom配置<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.0.1</vers

2021-02-07 17:23:02 3237

原创 mysql 事物的四种隔离级别

事务的 四个特征(ACID)事务具有四个特征:原子性( Atomicity )、一致性( Consistency )、隔离性( Isolation )和持续性( Durability )。这四个特性简称为 ACID 特性。1 、原子性。事务是数据库的逻辑工作单位,事务中包含的各操作要么都做,要么都不做2 、一致性。事 务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。因此当数据库只包含成功事务提交的结果时,就说数据库处于一致性状态。如果数据库系统 运行中发生故障,有些事务尚未完成就

2020-05-10 11:53:32 141

原创 Java 多线程之悲观锁与乐观锁介绍与深入探索

一、悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。Java中synchronized和ReentrantLock等独占锁就是悲观...

2020-04-02 14:52:40 121

原创 SpringBoot特性见解与分析

一、SpringBoot解决的问题1、使编码变得简单2、使配置变得简单3、使部署变得简单4、使监控变得简单二、springboot主要特性1、遵循习惯优于配置的原则。使用springboot我们只需要很少的配置,大多数使用默认配置即可2、项目快速搭建。springboot帮助开发者快速搭建spring框架,可无需配置的自动整合第三方框架3、可以完全不使用xml配置,只需...

2020-04-02 14:50:06 238

原创 Java 请求转发和重定向的区别

一、请求转发和重定向1)请求转发:request.getRequestDispatcher(URL地址).forward(request, response)处理流程:客户端发送请求,Servlet做出业务逻辑处理。 Servlet调用forword()方法,服务器Servlet把目标资源返回给客户端浏览器。2)重定向:response.sendRedirect(...

2020-04-02 13:48:54 200

原创 Servlet的生命周期简述

Servlet的生命周期分为5个阶段:加载、创建、初始化、处理客户请求、卸载。1.加载:容器通过类加载器使用Servlet类对应的文件来加载Servlet2.创建:通过调用Servlet的构造函数来创建一个Servlet实例3.初始化:通过调用Servlet的init()方法来完成初始化工作,这个方法是在Servlet已经被创建,但在向客户端提供服务之前调用。4.处理客户请求...

2020-02-12 16:38:40 2525

原创 spring事务属性的种类

事务属性的种类:传播行为、隔离级别、只读和事务超时a)传播行为定义了被调用方法的事务边界。 传播行为 意义 PROPERGATION_MANDATORY 表示方法必须运行在一个事务中,如果当前事务不存在,就抛出异常 PROPAGATION_NESTED ...

2020-02-12 16:32:30 184

原创 两个Integer的引用对象传给一个swap方法在方法内部交换引用,返回后,两个引用的值是否会发现变化

答案:不会可以说Java中只有值传递。具体分析----Java内存模型简介:  Java内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量这样底层细节。此处的变量与Java编程时所说的变量不一样,指包括了实例字段、静态字段和构成数组对象的元素,但是不包括局部变量与方法参数,后者是线程私有的,不会被共享。  Java内存模...

2020-02-12 15:07:15 419

原创 Java AOP的底层实现原理

一、什么是AOP1、AOP:Aspect Oriented Programming(面向切面编程),OOP是面向对象编程,AOP是在OOP基础之上的一种更高级的设计思想。2、OOP和AOP之间也存在一些区别,OOP侧重于对象的提取和封装。----封装对象AOP侧重于方面组件,方面组件可以理解成封装了通用功能的组件,方面组件可以通过配置方式,灵活地切入到某一批目标对象方法上。----封装...

2020-02-12 11:19:48 704

原创 为什么线程执行要调用start而不是直接run

直接run,跟普通方法没什么区别,先调start,run才会作为一个线程方法运行!多线程的原理:相当于玩游戏机,只有一个游戏机(cpu),可是有很多人要玩,于是,start是排队!等CPU选中你就是轮到你,你就run(),当CPU的运行的时间片执行完,这个线程就继续排队,等待下一次的run()。调用start()后,线程会被放到等待队列,等待CPU调度,并不一定要马上开始执行,只是将这...

2020-02-11 16:59:11 651

原创 遍历Hashmap的几种方式

public static void main(String[] args) { HashMap<String, String> map = new HashMap<>(); map.put("1", "M"); map.put("2", "J"); map.put("3", "X"); /...

2020-02-11 16:54:41 3986

原创 JVM常见命令

1. jps   显示系统中所有Hotspot虚拟机进程2. jinfo   显示虚拟机的配置信息,可观察进程运行环境参数,包括Java System属性和JVM命令行参数3. jstack  显示虚拟机的线程栈信息,用于生成当前JVM的所有线程快照4. jstat   实时显示本地或远程JVM进程中类装载、内存、垃圾收集、JIT编译等数据5. jmap  用于生成虚...

2020-02-11 16:37:19 335 1

原创 JAVA中的锁有哪些种类,都有什么区别?

公平锁/非公平锁 可重入锁 独享锁/共享锁 互斥锁/读写锁 乐观锁/悲观锁 分段锁 偏向锁/轻量级锁/重量级锁 自旋锁上面是很多锁的名词,这些分类并不是全是指锁的状态,有的指锁的特性,有的指锁的设计,下面总结的内容是对每个锁的名词进行一定的解释。公平锁/非公平锁公平锁是指多个线程按照申请锁的顺序来获取锁。非公平锁是指多个线程获取锁的顺序并不是按照申请锁的顺序,有可能...

2020-02-11 16:21:07 432

原创 缓存----Memcache和Redis的区别

MemCache是什么MemCache是一个自由、源码开放、高性能、分布式的分布式内存对象缓存系统,用于动态Web应用以减轻数据库的负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高了网站访问的速度。MemCaChe是一个存储键值对的HashMap,在内存中对任意的数据(比如字符串、对象等)所使用的key-value存储,数据可以来自数据库调用、API调用,或者页面渲染的结果。...

2020-02-11 15:48:28 218

原创 MySql中存储引擎myisam和innodb的区别

1.概述 相对其他数据库而言,MySQL的锁机制比较简单,其最显著的特点是不同的存储引擎支持不同的锁机制。比如,MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking);InnoDB存储引擎既支持行级锁( row-level locking),也支持表级锁,但默认情况下是采用行级锁。 MySQL主要的两种锁的特性可大致归纳如下:表级锁:...

2020-02-10 17:47:56 78

原创 ConcurrentHashmap的锁是如何加的?是不是分段越多越好

JDK1.8的ConcurrentHashmap利用 ==CAS + synchronized== 来保证并发更新的安全底层使用==数组+链表+红黑树==来实现---------------------------------------------------------------------------------------线程不安全的HashMap因为多线程环境下,使...

2020-02-10 16:18:50 5477

原创 关于MySQL性能优化技巧总结

MySQL优化三大方向① 优化MySQL所在服务器内核(此优化一般由运维人员完成)。② 对MySQL配置参数进行优化(my.cnf)此优化需要进行压力测试来进行参数调整。③ 对SQL语句以及表优化。MySQL参数优化1:MySQL 默认的最大连接数为 100,可以在 mysql 客户端使用以下命令查看mysql> show variables like 'max_con...

2020-02-10 16:01:56 182

原创 java解析20万Excel

目前java导入Excel文件,有少量数据时使用Workbook解析没有问题,但在遇到海量数据时就会崩溃,查阅资料结合别人的代码自己也写了一个实例。先看结论再看代码:1.优点:灵活,如有多个不同的Excel表,可以写多个ExcelXXXReader,例如我有三个表,Coupon,Qa,Order,那我就对应ExcelCouponReader,ExcelQaReader,Excel...

2019-03-22 13:15:52 886

原创 WebMagic 剖析

WebMagic首先,爬虫的本质:基于Http协议请求目标地址获取响应结果解析并存储。01导语1、爬虫基础知识2、优秀国产开源爬虫框架webmagic剖析02爬虫基础1、爬虫的本质爬虫的本质:基于Http协议请求目标地址获取响应结果解析并存储。2、HTTP请求请求头(Request Headers):包装了http请求的基本信息,比较重要的如:user...

2019-03-21 14:06:25 1212

原创 递归查询所有部门,并按部门等级打印

实体:package demo;/****@author:*@CreateTime:*@ModifiedDate:*@ModifiedBy:*@Version:*/public class Dempr { private String demp1; private String demp2; private String demp3; public Dempr(...

2017-11-30 14:21:37 1010

windows11 右键菜单 打开全部内容

切换回windows10的右键菜单样式,无需再次点 查看更多,费劲巴拉的!!! 具体操作:双击打开,输入1 回车 ---切换为win10经典模式 输入2 回车----切换回win11默认模式

2022-10-10

springboot + mybatis-plus + oracle + 多数据源 + redis + hutool

springboot + mybatis-plus + database+ 多数据源 + redis + hutool 框架干净,没有其他冗余的成分; 配置了MP的代码生成器,意见生成代码,节省开发时间! 可用于各种定时任务处理,各种夸库操作, 多数据源支持Oracle、Mysql、Sql Server 等数据库夸库操作,使用 @DS 切换数据源。, 可设置多主多从 、纯粹多库(记得设置primary) 、混合配置等; Hutool工具类库,降低相关API的学习成本,提高工作效率;

2022-04-06

自动生成系列

自动生成java代码(根据项目需求),通过访问数据库来实现

2018-12-09

空空如也

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

TA关注的人

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