mybatis实现真流式查询mysql mybatis实现mysql流式查询的原理背景如果使用mybatis查询mysql,查询结果集非常大时,可能发生oom,我们可以使用mysql的流式查询,按需逐行查询每条数据,实现低内存占用。下面分析其原理。 jdbc驱动如何支持流式查询的jdbc驱动的基本原理 jdbc驱动与mysql之间建立tcp连接,将sql语句发送到mysql服务端后,并从mysql服务端读取数据,并封装成resultS 2022-01-11 #mysql #mybatis #mysql流式查询技巧 #技巧
批处理当前脚本目录和当前命令行目录 批处理当前脚本目录和当前命令行目录当前脚本目录使用%~dp0获取,无论在哪里执行,此值是不变的。当前命令行目录使用%cd% 获取相当于shell中的pwd命令,返回当前命令所在目录 参考下面脚本的结果,保存脚本时请使用ANSI编码保存,否则中文乱码 123456789101112131415@echo off set root=%~dp0echo 当前脚本目录: %root%set pwd=%c 2021-10-22 #cmd #批处理 #windows
groovy静态编译容易引发的问题 groovy静态编译容易引发的问题groovy为了提高性能,有一个静态编译的注解@CompileStatic,在类上添加该注解后,编译出来的class文件会更加静态化,更像java文件编译出来的class字节码。但是因此会导致一些问题,今天我就遇到一个,下面将其记录下来。 众所周知,groovy是动态类型的,如下面重载的函数,使用java调用和groovy调用结果是不同的。 1. 测试groovy 2021-10-16 #groovy #java #静态编译 #双层闭包
excel格式讲解 excel格式讲解新版的excel文件,本质是一个zip压缩包,将其解压后,能看到其内部结构。 解压文件目录找一个excel.xlsx文件,将其进行解压,目录结构如下 打开xl文件夹,styles.xml存储了全局的样式,worksheets内的sheet存储了每个sheet的数据,theme存储主题,shardStrings.xml存储的字符串池。 打开sheet.xml,其结构如下 row 2021-10-12 #java #excel
excel直接打开看到的日期格式和poi读取到的日期格式不一样 excel直接打开看到的日期格式和poi读取到的日期格式不一样现象: 创建一个excel.xlsx文件,输入一个日期,将其格式选择为自定义类型 yyyy/m/d h:mm 并保存 可以看到,日期格式确实变成了类似于2021/1/10 1:15的样子 使用poi读取该文件,发现读取到的该单元格的数据为m/d/yy h:mm格式,并不是上面在 2021-10-12 #java #excel #poi
aws s3 预签名上传文件,下载文件 aws s3 预签名上传文件,下载文件需求是生成预签名下载链接,将链接发送给没有s3权限的用户,其也能正常下载而不需要登录到aws。上传也是同理,生成预签名上传链接,用户上传时无需登录aws。 1.引入jar包1234567891011121314 <dependency> <groupId>software.amazon.awssdk</grou 2021-10-11 #aws #s3
groovy闭包 list传参 groovy闭包 list传参 问题现象如下代码,定义一个闭包接受两个参数,传递参数时可以传递 size = 2 的 List 作为参数, 使用 length = 2 的数组不可以,使用 size = 2 的 Set 也不可以。 12345678910111213@Test void test2() { def closure = 2021-07-17 #groovy #闭包
mybatis-generator多个数据库存在相同的表 mybatis-generator多个数据库存在相同的表 问题现象使用mybatis时难免会使用其提供的mybatis-generator生成默认的xml和实体类,今天我发现如果本地安装一个mysql,里面创建两个不同的数据库,而他们有相同的表,生成的实体类中可能是随机的。比如我有一个数据库 ‘a’ 里面有一张表 ‘user’,我现在在建一个库‘b’,里面也有一张表‘user’,这样我生成代码时 2021-07-17 #mybatis #bug #generator
mysql使用updatetime作为乐观锁 mysql使用updatetime作为乐观锁本文记录一下,我是用mysql的updatetime字段作为乐观锁版本号遇到的问题。 乐观锁首先标准的乐观锁,应该存在一个version字段,每次更新时人工自增此字段,但是这样每次更新时都要多维护一个字段很麻烦。所以我使用数据库中的update_time字段作为乐观锁的version使用,将update_time字段设为每次有更新时自动刷新,使用此字段当 2021-07-01 #mysql #bug #乐观锁
spock测试零基础教程 spock测试零基础教程 昨天研究了一下spock单元测试,确实特别好用,这也是我第一次接触spock,作为一个新手,网上很多教程讲的太深了,折腾了好几个小时才搞明白。 所以我想写一个从0开始的简单教程,一步一步做把Demo跑起来,再去看其他人的教程,这样更有效率。 下面我将基于spock2.x版本进行演示。可以新建一个空SpringBoot项目进行测试,防止项目内的其他依赖冲突,Demo 2021-07-01 #单元测试 #spock