- 博客(167)
- 资源 (4)
- 收藏
- 关注
原创 mybatis-plus 主键自增必须加@TableId(type = IdType.AUTO)注解吗
百度说是因为不指定@TableId(type = IdType.AUTO) 会默认生成雪花算法,也就是一长串随机数,类UUID。但是java bean的id属性没有加@TableId(type = IdType.AUTO)注解。用baseMapper insert之后 发现id不是从1开始的自增,而是类UUID的一串随机数。mybatisPlus使用要加@TableId(type = IdType.AUTO)注解。使用mybatisPlus进行数据库自增,mysql。
2024-03-08 10:23:37 272
原创 @TableField AS 不生效问题
网上百度有个老哥说只有使用mybatisPlus自己的语法调用sql,会生效。这个暂时还没有尝试。发现是不生效的,所以判断@TableField对自己手写的sql as是不生效的。所以建议这种需要别名的就直接一步到位,用bean里面的属性名直接承接,不要玩花活了。一开始我用表字段做as别名,如下,使用@TableField注释映射。使用@TableField对别名不生效问题。如上,我有一堆sum字段需要起别名,我使用。
2024-02-28 13:43:49 182
原创 Object转List
工作中经常会遇到一个map存key为string类型 value存object,方便我们下文代码获取数据。上述这种情况就是,一个map存在多个类型。下文获取需要将object转为list。
2024-02-22 09:46:47 682
原创 MybatisPlus saveBatch报空指针
根据源码 发现报错是一个类型校验,Java bean是string 表里是decimal类型。使用mybatisPlus的saveBatch批插,结果报空指针。以为是批插的list有空对象,经过排查没有空对象。
2023-12-22 09:40:06 376
原创 数据库日期类型dateTime,java用Date接收结果多一个.0
MySQL数据库表里数字段时date类型的字段,Java用string接收会莫名多一个.0。2.用substring截取。1.字段换成date。
2023-12-04 16:38:50 235
原创 MySQL:字符串中的数字、英文字符、汉字提取 Num_char_extract函数
Num_char_extract(字段名,取值类型),取值类型说明:0=只取数字,1=只取字母,2=数字+字母,3=只取汉字。现在我需要取出来这个字段的字母部分。以下是表里有特殊字符的这个字符串。可以看到是只截取了字母部分。
2023-10-27 16:30:28 473
原创 MySQL关于between and 和 大于等于>= 小于等于<= 区别
个人感觉between的边界控制更强。>=的话 更显眼 mybatis转译工具一眼可以看出来区间取值。于是比较好奇between and和 >= =
2023-10-24 11:04:20 778
原创 MySQL 中 不等于 会过滤掉 Null 的问题
写了个sql ,!= 某个字符串 但是空值也被过滤掉了、。因为 NULL 不是一个「值」,而是「没有值」。
2023-10-12 17:23:11 199
原创 springboot+java email发送邮箱报错javax.mail.MessagingException: Can‘t send command to SMTP host
一般这种报错如果不是配置问题,那就是邮箱发送频繁了。具体的邮箱发送上限限制也没有查到。也没时间去问企业微信客服,仅供参考~
2023-09-12 18:01:45 2916 1
原创 Mybatis where 1=1 会导致索引失效?
where 1=1 不会导致索引失效。只是可能因为后面拼接条件灭有拼接上,从而导致全盘扫描了。
2023-08-04 09:52:08 1373
原创 MyBatis:SQL查询结果为空时,用list接收会接到什么
所以不管是集合类型还是普通对象,Mybatis 都会先初始化一个 List 存储结果,然后返回值为普通对象且查为空的时候,selectOne 会判断然后直接返回 NULL 值。如果返回值是 Java 集合类型,如 List、Map,会先初始化(new 一个集合对象),再把结果添加进去;如果返回值是普通对象,查询不到时,返回值是 null。而返回值为集合对象且查为空时,selectList 会把这个存储结果的 List 对象直接返回,此时这个 List 就是个空集合。
2023-08-02 14:13:33 1974
原创 left join on 后and 和 where 的区别
如果是on后的条件筛选,则左边的表行都会在结果集如果是where后的条件筛选,会对整个结果集进行筛选。
2023-07-31 14:15:51 1284
原创 poi复制excel到新的excel,复制行,复制格式
公司有个需求是根据用户上传的Excel,以及匹配规则,要求根据匹配规则来判断这个excel中的某些sheet页要发送邮箱给不同的用户。先保存用户上传的excel路径,每次点击发送邮箱的时候。然后根据配置表取出哪些sheet组成新的excel发给哪些用户。大佬的文章链接找不到了,有看到的小伙伴踢我一脚,我再补充上。2.mq监听,收到后,多线程消费这条消息里的配置信息。3.解析excel,拆分sheet到新的excel。这个方法也是我从网上别的大佬那里看到的,亲测可用。使用的话,自己研究一下就可以了。
2023-07-05 15:48:55 4968 7
原创 inputStream重复使用消费easyExcel
【当然我也可以每个线程多次下载,但是每次都要连接ftp服务器,自己没有测试过性能,但是觉得不太雅观】但因为是多线程去跑同一个excel 解析多个sheet。就导致流被一个线程消费后别的线程无法使用。从FTP服务器上下载的文件流只能被easyexcel消费一次。clone流,或者把流放到缓存里。我这里采用的是clone多个流出来。方法使用很简单,就不多赘述。
2023-06-28 15:48:14 1131
原创 Map的map.get(Object key)方法传入数据类型 坑
我有一个map 是 string object 类型,另一个map是 integer object 类型。然后根据stirng的map去匹配integer的map。map.get 发现不是一个类型 不会报错,但是会影响最后结果。改成object,object 或者转成integer再去比较。
2023-06-27 17:57:52 1067
原创 MySQL order by max varchar字段问题
使用MAX()查询一个字符串类型的字段时,字符串类型大小比较是先比较首字符的ASCII码的大小,然后依次往后进行比较的。使用MySQL max id自增 varchar字段 后 发现排序不正常。
2023-06-26 14:24:34 1380
原创 MySQL insert ignore into的坑
公司有个需求,场景是存在则忽略掉该条数据,否则写入表。第一反应是用MySQL的insert ignore into。可以发现,如果设定的唯一索引的字段是null的话,第二次写入还是null,mysql不会按照重复insert处理。不知道是不是我的处理有问题,但是根据我后来排查数据发现,MySQL就只有这几条是重复的。sql语句是这样的,就是按照mysql的ignore insert写法。首先,你得确认插入的时候,vlaue语法后面的几个字段必须是。这个是我测试用的表,可以看到这三个字段是联合唯一索引。
2023-06-25 14:55:43 2435
原创 EasyExcel解析多sheet页
大家都可以直接调用这个方法获取到自己解析后的excel里面的数据。这个是我本地测试用的main方法。有的小伙伴不是这种从服务器取出来的路径 那也可以直接通过前端的媒体流来获取。这种就可以按照文件的流来读取。大家可以按照自己的需要改装一下我的这个工具类。公司最近有需求,客户会一次性上传一个含有多个sheet页的excel。这个场景跟我的业务场景不太一样,我自己也写了一份,但是没有测试。公司用的是easyExcel,左思右想下 自己手写了个工具类。最后的list就是自己想要的数据。
2023-06-25 09:49:10 2902 3
原创 git提交忽略target文件
项目如果没有设置.ignore文件,则我们的idea待提交区域有好多红色的新增的target文件、.iml文件等。解决了target等出现的不需要提交的文件。在.ignore文件中新增如下命令。
2023-06-19 16:27:59 5649
原创 快来,一起复习一下JDK动态代理和CGLib动态代理的区别
1、如果目标对象实现了接口,默认情况下会采用JDK的动态代理2、如果目标对象实现了接口,也可以强制使用CGLIB3、如果目标对象没有实现了接口,必须采用CGLIB库,spring会自动在JDK动态代理和CGLIB之间转换如果需要强制使用CGLIB来实现AOP,需要配置spring.aop.proxy-target-class=true或@EnableAspectJAutoProxy(proxyTargetClass = true参考。
2023-06-01 15:21:52 801
原创 快来 ,一起复习一下反射
反射是在运行状态中,对于任意一个类,都能获取该类的所有属性和方法;对于任意一个对象,都能调用它的任意一个方法和属性,这种动态获取类信息以及动态调用对象内容就称为Java的反射机制。
2023-06-01 10:44:40 1990
原创 快来,一起复习一下HashMap
如果装填因子设置大的话为1:空间利用率得到了很大的满足,但是呢,容易发生碰撞,产生链表,从而大致查询效率低。如果装填因子设置小的话为0.5:碰撞率低,不容易产生链表,查询效率高,但是空间利用率减低了。所以负载因子就取了一个中间值,在空间和时间上一个折中。原因1:h & (length-1) 等效 h%length的操作 等效的前提就是:length的长度必须是2的整数倍。原因2:防止哈希值冲突,位置冲突。1.在JDK1.7中,当并发执行扩容操作时会造成环形链和数据丢失的情况。
2023-06-01 10:07:31 127
原创 快来,一起复习一下分布式
分布式系统指的是通过网络连接让多台计算机协同解决单台计算机所不能解决的计算、存储等问题,多台计算机之间通过 RPC 方式通信。总体来说,还是利大于弊的。不像之前的单体服务发布需要等到凌晨三四点。现在微服务可以各自负责各自的模块,发布速度也会很快。
2023-05-31 14:33:36 1376
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人