- 博客(15)
- 收藏
- 关注
原创 单例模式的实践——跨接口存储、获取消息
假设现在有一个需求:一个前端请求抵达Java后端后,经过6次接口调用,横跨3个类,在6个接口中,在调用第4个接口时,可能会产生多条消息,这些消息最终需要返回给前端。那么,如何将消息返回给Controller层的接口?最简单的方式可能是将在全部6个接口中封装一个对象,作为参数层层传递。但弊端也有2点:在不考虑引入外部工具,仅依靠Java自身的特性,使用单例模式,代码如下:在保存消息的地方,按如下方式调用: 在Controller层,按如下方式调用。理论上Map存储的数据大小只受限于int的最大值,
2022-06-22 10:51:22
145
原创 MyBatis-Plus过滤查询条件中的空字符串
在使用MyBatis-Plus查询时,若封装查询条件的Bean中有属性为空字符串,是不会被过滤掉的,结果就是执行的SQL的where条件中出现某个字段="",导致查询出问题。尤其常见于,在前端页面输入该字段的查询条件后,又清空输入的关键字。老规矩,先说MyBatis-Plus版本:3.3.0有2种思路:在Bean中给字段通过注解,过滤查询时的空字符串;// value指代对应的数据表的字段名称,whereStrategy 指定查询时的过滤策略@TableField(valu...
2022-05-18 17:06:30
6783
4
原创 Oracle数据库ORA-12520报错解决方案
ORACLE数据库部署在服务器端,开发在本地,最近经常出现数据库连接失败,提示:“ORA-12520: TNS:监听程序无法为请求的服务器类型找到可用的处理程序”,通过简单分析,排除以下2种可能:如报错提示,我本地没有可用的处理程序; 本地的tnsname.ora文件中设置的数据库连接类型和实际数据库的类型不一致,如服务器上的Oracle数据库类型是shared(共享),但是在tnsnames.ora文件中配置的数据库类型是(server = dedicate)。另外,此种情况的报错内...
2022-05-18 11:36:23
4983
原创 el-dialog作为子组件如何由父组件控制显示/隐藏
一、踩坑记录使用vue的一个基本常识,父组件传递给子组件的数据,子组件通过props接受后,不能直接更改该值。这是因为:所有的 prop 都使得其父子 prop 之间形成了一个单向下行绑定:父级 prop 的更新会向下流动到子组件中,但是反过来则不行。这样会防止从子组件意外变更父级组件的状态,从而导致你的应用的数据流向难以理解。以下为错误示例:父级组件parent.vue:<template> <child :showFlag="showFlag"></c
2021-04-13 17:52:45
4051
原创 web打印三种实现方式
web打印的方式可以分为3种:1、window.print()直接调用浏览器;2、利用js插件调用浏览器打印;3、利用第三方插件直接调用打印机。3种方式各有不同的使用场景和灵活度,接下来进行探讨比较
2021-04-09 17:35:03
16673
2
原创 mybatis-plus实现指定字段模糊查询
mybatis-plus版本:3.3.0oracle版本:11g很常见的一个需求场景:某张表在前端显示时,查询条件中,往往name字段需要模糊查询,否则默认mybatis-plus是用的全字符匹配查询。如何最小限度地改造代码,实现某个字段模糊查询,其实mybatis-plus官方文档给出了答案:通过@TableField注解地condition属性,可以配置某个字段,始终使用模糊匹配,打开condition类,去看看有哪些可选项:一共有5个可选项,默认是采用第一个:EQUAL。接
2021-04-01 10:18:06
5941
原创 vue中同步方法实现
有三种实现方式:1、axios本身属于Promise,利用函数式的then获取请求返回结果,也是最常用的,如下: request({ url: '/test/XXX/XXXX', method: 'post', data: param }).then(ret => { if (ret.code === RESULT_CODE.SUCCESS) { this.$message.success('保存
2021-03-18 15:03:01
8501
原创 el-table默认选中行
实现一个功能:打开dialog,dialog内包含一个el-table,该el-table的数据是动态变化的,且该el-table默认全选。实现前提:1、表格组件指定别名ref,并且绑定数组gridData,如下:<el-table ref="itemTable" :data="gridData">2、设置表格支持多选,需要添加多选列,如下:<el-table-column type="selection"></el-table-column>
2021-03-01 14:32:11
6517
原创 ORACLE数据库结合MyBatis-Plus3.X更新null值失败解决方案
在项目中使用oralce11g以及MyBatis-Plus3.3.0版本,由于MyBatis-Plus的更新表数据的机制默认采用的是忽略空值,即java bean某个属性映射的字段值为空,则update语句中不会出现该字段。看了官方文档,提到三种解决方案:方案一:更改全局策略是个大坑,万一前端传过来的属性相比新增时有遗漏,则会数据丢失;方案二:3.0以上版本中将strategy去掉,新增了insertStrategy以及updateStrategy,显然官方文档更新不及时,实测在bean字段上注
2021-02-19 15:15:47
1088
原创 JavaScript中一些小细节
都是一些很难注意到的东西,不定时更新。一、js中的原始值都是不可更改的,包括:undefined、null、布尔值、数字、字符串,而对象是可以更改的。如下图所示:此处引申出另外一个小知识点:js和java一样也是一门面向对象的语言,但是字符串并非对象,而是原始数据类型的一种,那么上图中的变量s是如何能调用自己的toUpperCase()方法的呢?其实只要使用了字符串的属性或者调用字...
2018-10-23 19:30:12
184
1
原创 Python爬虫获取最近七天天气预报信息
主要用到python的requests库和BeatifulSoup库,代码如下:#encoding:utf-8import requestsimport psycopg2import datetimeimport refrom bs4 import BeautifulSoupfrom apscheduler.schedulers.background import Backgro...
2018-10-03 09:30:03
2215
原创 OpenLayers5中无法import解决方法
本文参考此文:https://blog.csdn.net/qq_35505699/article/details/80858425 OpenLayers5版本中引用ol.js的方式是import,如果直接复制官网例子到HTML中是无法运行的,由于import是ES6中的语法,因此无法直接copy运行,除非完整下载官网示例。 根据不同情况,有2种解决方法: 一、项...
2018-09-11 15:41:25
4905
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人