- 博客(35)
- 问答 (1)
- 收藏
- 关注
原创 expected at least 1 bean which qualifies as autowire candidate
工作中项目迭代至2.0,将需要使用的接口封装到jar包里,新版本使用到了该接口,控制台报错Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.demo.dao.UseDao] found for dependency: expected at least 1 bean which qualifies as autowire candidate
2021-04-30 00:19:19
19447
1
原创 try catch的使用技巧随笔
工作中需要调用腾讯云存储api接口,如果不存在该文件,,返回一个结果集,如果存在,接口抛出异常。 try { //调用腾讯云存储api接口方法 } catch(Exception e){ e.printstacktrace(); } finally { client.shutdown(); }业务逻辑为:如果不存在该名字文件,则上传文件。为避免直接抛出异常,方法结束,处理方法:在try模块里继续使用try catch try { try { //调用腾讯
2021-04-28 23:31:21
261
原创 Double类型数据使用==比较大小总是返回false
项目里需要核对金额数据,相等才能继续业务,两个double类型数据使用==进行比较,返回的一直是falseif(je!=je1) return JsonResult.fail("借贷金额不等!");在Java中int类型数据的大小比较可以使用双等号,double类型则不能使用双等号来比较大小,Double类型的变量可以使用compareTo()方法比较大小if(je.compareTo(je1)!=0){ return JsonResult.fail("借贷金额不等!");
2021-03-30 11:37:56
1645
原创 String.contains方法总是返回false
String类型有一个方法:contains(),该方法是判断字符串中是否有子字符串。如果有则返回true,如果没有则返回false。List<String> ids =dao.find();上面的结过会返回List集合,存放的是String类型,也有数据返回 [33,22,66],没报错。但执行ids .contains(“33”)这个语句老是返回false。最后发现,id在实体中是Integer类型,修改如下:List<Integer> ids =dao.find()
2021-03-29 23:23:48
2019
原创 springboot List转page
首先想到的是使用pageable直接分页Page stringPage = new PageImpl(strings, pageable, strings.size());测试发现 直接 通过 new pageImpl 来转换page 行不通官网有使用List构造page 的方法:public PageImpl(List content,Pageable pageable,long total)content: 要传的Listpageable: 分页信息total: 可用项的总数直接传入分
2021-03-29 23:16:55
565
原创 pagehelper分页插件失效
在springboot使用pagehelper分页,结果查找出来的是全部的数据,分页失效。问题排除:1.pom文件引入出错只需引入pagehelper的starter即可<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId>
2021-03-29 22:50:14
858
原创 pagehelper插件报错
项目中复杂sql无法使用mybatisplus,于是使用pagehelper插件进行分页处理,调试接口报错Caused by: java.lang.NoSuchMethodError: net.sf.jsqlparser.statement.select.PlainSelect.getGroupByColumnReferences()Ljava/util/List;经过网上搜索解决方案,解决办法如下:pom文件引入依赖<dependency> <groupId>com
2021-03-29 22:30:05
748
原创 sqlserver获取周数
Sql查询获取周数从星期一开始的周数可以用 set datefirst 1 设定一周的第一天是星期一SET DATEFIRST将一周的第一天设置为从 1 到 7 的一个数字。SELECT DATENAME(WEEK,getDate()) AS WeekName
2021-02-01 02:15:59
4184
原创 sqlserver排名函数
排名函数是sqlserver经常用到的函数,在分页的时候需要用,分组的时候也要用,主要排名函数有row-number,rank(),dense-rank(),NTILE()row-numberrow_number的用途的非常广泛,排序最好用他,一般可以用来实现web程序的分页,他会为查询出来的每一行记录生成一个序号,依次排序且不会重复,注意使用row_number函数时必须要用over子句选择对某一列进行排序才能生成序号。用法实例:SELECT ROW_NUMBER() OVER(ORDER BY
2021-01-29 01:25:23
608
原创 Java中>>和>>>的区别
>>和>>>都是移位操作符,移位操作符只能处理整数类型。先来谈谈int类型吧。int类型占4个字节(一共32位),第一位表示符号位,其它位为数值为。那么它最大能表示2^31(2147483648) ,-2^31(即-2147483648)。为什么最小值不是-2^31-1而是-2^31(即-2147483648)负数在计算机中以补码表示(符号位不变,原码取反再加1),因此10000000 00000000 00000000 00000000表示最大的负数,为-2^31。在计算机中System.ou
2020-12-29 09:14:18
2351
原创 Springboot 跨域配置无效
跨域配置文件如下///跨域访问配置@Configurationpublic class CorsConfig { private CorsConfiguration buildConfig() { CorsConfiguration corsConfiguration = new CorsConfiguration(); corsConfiguration.setAllowCredentials(true); //sessionid 多次访问一致
2020-12-27 15:51:44
4224
1
原创 解决String cannot be cast to java.util.List报错
string类型转list实体类集合controller层用@RequestParam Map<String, Object> params接收前端传值,例如 @RequestMapping("/test") public List<Entity> tset(@RequestParam Map<String, Object> params){List<Entity> list= (List<Entity>) params.ge
2020-12-23 23:50:24
26765
1
原创 @ControllerAdvice注解的使用
@ControllerAdvice是一个非常有用的注解,使用这个 Controller ,可以实现三个方面的功能1.全局异常处理2.全局数据绑定全局异常处理只需要定义类,添加该注解即可定义@ControllerAdvicepublic class MyExceptionHandler { @ExceptionHandler(Exception.class) public ModelAndView customException(Exception e) { Mod
2020-11-30 01:06:28
242
原创 Fastjson常用API
常见使用场景:场景1.前端请求后端服务接口时通常发送的是一个json格式的字符串,这时后端需要将这个字符串进行解析转换成一个JavaBean对象;场景2.有些时候为了数据在数据库中存储的方便经常需要将一个Java对象转换成一个json格式String对象,在数据库中使用一个字段进行保存;场景3.在接口中定义时,对于一些字段个数无法确定的对象,我们往往也会将这个对象定义成一个jsonData进行请求;序列化API1.toJsonString(…)将Java对象序列化为JSON字符串,支持各种各种J
2020-11-30 00:46:04
169
原创 SpringBoot Controller接收参数的几种常用方式
第一类:请求路径参数1、@PathVariable即restful风格路径参数,url/{id}这种形式。@GetMapping("/select/{id}")public void demo(@PathVariable Integer id) { System.out.println("id="+id);}2、@RequestParam获取查询参数,即url?id=这种形式@RequestMapping( value = "/test")@ResponseBodypublic S
2020-11-28 19:50:53
346
原创 mysql自增型id达到上限
工作中同时反映客户数据部分没有同步过来,查看日志并无报错,检查接收端能获取到新数据,于是手动插入一条新数据,报错插入重复主键,才发现是自增id耗尽数据库主键id采用int类型,最大值为2147483648,客户频繁修改数据,中台同步update,id也会自增,导致id达到上限解决方法:修改id字段类型,int改为bigint,有能力还是分表,有效避免这个问题...
2020-11-24 19:49:59
2889
原创 mysql不能插入emoj表情包
报错:Caused by: java.sql.SQLException: Incorrect string value: ‘\xF0\x9F\x94\xA5’ for columnios的表情(emoji表情),这种表情虽然是utf8编码,但是一个字符需要占用4个字节,而MySQL utf8编码只能存放3字节的字符。在MySQL 5.6中,可以设置编码为utf8mb4,这个字符集是utf8的超集。方法:1.更改编码格式Mysql设置字符编码集为utf8mb4,对应的库、表、字段设置为utf8mb4,
2020-10-29 21:45:03
173
原创 MySQL日志的作用
不管是哪个数据库产品,一定会有日志文件。在MySQL中,主要有5种日志文件:1.错误日志(error log):记录mysql服务的启停时正确和错误的信息,还记录启动、停止、运行过程中的错误信息。2.查询日志(general log):记录建立的客户端连接和执行的语句。3.二进制日志(bin log):记录所有更改数据的语句,可用于数据复制。4.慢查询日志(slow log):记录所有执行时间超过long_query_time的所有查询或不使用索引的查询。5.中继日志(relay log):主从复
2020-10-28 20:31:48
1378
1
原创 SpringBoot后端接口参数校验优化
SpringBoot项目配置文件pom.xml引入依赖<!--web依赖包,web应用必备--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency>接口参数校验public String getList(Term ter
2020-10-26 20:15:01
1102
原创 Required Integer parameter ‘XXX‘ is not present报错解决
实际业务中,前端页面,发起请求,请求方式为post。后端接收参数@PostMapping("/test")@ResponseBodypublic JsonResult getList(@RequestParam Integer page,@RequestParam Integer rows){ ......} 直接报错Required String parameter ‘page’ is not present解决方法:接收参数改为@RequestBody@PostMappin
2020-09-29 01:02:48
11314
原创 sqlserver里日期处理方式小结
SQLServer 常用日期处理.当前系统日期、时间select getdate()dateadd 在向指定日期加上一段时间的基础上,返回新的 datetime 值例如:向日期加上2天select dateadd(day,2,‘2020-09-25’)–返回:2020-09-27 00:00:00.000–当前字段值、加2天、减2天、加2个月、减2个月、加2年、减2年SELECT CreateTime 字段日期,DATEADD(“DAY”,2,CreateTime) 加2天
2020-09-29 00:30:23
380
原创 sql server存储过程基本写法
sql server存储过程的优点1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般 SQL 语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。2.当对数据库进行复杂操作时(如对多个表进行 Update,Insert,Query,Delete 时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。这些操作,如果用程序来完成,就变成了一条条的 SQL 语句,可能要多次连接数据库。而换成存储,只需要连接一次数据库就可以了。3.存储过程可以重复使用
2020-09-27 19:59:20
15946
原创 java后端对日期的处理方法
在 Java 中获取当前时间,可以使用 java.util.Date 类和 java.util.Calendar 类完成。其中,Date 类主要封装了系统的日期和时间的信息,Calendar 类则会根据系统的日历来解释 Date 对象。Date 类Date 类表示系统特定的时间戳,可以精确到毫秒。Date 对象表示时间的默认顺序是星期、月、日、小时、分、秒、年。Date 类有如下两个构造方法。1.Date():此种形式表示分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒),使用该构
2020-09-27 19:44:09
720
原创 数据传输LinkedTreeMap转换类型错误
工作中传输的Json串为以下格式{“code”:0",“success”:“true”,“data”:[{“id”:1,“name”:“1”,’'age":“1”,“class”:“1”}]}使用result.getData()取得data里面的数据,转换为List实体类时报错java.lang.ClassCastException: com.google.gson.internal.LinkedTreeMap cannot be cast to 查过各种资料,例如Map<String,N
2020-08-29 01:04:38
1818
原创 Springboot实现热启动、热部署
热启动:修改代码保存时会自动重新启动项目。热部署:动态替换你修改的class,效率会更高。1:最简单的就是对于idea使用ctrl+F9的方式可以实现热部署:但是需要修改完不断的按键,比较繁琐。2:热启动SpringBoot的web项目,在每一次修改了java文件或者是resource的时候,都必须去重启一下项目,这样的话浪费了很多的时间,实现了热启动,在每一次作了修改之后,都会自动的重启第一步:引入热加载的插件,springboot 1.3开始就有的 <dependency
2020-08-24 23:58:04
1174
原创 Alibaba Cloud ACM简介以及与Spring boot整合
应用配置管理(Application Configuration Management,简称 ACM),其前身为淘宝内部配置中心 Diamond,是一款应用配置中心产品。基于该应用配置中心产品,您可以在微服务、DevOps、大数据等场景下极大地减轻配置管理的工作量的同时,保证配置的安全合规。步骤概述1、开通 应用配置管理 ACM2、ACM端创建命名空间3、创建配置 将代码中的 *.properties 内容 迁移到 ACM配置中4、代码端添加pom依赖5、移除原有的配置文件如数据库连接等信息
2020-07-29 20:34:50
1678
原创 spring cloud alibaba 简介
Spring Cloud Alibaba官方github地址https://links.jianshu.com/go?to=https%3A%2F%2Fgithub.com%2Falibaba%2Fspring-cloud-alibabaSpring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。主要功能服务限流降级默认支持 WebServlet、
2020-07-28 20:01:36
159
原创 jdk1.8新特性总结
jdk1.8新特性总结1、default关键字在java里面,我们通常都是认为接口里面是只能有抽象方法,不能有任何方法的实现的,那么在jdk1.8里面打破了这个规定,引入了新的关键字default,通过使用default修饰方法,可以让我们在接口里面定义具体的方法实现,如下。public interface NewCharacter { public void test1(); public default void test2(){ System.
2020-07-27 19:46:41
171
原创 zookeeper伪集群的搭建
所谓zookeeper伪集群其实就是在一台机器上启动多个zookeeper,在启动每个zookeeper时分别使用不同的配置文件zoo.cfg来启动,每个配置文件使用不同的配置参数(clientPort端口号、dataDir数据目录、dataLogDir数据日志目录)在同一台机器上启动多次。配置多个zoo.cfg配置文件zoo1.cfgzoo2.cfgzoo3.cfg三个cfg文件的区别clientPost、dataDir、dataLogDir不同在\zookeeper-3.4.12\b
2020-06-30 00:51:41
301
原创 zookeeper在java中的使用
使用Java API操作zookeeper使用Java API操作zookeeper需要引用下面的包.实现分布式配置中心:1、在zookeeper里增加一个目录节点,并且把配置信息存储在里面2.启动zookeeper客户端程序,代码如下所示启动之后,读取到zk里面的数据3.修改zookeeper里面的数据客户端读取的数据也同步发生了改变...
2020-06-28 21:40:19
737
原创 zookeeper安装与实用
Zookeeper能做什么zookeeper功能非常强大,可以实现诸如分布式应用配置管理、统一命名服务、状态同步服务、集群管理等功能,我们这里拿比较简单的分布式应用配置管理为例来说明。假设我们的程序是分布式部署在多台机器上,如果我们要改变程序的配置文件,需要逐台机器去修改,非常麻烦,现在把这些配置全部放到zookeeper上去,保存在 zookeeper 的某个目录节点中,然后所有相关应用程序对这个目录节点进行监听,一旦配置信息发生变化,每个应用程序就会收到 zookeeper 的通知,然后从 zook
2020-06-27 22:04:53
106
原创 vue的表达式和指令
Vue:渐进式JavaScript框架上次的demo如下:el:挂载到指定名称的html标签上data:绑定的数据 -->相当于给html中使用的时候所传的值methods:绑定的方法 [注意:其中this代表Vue对象]methods:{方法名:function(){ //代码… }}效果图:Vue指令:v-text=“表达式” 设置标签中的文本v-html 设置标签中的htmlv-if
2020-05-27 22:09:39
1493
原创 Vue项目创建与安装
首先创建工程,这里使用的开发工具是idea使用npm安装Vue进入项目文件夹路径下,使用npm init -y 命令,此时项目会多个package.json文件夹npm install vue --save #只针对该应用进行安装 此时会多个node_modules文件夹,下面是Vue的源代码这些主目录下新建index.html文件效果如下...
2020-05-26 21:38:19
179
原创 vue的安装
Vue.js(读音 /vjuː/, 类似于 view)是一个构建数据驱动的 web 界面的渐进式框架。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。它不仅易于上手,还便于与第三方库或既有项目整合。下面介绍三种 Vue.js 的安装方法:1.独立版本我们可以在Vue.js的官网上直接下载vue.js,并在.html中通过< script >标签中引用。使用vue多页面开发:1.引入vue.js2.创建一个vue根实例 new Vue({选项})
2020-05-25 23:05:53
157
原创 微信公众号消息推送
微信公众号消息推送微信公众号消息推送1.1申请测试号1.2模板消息的开发1.2.1获取模板id1.2.2发起请求1.3搭建消息系统1.3.1模型的封装(消息模型)1.3.2微信通知服务1.3.3实现Service创建一个表格微信公众号消息推送使用微信公众号消息推送的好处:1.互动一步到位,简单粗暴。信息推送迅速,用户可以直接发送消息到微信公众号,可以及时百的回复他们。例如:网络营销能力秀,前...
2020-05-05 16:25:22
2649
空空如也
对易语言比较了解的大神请进
2016-08-01
TA创建的收藏夹 TA关注的收藏夹
TA关注的人