- 博客(38)
- 收藏
- 关注
原创 Oracle 两个字符串‘aa,bb,cc‘,‘ab,aa,bc,bb‘里面都有多个单词用逗号分隔,找出两个字符串有没相同单词,有多少个相同
用regexp_count和regexp_replace统计两个用相同符号分隔单词字符串的匹配
2024-07-26 10:27:38
166
原创 jpa无法删除数据之version
在JPA中,如果一个实体类映射了一个数据库表,并且该表有一个版本字段,那么在执行删除操作时,JPA默认不会删除version为空的数据。这是因为JPA认为,version为空的数据可能是历史数据,或者是在并发修改过程中被其他事务删除的数据。查询数据库的时候发现该数据是手动造的,与其他数据对比,该数据的version字段为空,将version字段插入数据后,果然能够正常删除。如果确实需要删除version为空的数据,可以在删除操作时,通过设置查询条件,过滤出version为空的记录,然后手动删除。
2024-06-21 09:26:08
174
原创 记mongodb大量数据需要注意的一些问题
1、在数据量大的情况下创建索引要注意mongodb的使用内存情况,我是在windows操作的,发现在创建过程中,内存直接爆满,打开任务管理器看,mongodb的工作集几乎直接占满,导致卡了好一阵。3、还有就是查询的时候,如果没有用索引字段查询或者没有命中索引,也会因为mongodb查询的范围是整个集合数据导致搜索数据都被mongodb放入工作集中,数据量大的话也会引起内存爆满。2、创建索引的同时,数据占用的硬盘空间也会增多,所以要注意mongodb存放的空间是否充足。
2023-11-23 22:38:38
477
原创 eclipse下的web项目迁移到idea
我尝试过导入以后,按网上配置了各种基本的东西(比如tomcat的配置,依赖的配置,但是项目结构没变),编译都编译不过,因为相互依赖的问题。于是我仔细看了下,eclipse的文件夹和包,果断合并同类项,将所有文件夹下的包都放在主体项目里面,包名相同的就放在一起,按层级放好,然后主体项目再根据web项目的标准结构转换一下。这样就成功解决相互依赖的问题(不知道还有没其他办法,网上找过也没找到其他办法,可能是我搜索方式不对?),如果项目需要的东西都准备好了,那么此时也就可以正常启动了。
2023-11-23 21:58:40
693
原创 namedParameterJdbctemplate查询结果封装成对象
最后 queryForObject(xxx,xxx,new BeanPropertyRowMapper<>(实体类.class));普通的情况下,用queryForObject(xxx,xxx,实体类.class);就可以封装进去了,但是复杂的时候不行,今天再次遇到了这个坑。然后了解到可以用RowMapper可以实现,RowMapper是个接口,可以使用它的实现类BeanPropertyRowMapper。复杂查询的情况下,查询的结果是每个字段单独一行,map形式,也不会封装到对象里面。
2023-07-13 19:51:11
268
原创 EasyExcel自定义导出时的单元格格式
这里以实现easyExcel导出的时候自定义某一列或几列不同的单元格格式为例。首先 实现 CellWriteHandler 去重写它的方法。在生成ExcelWriter的时候注册进去。然后导出来就可以成功了。
2023-06-13 17:55:09
4225
原创 服务频繁重启
有问题就去找日志,通过看容器的日志发现了一点小问题,就是容器重启时间有点奇怪,既没有人push代上去,也没有人手动重启,但是容器就是重启了。这句话表示容器收到了SIGKILL信号,进程被干掉了,这是由用户或docker守护程序发起的,而发起原因,一般就是pod中的limit资源设置比较小,然后运行内存不足就挂了。此时有些怀疑是内存不够的问题导致的重启,为了进一步验证,既然容器上的日志无法看出问题,那就去看看k8s的事件,果然发现了问题。
2023-03-17 10:36:49
409
原创 踩坑之路(jpa的批量插入) Oracle
今天做项目的一个需求,需要把其他地方的数据存储到本地数据里面没想到一次踩了两个坑因为需要保存的数据很大,而且每天都需要保存一次第一次用的jpa的saveAll方法,测试了一遍,保存下来总共花了50分钟老大看时间的太慢了,提醒了我一下,让我去深入看看jpa的底层突然想到之前有点印象,在不追求性能的情况下可以使用jpa的批量插入,但是需要提升性能的时候就需要自己手动操作一波然而因为之前都是用MySQL数据库,习惯的用了MySQL的批量插入的语法再经过一阵子的折腾后,对自己的SQL语句
2022-03-25 21:01:18
2484
原创 oracle ORA-00001: 违反唯一约束条件
在一个平平常常的工作日,被这玩意坑了一下。在一个日常删除插入的时候居然报了 违反唯一约束条件 的错,打断点也没发现问题,一路运行下去都没错,但是就是在方法的最后一个括号,报错了,搞的我一脸懵逼。回头看实体类,有三个id注解了,想着应该是这里有问题,对着sql一顿操作(其实也没修改啥)因为太过自信了,所以没啥软用这个表不是我设计的,所以我也不知道括号里面的是啥玩意但是想着这个异常和唯一约束条件有关,就去看了看这个表的索引,果然发现,原来这个是一个索引名称。然后这个索引条件有些问
2022-03-24 09:51:11
4764
原创 NamedParameterJdbcTemplate 的 queryForObject 使用自定义对象接收报错
在开始使用NamedParameterJdbcTemplate 的时候,query查询的返回结果都是基本数据类型的包装类,但是今天使用自定义的类作为接收对象的时候发现一直报错jdbcTemplate.queryForObject(QUERY_STUDENT, new MapSqlParameterSource("stuCode", stu.getStuCode()), Student.class);org.springframework.jdbc.IncorrectResultSetColumn
2022-02-22 16:00:34
1143
原创 java.lang.IllegalArgumentException: Param ‘serviceName‘ is illegal, serviceName is blank
nacos的时候把配置有问题或者依赖有问题
2021-10-29 22:10:06
673
原创 springboot集成canal
canal,根据官方的解释,也就是用于同步数据库的增量数据到其他的存储应用作用:不需要在修改数据库的数据后自己手动进行redis中的数据进行同步操作可以通过将数据库的数据同步到其他的存储应用,达到提高性能的作用如:将本需要访问mysql的数据,同步修改到redis中,让更多的访问直接访问到redis,减少访问mysql数据库,从而达到提高性能的作用。原理:MySQL有主从机制(读写分离,需要开启bin-log模式,主节点会把写操作记录到一个文件,后续会把数据库同步到从节点),ca
2021-10-26 20:53:57
735
原创 如何在feign调用时在请求头加入数据
在feign远程调用的时候,可以实现RequestInterceptor的apply方法,通过requestTemplate.header,进行自定义的请求头的参数及数据的传入
2021-10-24 18:37:45
534
原创 windows启动zookeeper.cmd报错
双击zookeeper.cmd直接闪退,然后我直接cmd进去运行,发现报这个,下面还跟了一大串java的帮助命令call "G:\OpenSources\jdk8\"\bin\java "-Dzookeeper.log.dir=G:\OpenSources\zookeeper-3.4.11\bin\.." "-Dzookeeper.root.logger=INFO,CONSOLE" -cp "G:\OpenSources\zookeeper-3.4.11\bin\..\build\classes;G:\
2021-10-17 17:30:49
277
原创 接口文档swapper2和knife4j
swapper2Swagger能够根据代码中的注解自动生成api文档,并且提供测试接口;依赖 <!--swagger2的依赖--> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> </depend
2021-09-30 15:45:25
521
原创 elasticsearch集成springboot全文检索实操
1、日常导入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-elasticsearch</artifactId></dependency>2、配置文件(springboot默认有,不改的话也可以不写)#elasticsearchspring.elastic
2021-09-28 20:52:21
457
原创 elasticsearch的安装使用
首先,elasticsearch(由java编写)需要有java环境,且配置了java_home的环境变量。从官网下载elasticsearch
2021-09-25 21:48:27
134
原创 排行榜的设计与实现
1、展示的数据的设计: 首先展示的数据是多条,所以可以使用列表传递。 一般有多个排行规则,也就有多个排行榜,可以使用一个type字段用于区分(可以使用策略模式,策略设计模式的简单使用) 统计排序规则下的数据量作为排序依据2、流程部署的实现前端发送一个请求,携带type参数,用于区分 请求的排行类型 定义一个接口用于接收请求 使用mybatis-plus进行查询排序 将查询出来的数据进行封装:① 实体类对象,② vo对象,③ map进行封装 将数据传到前端显示但是使用order by进
2021-09-24 18:04:21
2018
原创 策略设计模式
策略设计模式(strategy):定义了一组算法,将每个算法都封装起来,并且使它们之间可以互换个人理解有点像多态,如:支付,可以由微信支付,支付宝支付,现金支付。因此支付可以定义为一个接口,不同的支付方式都去实现这个支付接口,然后通过用户的选择,来确定执行哪一种支付方式这种方式 扩展性良好,还可以避免多重 if else 不易维护的问题应用如下://支付接口public interface Pay { void pay();}//微信支付public class WeC.
2021-09-24 17:53:45
108
原创 Spring Task 定时任务的简单使用
直接在springboot就可以使用首先:需要在启动类上贴一个注解:@EnableScheduling,表示开启定时任务,@EnableAsync表示多线程执行@SpringBootApplication@EnableScheduling //开启任务定时@EnableAsync //开启定时任务的多线程public class App { public static void main(String[] args) { ...
2021-09-24 16:23:41
169
原创 用户登录和登录拦截的实现
用户登录用户登录无非就是把用户登录的账号密码在数据库中进行比对,然后成功则存储起来,并返回给浏览器,让浏览器下次访问把这个信息带过来,表示为登录状态。具体怎么实现呢?首先常规的将用户输入的账号密码通过异步请求,传入到后台进行校验 采用简单的检验方式:直接将用户名和密码进行查询,如果存在,则登录成功,不存在则返回用户名或密码错误 用户名存在,创建一个token(因为需要具有唯一性,可以使用uuid来生成),然后加上一个统一的单词或其他来作为token的前缀,并以此作为key,查询出来的用户信息
2021-09-14 21:52:55
3786
原创 用户注册的实现
用户注册的基本流程(以手机号注册为例)前后端验证手机号格式是否正确 后端验证手机号是否已经注册 前端通过注册按钮发送 Ajax 请求携带手机号到后端 后端进行手机号的校验,如果数据库中已经存在该手机,返回已注册的信息给前端 如果数据库中不存在该手机号,则告知该手机号可以注册 手机验证通过后,进入注册信息填写页面 需要发送验证码,通过验证码来识别是否本人在注册。前端发送异步请求(携带手机号) 后端获取手机号 进行手机号的基本校验,以及手机号是否注册等等 使用uuid的方式
2021-09-14 20:08:39
818
原创 后端实现发送短信接口
可以把相关的信息抽取到配置文件,方便后期维护 @Value("${sms.appkey}") private String appkey; @Value("${sms.url}") private String msgurl; @Override public void sendVerifyCode(String phone) { //1.生成验证码 String code = UUID.randomUUID().toStr
2021-09-14 19:43:57
362
原创 发送验证码的页面事件的实现
//短信发送 $('.vcode-send').click(function () { if ($(this).hasClass('disabled')) { //如果该按钮还处于disable状态,则不做任何操作 } else { var self = $(this); var count = 10; //设置点击发送后的等待时间 self.addClass('disabled'...
2021-09-14 17:15:21
127
原创 HttpMediaTypeNotAcceptableException: Could not find acceptable representation
突然遇到这个异常,页面报406查到网上很多都说是json转换的依赖没导入。但是依赖也有,后来看了下返回结果,没有转成json格式。但是然后发现是返回的对象没有getter方法,字段不能被解析在网上查到 jackson 和 fastjson在序列化的时候,先利用反射找到对象类的所有get方法,接下来去get,然后小写化,作为json的每个key值,而get方法的返回值作为value。接下来再反射field,添加到json中。除了依赖问题外还需要注意返回的对象里面的字段有没有getter方法.
2021-09-12 22:40:34
353
原创 No ‘Access-Control-Allow-Origin‘ header is present on the requested resource.
前后端分离时,使用html发送ajax请求从后端获取数据时出现的BUGAccess to XMLHttpRequest at 'http://localhost:8888/employees/list' from origin 'http://localhost' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.GET h
2021-09-08 21:42:05
189
原创 MyBaits-plus实现联表分页
步骤1:配置分页插件//分页,在启动类中配置 @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerI
2021-09-07 16:54:02
723
原创 集成Activiti7的时候,在启动类忘记加mapper的包扫描,导致报错
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of typeorg.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name============================CONDITIONS EVALUATION REP
2021-09-03 11:42:59
906
原创 Neither BindingResult nor plain target object for bean name ‘XXX‘ available as request attribute
使用了thymeleaf模板,然后页面使用的参数忘记在控制器携带过去,导致找不到报这个错。只需要在控制器把 XXX 这个变量传过去
2021-08-30 20:36:39
193
原创 org.thymeleaf.exceptions.TemplateInputException: Error resolving template , temp
用的是Spring默认处理json的Jackson,html中用了axjx请求,控制器缺少了ResposeBody标签报了这个异常org.thymeleaf.exceptions.TemplateInputException: Error resolving template , template might not exist or might not be accessible by any of the configured Template Resolvers...
2021-08-17 10:38:57
104
原创 No converter found for return value of type: class cn.***.qo.JsonResult
pom.xml的Jackson依赖没有添加,或者用来接收转换的Java对象的字段没有getter方法
2021-08-04 21:37:40
61
原创 通配符的匹配很全面, 但无法找到元素 ‘context:property-placeholder‘ 的声明。
idea自动导入的时候出现问题,删掉这两行重新根据提示导入一次就好了然后就没有问题了
2021-08-02 12:37:40
408
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人