- 博客(51)
- 收藏
- 关注
原创 vue一个对象赋值之后变成新对象再添加进入一个数组
要求上传多个图片,但是存储的时候为一条数据,无非就是添加的时候遍历图片数组然后获取中的图片地址时候逗号拼接,然后赋值一个新对象添加到新数组中,进行保存功能很简单。主要是查询的时候,根据逗号split(“,”)的时候需要重新吧图片赋值到新数组中,然后页面遍历数组进行回显。
2024-01-23 10:05:05
734
1
原创 保持数据库唯一的三种方式
为防止报错 在insert into 改写成 insert ignore into,当然也可以在修改的时候加判断,如果为0的时候在修改添加,否则保持原有。2、利用 EXISTS 满足条件的时候再去添加,条件可以为查询语句。3、遇到mq这种创建一个服务一个实例的这种,可以利用缓存的分布式锁。存在后就不存再添加,也可以直接修改之前的有的数据,1、添加数据库唯一主键。
2023-09-21 14:47:26
1200
原创 SUBSTRING_INDEX计数
计算一行有几个值help_topic_id < LENGTH( a.fail_question_ids ) - LENGTH(REPLACE(a.fail_question_ids,‘,’,‘’)) + 1,例:a=1,2,3,4。SUBSTRING_INDEX(目标值,分割符号,要截取位位置)help_topic_id > 这个长度的都是重复值。截取位置:1表示第一位;个数值=a的长度-a去除逗号的长度+1。目的:计算每个题用户做几次。
2023-03-08 10:50:00
176
原创 限制接口一定时间内调用次数,超过次数就延时后调用
@Documented@Target(ElementType.METHOD) // 说明该注解只能放在方法上面@Retention(RetentionPolicy.RUNTIME)public @interface LimitRequest { long time() default 60; // 限制时间 单位:秒 int count() default 1; // 允许请求的次数}@Aspect@Componentpublic class LimitRequestAspe
2022-05-20 11:54:09
1499
原创 获取本周开始时间和结束时间
LocalDate today = LocalDate.now(); Date start = getOneDayOfWeek(today, 1); Date end = getOneDayOfWeek(today, 7); /** * @date: 2022/4/21 9:45 * @author: lyhu * @description: 获取一周中某一天的日期 */ private Date getOneDayOfWeek(TemporalAccesso.
2022-04-21 10:00:52
648
转载 List转map,map转List
list对象装map Map<String, WordAttributeVo> voMap = VoList.stream().collect(Collectors.toMap(WordAttributeVo::getId, Function.identity()));Map<String, WordAttributeVo> voMap = VoList.stream().collect(Collectors.toMap(WordAttributeVo::getId,WordAt
2022-03-12 12:21:04
753
翻译 mybatis if里面嵌套if失效
一般来说是这样写的,但是当去运行的时候if里面的sql进不去 <if test="searchType == '1'"> <if test="keyword != null and keyword != ''"> AND a.name = #{keyword} </if> </if> <if test="searchType == '2'"> <if test="keyword != nu
2022-02-25 10:33:20
950
转载 ON DUPLICATE KEY UPDATE批量添加有则修改无则添加
insert into interest_unit_practice( id,unit_id,module_id,gear_id,practice_name,module_name,is_first_page,is_last_page,question_num, remarks,sort,release_state,del_flag,create_by,create_date,update_by,update_date )values <
2021-12-23 16:02:58
208
翻译 获取一串汉字首字母(大写)
<dependency> <groupId>com.belerweb</groupId> <artifactId>pinyin4j</artifactId> <version>2.5.0</version> </dependency>/** * 获取汉字串拼音首字母,英文字符不变 * @param chines..
2021-12-14 18:54:41
225
转载 idea注释模板
类注释/** * @author linyonghu * @date ${YEAR}年${MONTH}月${DAY}日 ${TIME} */注释一**$param$ $return$ * @author: linyonghu * @date: $date$ $time$ * @description: */params:groovyScript("if(\"${_1}\".length() == 2) {return '';} else {def result.
2021-12-08 19:26:16
257
转载 根据视屏地址截取第一帧图片
<!--截取视屏图片--> <dependency> <groupId>org.bytedeco</groupId> <artifactId>javacv</artifactId> <version>1.3.1</version> </dependency> <depende.
2021-12-07 10:29:18
235
转载 Vue oss上传时获取视屏时长
anfileSuccessT({ossPath, ossUrl, ossOldName, fileSize, successObj}) {this.book[successObj] = ossPath;let audioElement = new Audio(ossUrl);let self = this.book;let result;audioElement.addEventListener(“loadedmetadata”, function() {// 视频时长值的获取要等到这个匿名函数
2021-12-06 09:30:54
1406
原创 avue-crud根据显隐字段进行导出xls
这些是我再实现该功能时进行的探索this.$refs.crud.$refs一共16个字段,上面的数组中第一个是序号字段,以及最后的操作字段省去后就是我们所需的字段了就是14个,之后就可以传回后台这个地址是下载地址,自己确定就行了剩下的就是后端处理的代码了工具类package com.yyb.live.unit;import com.aliyun.oss.OSSClient;import com.google.common.base.Strings;import com.
2021-11-26 22:28:43
1256
原创 idea合并分支上传代码
一般来说开发都是从一个主分支上重新建一个新分支,下面就是提交自己分支的步骤先在自己所建立的分支上传自己所在分支(这里是先上传到本地,并不是其他分支)然后切换到你想合并代码的分支拉去你想合并代码的分支的最新代码然后从项目进去有个merge(最新版本,老版本也是这么进去的,不过可能实在那个提交history下面),点击之后就会出现这个,选择自己提交的分支(就是你之前提交本地的分支)然后再提交代码就行了。...
2021-11-17 11:04:56
518
转载 实现el-dialog可拖动
一个很好用的组件import Vue from 'vue'// v-dialogDrag: 弹窗拖拽Vue.directive('dialogDrag', { bind(el, binding, vnode, oldVnode) { const dialogHeaderEl = el.querySelector('.el-dialog__header') const dragDom = el.querySelector('.el-dialog') dialogHeader
2021-09-03 17:33:04
1012
原创 路由router传值
在解决页面跳转时由于许多页面都是公用的,但是有些操作只能在相关页面才能显示,查询资料可以通过路由传值的方法由进去的页面进行传值,再到公共页面就行判断handleEdit(id) { this.$store.dispatch("setValue", { studentId: id, }); this.$router.push({ name: "counselorStudentDetailEdit", params: { st
2021-08-21 10:32:33
160
原创 vue请求拦截器
项目需求,在长时间不操作界面直接返回登陆界面,思路设置请求头在main.js中拦截相应的数据做判断跳转登录java设置请求头(如不自己暴露头信息,拦截的响应数据头信息会隐藏) ((HttpServletResponse) response).setHeader("backed","0000"); //暴露头部信息 ((HttpServletResponse) response).setHeader("Access-Control-Expose-Headers","backed");main.j
2021-08-07 01:57:46
338
原创 文件过滤FilenameFilter
File file = new File("E:\\"); //获取该路径下所有文件的绝对路径 File[] files = file.listFiles(new FilenameFilter() { @Override public boolean accept(File dir, String name) { if(name.endsWith(".txt")){ re.
2021-07-24 14:57:13
158
原创 mysql 存储过程做报表
DROP PROCEDURE if EXISTS pr_queryorder;CREATE PROCEDURE pr_queryorder(in current_year VARCHAR(32))BEGINDECLARE teacher_id VARCHAR(32) DEFAULT NULL;DECLARE teacher_name VARCHAR(32) DEFAULT NULL;DECLARE order_time VARCHAR(32) DEFAULT NULL;DECLARE peopl
2021-07-05 20:40:34
518
原创 前后端交互设置请求路径
只需要在main.js里面设置下面的代码即可//一定要有,否则会不生效(引用axios为设置后端请求地址)var axios = require("axios");Vue.prototype.$axios = axios;axios.defaults.baseURL = 'http://127.0.0.1:8091/';//后端开发环境地址// axios.defaults.baseURL = 'http://172.18.31.16:8000/';//后端地址axios.defaults.
2021-06-19 17:05:29
390
原创 vue-notifyjs插件,简单的消息提示
前后端交互提示会带来好的体验,vue-notifyjs就是一款比较简单的消息提示工具首先先进入项目之后再进行下载 npm i vue-notifyjs下载完之后进入main.js写入这两行代码主要是导包和全局引用import Notify from 'vue-notifyjs'Vue.use(Notify)注意,这是个组件一定要写,不然弹不出消息<notifications></notifications>//引用组件自带样式<style s
2021-06-19 16:52:37
1067
1
原创 创建一个简单的vue工程
创建一个简单的vue工程,一直next就行了(有一步设置项目名)完事之后 vue init webpack 项目名遇到这就一直回车就可以了,之后依次输入红色框里的命令就可以了
2021-06-18 18:08:37
100
原创 java下载多个图片
直接上代码,此处log打印日志为lombok.extern.slf4j.Slf4j这个包,这个包相当于一个门面,实现日志打印其实也是有log4j,logback等实现的地址可以用其他工具趴下来写进数据库,之后select查询出来一个一个下载就完事了,本来想用个多线程,想想还是算了...
2021-06-17 10:02:52
312
原创 servlet跳转jsp遍历图片
基础知识不牢固啊,今天在使用request去跳转jsp页面时(因为要传递数据必须跳转),在遍历地址获取图片时一直获取不到,开始以为是web.xml中配置的拦截了,但是发现并不是,之后在F12的时候在才发现请求地址中多了个参数导致不能找到文件上网百度才发现,servlet在进行跳转的时候如果controller层设置有路径的话会自动带上目前我解决的办法是按照请求的路径来见文件夹这里我用的是<c:foreach>标签进行遍历要到俩个maven坐标 <dependen
2021-06-16 20:27:02
234
转载 select into报错Undeclared variable: abcd
其实就是mysql不支持select into,但是可以用另一种方式去实现create table t1(select * from t2)真实有效
2021-06-04 10:49:48
440
原创 mysql开启函数功能
今天要自定义函数,但是mysql控制台报错This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you might want to use the less safe log_bin_trust_function_creators variable)意思就是我没有开启函数功能show variables like '%fun
2021-06-03 10:09:22
372
原创 mysql根据字母和数字进行排序
由于业务需求类似于‘A1-202001’的字段进行排序,之前在百度上找过其他类似的文章,之后在我”师傅“指导下,我终于开窍了,其实只要把‘A1’拆成‘A’和‘1’之后再进行排序操作就行了可以用mysql的left()函数把‘A’拿出来之后在通过substring_index()函数把‘A1’给截取出来之后在通过自定的函数,取出‘A1’中的数字1下面是自定义函数的内容之后就是利用获取的‘A’和‘1’进行排序了...
2021-05-31 17:24:37
2174
原创 PageHelper操作list分页失效
今天遇到了一个问题就是pageHelper分页插件分页失效,一般来说service层中,都是在一开始就开启分页插件之后就是对之后的查询sql就行分页在返回前端,但是今天查的数据直接进行分页返回,前端数据显示是有问题的,以下为查询sql所以必须把查询的数据进行拆分,在装进一个新的list中,再对list进行分页,但尝试后发现分页是可以分,但是数据对不上,之后查资料找到解决方法:首先对查询的sql进行分页在之后重新创建分页对象,把查询sql的分页属性复制到新建的分页中再把操作的list放到新
2021-05-28 11:37:40
691
2
原创 idea工具 MybatisX
mapper中的方法名都与mapper.xml中的sql语句id是相对应的,但是有的时候并不是那么多方便,应为sql太多的缘故,根据id名去找sql是很麻烦的,这时候就可以使用MybatisX这个插件,有点像以前的魂斗罗,一蓝一红只要点击这只小企鹅就可以直接跳转到相应的sql或者方法名安装: file —> setting—>plugins...
2021-05-28 10:51:50
1716
原创 mysql执行效率笔记-如何加索引
查询mysql的执行计划 (EXPLAIN ) ,有许多查询是扫了全表的(All),这样会大大降低sql的性能,一般来说我们想到的都是加索引,比如说studentId啊、或者是countryId这种类似的字段,但是有时候发现加了索引也没啥太大的用处近期我也是遇到这种情况,原因是自己索引没有加对地方,一般来说导致一条sql查询语句扫面全表都是where字段后面的条件导致的,因此我们要给where后面的条件字段加索引,比如上表中si就扫面了全表,就找where后面有si的条件字段,判断给这个字段时候加索
2021-05-27 19:33:33
122
原创 mybatis的嵌套查询(一对多)
由于工作有显示列表需要这样的需求(一个对应多个),而且数据并不算大,所以此处用mybatis嵌套查询,把自己的查询的数据按照自己设置的格式查询出来数据库查询数据实体类设置格式(这里为了方便就没有设置两个实体类,就直接用一个)xml文件中的设置格式查询的结果(就结果而言还是很成功的)...
2021-05-25 10:10:09
412
原创 mysq执行效率笔记
了解到当mysql查询时,两张表都要用时,例:tab1 (1000条数据)----------老员工tab2 (1条数据)----------新员工1、SELECT * FROM tab1 ,tab22、SELECT * FROM tab2,tab1第一条的查询效率要比第二条的查询效率要快很多,就好比是进厂上班,不会的问老员工,和问新员工的区别是一样的,同样是去问两个问题,问老员工肯定是比较快的...
2021-05-07 10:57:24
97
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人