自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 EasyExcel进阶教程

EasyExcel的表头合并、动态表头实现、表头样式自定义

2024-05-15 18:05:02 891

原创 正则表达式-速成教程

正则表达式速成

2023-07-25 18:11:28 679

原创 ++在前和++在后的区别

++在前和++在后的区别

2023-02-13 14:56:59 173

原创 Oracle的WM_CONCAT的局限性

WM_CONCAT函数报错:ORA-06502;使用xmlagg代替

2022-10-08 15:04:42 972

原创 调用阿里云OSS签名URL

业务场景由于项目中未来会产生大批量的音视频文件,全部存在服务器本地将会占用大量的空间;因此决定使用阿里云对象存储服务(Object Stroage Service, OSS)实现文件上云;本地只保存最近3个月的文件,过期文件将会被删除。如果要查看过期文件,则先从OSS中下载该文件,然后再进行其他的常规操作。因为是第一次使用OSS,因此前期做了大量的准备工作。在申请了公司的OSS账号之后,使用常规的上传下载会提示没有权限,因此在获取OSS连接时,需要加一个参数SecurityToken。而在我获取Secu

2021-09-26 18:37:34 2734

原创 translate和replace的区别

translate和replace的区别背景最近有个需求,金融系统的。数据库里,金额字段的值为“贰拾壹万柒仟圆整整”。而合同模板上的留空只需要填数字,因此需要将字段中的“圆整整”部分减掉。PS:由于实际业务中最小单位就是圆,因此不考虑角和分的情况。处理我的处理是使用了replace函数,对“圆”和“整”替换为“”;网上查资料的时候不小心看到了translate方法,二者都是做字符替换的函数,但是有些区别(实际上区别还不小),于是就写了这篇博文。区别replace其实就是类似于java的Stri

2021-06-17 08:59:28 424

原创 SQL优化

