- 博客(337)
- 资源 (34)
- 收藏
- 关注
原创 pgsql_postgresql表的继承关系查询
表继承是pgsql的一个特性,通过表继承可以方便的实现表数据的横向拆分(表分区),从而实现对数据做物理隔离等操作。继承有别于表分区,继承可以很多层级。比如存储省、市、区的数据时,即要物理隔离每层数据又要按层级统一查询,此时做个带有继承关系的表是很好的实现方式。实现方法是,建立三个shcema为 province、city、region,每个schema中建立一个表 persion ,并实现继承关系如下:管理继承关系是个麻烦事,如果库中有1000张表,有部分表没有实现三级继承关系,如何排查?
2023-12-15 20:45:00 412
原创 springboot1.x升级到springboot3.x中遇到的问题总结
springboot是个很受欢迎的框架,减化了spring mvc的xml配置,现在springboot已经升级到了springboot 3.x,但还有一些老项目用的技术栈是java8+springboot 1.x。参照之前的项目配置去运行新版本的springboot 3会踩很多坑,技术栈的升级过程如果还按照原有的思维定式去操作是很难定位问题的。下面总结了升级过程中遇到的一些问题。
2023-12-13 19:45:00 278
原创 springboot_3.2_freemark_基础环境配置
FreeMarker 是一款模板引擎:即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。模板编写为FreeMarker Template Language (FTL)。它是简单的标签语言。需要在服务器端组织数据,之后通过编写FTL模板显示已经准备好的数据。在模板中,你可以专注于如何展现数据,而在模板之外可以专注于要展示什么数据。
2023-12-10 11:19:55 314
原创 springboot_tomcat开启access log日志,监控打印每个请求地址和响应时间
springboot 1.x 内置tomcat服务器,其中的access log日志可以记录每次请求、响应的一些关键信息,这为我们排查分析系统性能有很大的帮助。但springboot默认是不开启access log的,下面介绍下access log的开启方式和一些日志格式配置。通过记录access log,可以排查每个请求的一些关键信息。分析出那些地址是常用的请求,那些服务耗时严重,那些时间段的请求量大等信息。这些信息可以通过日志分析工具去分析,也可以使用awk命令实时统计。
2023-12-08 18:53:49 1591
原创 pgsql忘了登录免密,重置修改pgsql登录密码的方法
psql 命令行工具是PostgreSQL中的一个命令行交互式客户端工具,位置在安装目录的bin目录下(D:\Program Files\PostgreSQL\14\bin)重置密码需要执行命令:psql -h 127.0.0.1 -p 5432 -U postgres。修改前做好备份,密码重置完成后还需要将配置还原!
2023-12-07 19:42:49 1036 3
原创 Java_JDK8到JDK21各版本发行时间及重要特性
一直以来,Java8 都是 Java 社区心头的痛,Java8提供了很多特性,比如Lambda 表达式、Optional 类,加上Java8超长的支持时间,都导致了JDK8的使用至今。因为 Java 届的霸主框架 SpringBoot,选择了最小支持的 Java lts 版本,就是最新的 Java17。从 JDK 诞生到现在,还在长期支持的版本主要有 JDK 7、JDK 8 、JDK 11以及 JDK 1,JDK 17 将是继 Java 8 以来最重要的LTS版本,是 Java 社区八年努力的成果。
2023-12-04 18:54:48 5392 1
原创 Springboot_Tomcat数据库连接池配置
springboot 1.5x 默认使用 tomcat 连接池,配置后是否生效可以通过 org.apache.tomcat.jdbc.pool.DataSource 对象监控。
2023-12-01 21:15:00 568
原创 window配置完hosts电脑重启后莫名被还原
网上查不到 *.gw.bk 这个文件是怎么产生的,如果有类似的问题可以尝试这么修改。查问题时看到有些备份文件的名字是 hosts_backup 这个。按照同样的方法处理就可以了。
2023-11-28 12:05:30 1217 2
原创 Git多库多账号本地SSH连接配置方法
在使用Git管理代码时,很大可能会存在多个不同的库,公司(一般部署的是私服),个人(github、gitee或其他的),这时候就要同时操作多个不同的账号提交代码。下面说下使用ssh方式配置和管理多个git账号的方法。通过以上配置,可以方便的在多个库中切换账号。我们只需要在conle的根目录下执行git命令即可,git会通过域名去寻找当前库需要使用的私钥,完成鉴权操作。
2023-11-27 22:45:00 392
原创 java_cron表达式_打印下次执行时间验证表达式是否正确
通过上面的测试,可以方便的查看下次执行时间,去校验cron表达式是否正确。需要注意的是 * 的使用,如写成这种形式 * */2 * * *?可能导致每秒钟都在执行。
2023-11-14 19:45:00 386
原创 pgsql_全文检索_使用空间换时间的方法支持中文搜索
对于简单的全文检索场景,使用pgsql就可以实现,对于检索的基础概念如文档、查询和操作符,词频、权重、排序、高亮都简单说明。pgsql默认的to_tsvector()函数只支持使用空格进行分词,对于中文这个函数就不好用了。对于中文分词有两个方案解决:1>使用pgsql的中文分词插件;2>利用空间换时间的方法,在记录写入db前利用java的jieba等分词组件对文档分词,并按tsvector格式拼接,独立一列记录分词后的类型。如果需要提高检索效率,考虑在tsvector字段上添加GIN类型索引。
2023-11-10 19:00:00 3194 2
原创 win10_Git基于WSL(Linux子系统)统计代码行数命令
找到的基于git统计代码行数的命令,一般都是基于linux系统的shell命令。在使用mac电脑或者linux系统开发时,执行这些命令比较方便。但是还有大部分人是使用windows做开发,这时就遇到麻烦了,因为基于shell的统计命令不能在windows系统下运行。2022年11月16日微软 Win11/10 Linux 子系统 WSL 1.0.0 正式版发布。这也为这些在windows上做研发的人们提供了执行原生linux命令提供了遍历。
2023-10-19 20:30:00 266
原创 java_Springboot_Mybatis-Plus_自定义多数据源MybatisSqlSessionFactoryBean配置
需要在服务中集成表结构维护的功能,维护表结构就需要使用具有执行DDL脚本权限的账号。为了保证系统的安全性,考虑在工程中配置多个数据源引入不同权限账号,高权限账号只在特定逻辑中使用,其它默认业务使用低权限账号。加入新的数据源不能影响已有的功能,保证已有功能继续使用只具有CRUD权限的账号。看了几个多数据源接入方案,都不太满足需求。Springboot默认支持的多数据源Mybatis-Plus的多数据源既动态数据源dynamic-datasource插件Alibaba Druid动态数据源。
2023-09-27 16:22:02 2708 1
原创 win10-docker-mysql镜像安装运行基础
因为通过 docker search 并不能查看某个镜像的版本信息,如我需要特定版本的 mysql 那怎么办呢~对已经运行的容器更改目录映射不太方便,这里采用删除重新运行的方式;
2023-09-01 14:04:07 839
原创 windows子系统-wsl命令基础用法和无响应问题排查及解决方法
如果运行的是 Windows 10 版本1903 或 1909,请在 Windows 菜单中打开“设置”,导航到“更新和安全性”,然后选择“检查更新”。对于 x64 系统:版本 1903 或更高版本,内部版本为 18362.1049 或更高版本。对于 ARM64 系统:版本 2004 或更高版本,内部版本为 19041 或更高版本。出现错误:如果出现“系统找不到指定的文件”的提示,是因为之前安装的没有卸载的原因。注:如果安装完后执行 wsl -l -v 提示“没有可用发行版本”,可用方法二安装。
2023-08-28 10:49:48 10334
原创 Java-Maven-解决maven deploy时报 401 Reason Phrase Unauthorized 错误
一般是多个项目中,例如a项目中使用了b项目的一些方法需要添加b项目作为依赖,此时就需要将b项目使用install方式打包到本地[maven]仓库中,以此来给a项目依赖导入调用。在本地的pom文件配置好私服仓库的信息之后,执行deploy命令,可以将maven所打的jar包上传到远程的repository,便于其他开发者和工程共享。项目需要打成jar包上传到私服,供其它项目引用。deploy与install的主要区别就是install是将项目jar包放在本地仓库,而deploy是放在私服仓库。
2023-08-22 16:25:40 5486
原创 java - springboot_1.0 - jdbc tomcat 连接池的简单配置
连接池配置需要考虑几个因素,如:数据库的最大连接数是多少?有几个微服务需要访问这个DB?每个微服务部署了几个实例?等等。比如我们只使用一个DB实例,最大连接数为1600;集群部署了60个实例,都需要访问数据库;那么每个服务的maxActive配置应该小于26(1600/20);在实际配置时,还需要考虑为扩容预留的链接等情况,所以maxActive=20是一个比较合理的配置;
2023-07-19 17:07:11 1271
原创 java-通过异或(xor)实现快速加解密的方法
运算规则如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。更容易记忆的规则(半加运算)异或也叫半加运算,其运算法则相当于不带进位的二进制加法:二进制下用1表示真,0表示假,则异或的运算法则为:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同为0,异为1),这些法则与加法是相同的,只是不带进位。所以异或常被认作不进位加法。异或不常用,几天不不碎碎念几遍规则,有个2周就把它忘干净了!!!。首先说RandomAccessFile是个很强大的类,读写文件不丢内容。
2023-07-07 11:42:23 991
原创 java-Mybatis自定义JsonObjectTypeHandler动态解析数据库JSON类型数据
配置并使用自定义的TypeHandler比较容易,继承个基类实现几个方法就OK了。不过总有一种猜的成分在里面,不知道他是如何工作如何实现的,甚至不清楚我自定义的handler是否成功,是否注册到了需要生效的位置。如果不通过分析代码分析流程自己永远只能在“黑盒”之外用一用。遇到问题解决问题,是很好的学些过程,在时间和进度允许的的情况下,可以钻下“牛角尖”。
2023-06-05 13:51:24 2256
原创 Springboot-mybatisplus-解决分页组件IPage失效问题
mybatisplus的分页插件IPage很好用,不管是基于@select注解还是基于XML的都可以实现分页查询;不知道代码有什么改动,用着用着就分页居然不好使了-_-,select时由于没有注入分页条件,导致将所有结果都返回了。没有深究直接上解决方案吧!
2023-05-22 16:56:17 2066
原创 java-Springboot+Junit-解决如何构建request、response、session、cookie模拟封装http请求问题
一看到HttpServletRequest接口有36个实现类时,当时就想自己实现这个接口造个轮子。但看到了接口多达50个需要实现的方法时打消了这个念头。还是踏实找找有没有已经实习的直接能用的类吧。去实现HttpServletRequest接口对我们肯定是有帮助的,但是对于完成业务功能来说就有点儿“误入歧途”了,影响了工作效率。一个Request对象的实现可能需要你去了解一堆的知识点,未知的概念和一个个坑等着你去踩,提高工作效率放到第一位!!!
2023-04-13 16:01:22 1894
原创 java-使用Arthas全链路统计方法调用链和执行耗时
Arthas监控诊断产品功能比较多,可以帮助我们不停服务在线诊断问题。使用jmh配合Arthas可以进行吞吐量、平均执行时间等基础测试和性能监控分析,帮助开发人员科学定位性能瓶颈和优化点。
2023-03-21 17:22:25 3145
原创 java-使用jmh基准测试框架比较五种字符串拼接性能
Java中提供了5种字符串拼接的方法,使用+拼接字符串是最长见的方法。除此还有StringBuilder、StringBuffer、MessageFormat、StringFormat单纯从拼接执行时间上比较下五种方式的性能。
2023-03-21 08:51:51 225
原创 Springboot+Mybatis-解决JPA、JDBC冲突导致@Transactional事务不生效不回滚的问题
项目中jpa、mybatis混用时,需要在使用@Bean(“xxx”)注解注册对象时,对dataSource、sqlSessionFactory、DataSourceTransactionManager显示配置;注解@EnableTransactionManagement标记启用事务,没加事务不会起作用,手动调用session对象的rollback()也无效;通过打印事务管理器,发现Mybatis环境下的事务管理器实例为JpaTransactionManager对象,明显不对。
2023-03-16 13:32:38 2885
原创 pgsql-Create_ALTER_GRANT_REVOKE命令语法
SELECT允许 SELECT 从任何列、或特定的列、表、视图、物化视图、或其他类似表格的对象。也允许使用COPY TO。还需要这个权限来引用UPDATE 或 DELETE中现有的列值。对于序列,这个权限还允许使用currval 函数。对于大对象,此权限允许读取对象。INSERT允许将新行的INSERT加入表、视图等等。可以在特定列上授予,在这种情况下INSERT命令中只有那些列可以被分配(其他列将因此而收到默认值)。还允许使用COPY FROM。UPDATE。
2023-02-28 16:27:46 796
原创 SpringBoot-使用链接字符串动态创建SqlSessionFactory执行任意SQL脚本
SpringBoot大大减少了使用XML配置的复杂性,但是想通过代码去实例化一个对象有点儿无从下手的感觉。SpringMVC中通过XML的配置和层级关系,大致能翻译为代码去构建一个对象。SqlSessionFactory的创建也是参考了XML的配置去构建的。环境:SpringBoot 1.56 + Pgsql 14。
2023-02-23 16:00:27 996
原创 pgsql-用户&角色&组角色创建和维护
pgsql高版本中授权体系里将用户、组、角色都合并到role对象中,完全松散管理。没有login特性的role可以理解为角色;带login特性的可以理解为用户;官方文档中grant 授权语法里的语法结构仔细的看看,结构基本一致注意下on后边的关键字,对角色的理解很有帮助。
2023-02-09 16:38:45 1007
原创 SpringBoot—@ComponentScan注解过滤排除不加载某个类的三种方法
不同场景下按需配置即可,我遇到的问题是有那么几十个类有冲突,不想注入这些类,这时我使用正则过滤特定类的方法解决了我的问题。
2022-11-29 17:10:28 7272
原创 java-mybatis-自定义interceptor拦截器-获取原生sql补全公共参数
环境 pgsql + jdk1.8 + mybatis + springboot。
2022-11-17 16:02:29 3193
原创 pgsql-修改默认密码
初始化数据库之后默认的密码为空或设置为postgres(与用户名相同),此时可以直接登录数据库,但这样很不安全,需要设置密码。
2022-10-13 15:42:00 7535
原创 分库分表解决300亿记录存储的三个方案方法
以上是对300亿数据分库分表的一种实现方案。为了保证高可用还需要进行读写分离,同时做好监控体系,包括但不限于:服务器的磁盘容量、磁盘IO、CPU负载;主从同步延时、慢查询、db缓存刷新频率等指标。阿里巴巴《Java 开发手册》提出单表行数超过 500 万行或者单表容量超过 2GB,才推荐进行分库分表。不同硬件环境下对于分库分表的阈值也有差异,主要还是需要看DB缓存、服务器的磁盘IO。服务器磁盘IO良好的情况下,单表1亿查询也是没问题的。...
2022-08-26 10:54:53 236
原创 windows10 wsl 中安装 .net core 6.0 运行环境
wsl访问本地磁盘需要从挂载点访问,就是/mnt/e,其中e为本地磁盘盘符,知道挂载点就可以在wsl和windows中任意交换文件了。
2022-07-22 10:09:37 3121
原创 windows10(19044_1706)离线安装wsl和Docker的填坑记录
docker安装需要首先配置windows的wsl环境,配置时推荐使用windows的文档一步步操作。由于本地网络无法访问windows应用商店,所以只能手动安装linux发行版本,梳理了三种安装方法。由于本机使用了proxifier软件,导致安装wsl、子系统、docker都是问题,总结了问题避免后来者踩坑。......
2022-07-20 10:53:42 1188
原创 Java-SpringBoot AOP-半小时了解AOP知识及使用注解实现AOP
springboot 2.7.0jdk 8AOP (Aspect Orient Programming),直译过来就是 面向切面编程,AOP 是一种编程思想,是面向对象编程(OOP)的一种补充。面向切面编程,实现在不修改源代码的情况下给程序动态统一添加额外功能的一种技术。AOP可以拦截指定的方法并且对方法增强,而且无需侵入到业务代码中,使业务与非业务处理逻辑分离,比如Spring的事务,通过事务的注解配置,Spring会自动在业务方法中开启、提交业务,并且在业务处理失败时,执行相应的回滚策略。Spri
2022-07-12 18:02:47 640
原创 Java-SpringBoot-@Transactional-事务注解的失效和不回滚的场景
Java-SpringBoot-@Transactional-事务注解的失效和不回滚的场景前言事务(Transaction)指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。SpringBoot 通过 @Transactional 注解大大简化了开发时事务使用的复杂度,但同时也引入了不少隐藏的坑。使用不当会引起事务失效、不能回滚等情况,从而破坏记录的完整性。我们梳理下导致事务失效的常见错误避免踩坑。环境Spring Boot (v2.6.7)ORM JPA数据库驱动
2022-05-12 17:30:46 1517
原创 PostgreSQL-执行计划分析分析基础(一)
PostgreSQL-执行计划分析分析基础(一)前言当执行的SQL出现瓶颈、慢查询等问题的时候,我们就需要分析SQL的执行计划,通过分析执行计划可以帮助我们对SQL找到具体的瓶颈点。我们可以调整SQL查询条件或加索引来优化,对比执优化前后的行计划,找到适合业务场景的最佳优化方案。下面通过示例,解读下pgsql的执行计划,让我们对分析执行计划有个初步的入门。执行计划语法格式两种语法结构:explain [ ( option [,...] ) ] statementexplain [ analy
2022-04-29 11:02:25 2053
原创 springboot-@RequestParam接收参数的六种形式
springboot-@RequestParam接收参数的六种形式1.前言springboot 中接收参数的注解有 @ApiParam、@RequestBody、@RequestParam、HttpServletRequest 等,下面列举@RequestParam注解的几种使用方法。2.如何接收客户端查询参数//请求原始类型,可以取到客户端传来的所有类型参数@GetMapping("/test")public String test1(HttpServletRequest request){
2022-04-27 11:21:59 4319
原创 springboot-slf4j日志输出级别简要配置
springboot-slf4j日志输出级别简要配置1. 前言springboot使用ymal、yml配置,更好的将相关的配置节点聚合在一起,方便查看和增改配置项。配置可以写在application.yml、springboot.yml 任意文件内,下面简要配置使用log4j输出日志的示例。2. 环境默认情况下,Spring Boot会用Logback来记录日志springboot v1.5.6.RELEASE#依赖<dependency> <groupId>o
2022-04-27 10:54:58 6415
leetCode 面试高频算法整理-2020
2020-09-25
F5XForwardedFor2008源码.zip
2020-04-28
mybatis-generator 1.3.5 源码+改进+支持自定义文件后缀+表、字段注释
2017-10-16
java-mybatis、springmvc 整合demo源码(druid-demo)
2017-04-14
excel格式unicode(4E00-9FA5)中文字符集,34083字含多音字
2016-04-28
c# 动态操作 zip 组件 ioniczip
2015-12-07
豆瓣小组话题扫描器v2(源码)
2015-09-14
C# VS 2010 创建、安装、调试 windows服务(windows service)
2012-05-07
EditPlus 3 中文破解版
2012-04-24
修复windows2003无搜索栏的问题
2012-02-13
反射技术测试
2011-09-28
win7登录界面器 V1.0
2010-09-09
C# .NET4.0 自定义文件并实现文件与应用程序关联
2010-06-29
获取Oracle服务名
2008-06-25
NHIbernate1.2 应用事例+sql数据库
2007-10-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人