文章目录优化方式说明文章来源于网络各种同类文章的整理。优化方式序号内容目的1建立索引,优先where、group by的字段加快查询速度2优先对索引字段进行查询。加快查询速度3避免select无用的字段。增加查询效率4避免使用 in 和 not in,如果必须使用in,考虑用EXISTS 方案代替,如SELECT * FROM t1 WHERE EXISTS (SELECT * FROM t2 WHERE t1.username = t2.user

2021-03-01 16:14:41 99

原创 left join on与 where 的区别

left join on与 where 的区别前言场景描述有两个系统,记为系统A和系统B。现在需要将系统A中的数据同步到系统B中,并要在系统B中能查询得到。实际中发现,从日志中看,数据同步是成功的,使用主键查询系统B的相关表,也能查到数据。但是在系统B的页面上却看不到该条数据。排查过程咨询系统B的开发人员后,系统B的开发人员(且称为小甲)给了我几个必填的字段,然后我将必填的字段都赋予了对应的值,发现系统B的页面上还是查不到。于是我找小甲拿到了系统B的页面查询的相关代码和SQL,做了详细对比,发现造

2021-03-01 14:01:03 188 1

原创 记一次在全新Linux中部署服务的过程

记一次在全新Linux中部署服务的过程前言登录服务器JDK配置域名和主机名前言由于准生产所有的机器已满,无法部署新的应用,因此最近刚申请了新的服务器。新服务器上的第一个应用就落到我的身上。因为此前没有过类似经历,算是经验值+1了。期间遇到了一些问题,在这里记录下来。也将此文当作一个学习笔记。登录服务器因为公司其他的一些策略,尚无法直接登录,只能通过ssh进行跳转。ssh app@1.2.3.199上面的命令回车之后输入密码即可登录。JDK配置这是遇到的第一个坑。为了效率,我直接从其他的

2020-09-11 16:34:51 300

原创 lombok插件与boolean不得不说的秘密

lombok的@Data标签无法get到属性问题描述解决方法问题描述最近在做项目的时候,为了在前台动态渲染多选框组件CheckBox,后台在返回对象时,会自带一个defaultChecked属性,用以判断是否默认勾选。但是再做其他业务逻辑时,需要对其进行判断,然后就发现defaultChecked没有getter方法。实体类中使用了lombok插件。解决方法lombok插件会将boolean类型的数据的get方法自动改写为 isXXX,笔者经过测试,的确找到了我的isDefaultChecked()

2020-08-31 17:33:03 2833

原创 Oracle的wm_concat函数

Oracle数据库中WM_CONCAT函数场景说明WM_CONCAT函数语法listagg函数语法场景说明在项目中,因为业务需求,需要将同一条数据的不同版本号合并为同一字段值进行展示,因此使用了 wm_concat函数。 本地调试的时候能够正常运行,但是到了生产上报错:wm_concat标识符无效。经过度娘的指点,发现在10以上的oracle 版本中,不再使用该函数,而是使用了listagg函数来代替。WM_CONCAT函数语法select col_a, wm_concat(col_b) as co

2020-05-29 16:05:36 1544

原创 MySQL查询多个版本数据只取最新版本

前言最近接到新的客户需求,在查询指标时要求相同的指标只显示一条数据,要显示的那条数据的要求如下:1. 如果同一个指标的不同版本中有一条是处于上线状态,则显示该条数据,不管版本号是多少2. 如果该条指标没有处于上线状态的版本,则展示最高版本的数据3. 如果该条指标的相同版本有多条数据,则显示最新创建的那一条由于对group by不熟悉,弄了好久才弄好。以下是可用的SQL语句:-- 字段解...

2019-11-13 15:33:20 5136

原创 猜排序游戏的实现

前言这几天项目比较清闲,闲来无事,在QQ群中发现了一个娱乐机器人的小游戏——猜排序。游戏规则很简单:系统准备一个无重复数字的四位数,然后玩家输入自己的猜测,若数字和位置都正确显示A,数字相同而位置不同显示B,当4A时为猜对。游戏规则实操说明假设给定的数字是1234,如果玩家猜2109,则提示0A2B;如果玩家猜1209,则提示2A0B;直到提示4A0B时,游戏获胜。Java代码实现pub...

2019-11-05 17:45:22 2792

原创 动态增删table行

前言项目中在进行新增数据的时候,新增数据中有一个参数需要以table的形式存贮,且需要支持新增多行数据,还要对每一行的数据进行校验。本篇博文即为记录这一功能的实现。代码话不多说,先上代码(我这里的代码是一个组件,具体的读者可以根据实际情况自行修改):<template> <el-dialog :visible.sync="showMe" :close-on-cli...

2019-09-03 11:49:46 278

原创 树状选择器(下拉树)

前言项目中有些下拉框的数据需要使用树形结构,但是ElementUI中并没有提供相关功能,如果使用级联选择器,又会显得页面臃肿庞大,极不美观。项目中大佬提供了一个树状下拉框的组件,将代码记下来。代码<!-- 树状选择器 --><template> <el-popover ref="popover" placement="bottom-start" tri...

2019-08-08 15:40:34 2925

原创 Chrome浏览器下ElementUI的Table组件错位

前言最近项目采用了ElementUI作为前端框架,除了IE打不开之外,Chrome浏览器中如果进行页面的缩放,table组件的border会显示错位;其他浏览器正常。处理方法在App.vue中添加样式: //修复谷歌浏览器下table组件border错位问题 body .el-table th.gutter{ display: table-cell!impor...

2019-08-08 15:35:25 1533

原创 前端数组转树形数据

前言去后台查询,结果是一个List,可以很容易地自己组装出数组。然后再使用数组转为Tree。代码//此处省略list转数组的方法optionData(data) { console.log('开始转换为树形数据'); let cloneData = JSON.parse(JSON.stringify(data)); // 对源数据深度克隆 return cloneD...

2019-07-18 10:17:03 883

原创 VUE+Element学习笔记(二)VUE+ElementUI值传递

前言在项目中,左侧菜单点击后,会在右侧新建一个tabs标签页。创建标签页是一个公共方法,参数是菜单node信息,不方便增加参数。但我需要在创建tabs时还要带上一点别的信息,简单来说,就是我要查看详情,除了新建一个查看详情的tabs之外,我还需要带着数据进入新的tabs中。我试了使用$emit和$on进行监听,发现当$emit组件已经触发事件后,需要$on监听的组件还没有create好,导致无...

2019-06-25 11:11:11 2744

原创 VUE+Element学习笔记(一)VUE+ElementUI实现登录功能

VUE+ElementUI的登录页面

2019-05-31 14:19:39 17934 3

原创 VUE的插槽(slot和slot-scope)

前言在之前的获取当前行数据中,最终的方案是使用了slot-scope="scope"的方式获取了当前行的数据,当时对slot-scope是个什么东东不了解。这两天查看了好多资料,有点明白了这个插槽是个什么东西。但是理解的不深,可能有错,先记下来,就当是整理一下思路。什么是插槽Vue 实现了一套内容分发的 API,这套 API 的设计灵感源自 Web Components 规范草案,将&lt...

2019-05-23 11:59:58 16616 13

原创 VUE跨域问题

前言最近在练习VUE+ElmentUI的前后端分离,在向后台请求数据的时候,发生了跨域请求的问题,网上搜了好多方法,也不知道怎么处理。最后还是在后台代码中添加了跨域的响应头猜得以解决。后台实现在拦截器中添加header:public class LoginInterceptor implements HandlerInterceptor { private static Logger l...

2019-05-22 15:12:16 400

原创 ElementUI表格中获取当前行数据(实现对table数据的修改和删除)

前言在此之前,已经实现了vue+ElementUI的跨域查询并渲染查询结果的功能,现在想要在每一行中添加修改和删除的按钮。于是乎就需要获取当前行的数据,于是就有了下面两种方式的获取。1 获取当前行的数据1.1 我的笨办法这里是我记录自己的学习过程,这个方法也能实现,但是麻烦,如果您只是为了寻找最终方案,请直接查看1.2章节。首先我查看了官方文档,打算使用对话框来渲染修改页面和删除警告页面...

2019-05-21 17:52:55 79784 10

原创 ElementUI使用Form多列显示

前言ElementUI的Form表单中的每一项,默认是一行显示一个,垂直排列的,但是在实际应用中,比如查询页面里,一行一个查询条件显然是不太现实的:占地儿太大,页面很不友好。查询条件少的话还好说,如果查询条件众多,那么查询Form就会显得很臃肿。因此,需要让Form表单一行显示多个el-form-item。解决方案ElementUI的页面布局,跟bootstrap一样,是24格栅栏形式的。因...

2019-05-17 11:36:40 16886 3

原创 VUE+ElementUI+vue-resource请求http

背景想要前后端分离,前端用vue-resource请求后台接口。步骤1. 安装vue-source在cmd窗口中执行命令:npm install vue-resource2. 引入vue-resource在入口文件main.js中引入vue-resource,添加如下代码即可:import VueResource from 'vue-resource'Vue.use(VueRe...

2019-05-16 15:20:47 2725

原创 VUE+ElementUI布局随笔

VUE+ElementUI布局随笔el-container标签非必须。每一个vue文件中,所有的html代码都应该写在同一个dom中,否则会报错。el-aside默认宽度为300px,可以通过在标签中修改width属性来调整。若router-view想通过name属性来指定渲染的组件,则在router.js中,该组件在注册时,必须是components的方式,否则无法加载。...

2019-05-15 15:22:49 1532

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除