mysql随机查询
明者见危于无形,智者见祸于未萌。——《三国志》 我们如果需要使用mysql进行随机取N条这样的操作 我们可以这样写 12345678-- 2.然后查询主表,与我们的tmp_table进行INNER JOIN[内连]SELECT * FROM `film` AS main_table JOIN -- 1.取出主表主键的最大值,与RAND()相乘[RAND()生成0到1的随机数],然后使用ROUND函数取整获得一个tmp_id(SELECT ROUND(RAND() * (SELECT MAX(`film_id`) FROM `film`)) AS tmp_id) AS tmp_table-- 3.条件为主表主键大于等于tmp_table.tmp_idWHERE main_table.`film_id` >= tmp_table.tmp_id-- 4.排序,限制条数,这里的可以任选ORDER BY main_table.`film_id` LIMIT 5; 这个是我认为效率比较高的随机查询了
阿里云镜像快速构建springboot
智者弃短取长,以致其功。——《后汉书·王符传》 我们创建springboot项目时如果使用原来的https://start.spring.io构建会很慢 这里我们可以使用阿里云的脚手架地址 1https://start.aliyun.com 我们照常输入项目组和名称 下一步后我们发现除了自带的starter我们还可以选阿里巴巴的 非常实用
localStorage
蚍蜉撼大树,可笑不自量。——韩愈《调张籍》 我们可以使用LocalStorage在页面上存点东西,限制是5MB 1window.localStorage.setItem("ruben","Hello") 我们再取出来 1window.localStorage.getItem("ruben") 如果我们要移除 1window.localStorage.removeItem("ruben") 要移除全部 1window.localStorage.clear()
全局日期请求转换处理
大部分人在二三十岁上就死去了,因为过了这个年龄,他们只是自己的影子,此后的余生则是在模仿自己中度过,日复一日,更机械,更装腔作势地重复他们在有生之年的所作所为,所思所想,所爱所恨。——《约翰 • 克利斯朵夫》 我们在开发中对于日期,如果是协商好,请求发送指定格式的日期字符串 我们这边再转换成对应日期格式,如果每个都一个一个来转,非常麻烦,不方便 这里介绍一种全局的mvc转换方式 使用@InitBinder注解以及Jackson2ObjectMapperBuilderCustomizer 如果我们使用application/x-www-form-urlencoded接参,则@InitBinder上场了 只需要在Controller中写下如下代码 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667public static final String DATE_TIME_PATTERN...
mybatis-plus逻辑删除简单实现
1 人生不是一支短短的烛炬,而是一只由我们暂时拿着的火把;我们一要把它燃得十分光明辉煌,然后交给下一代的人们。——(英)萧伯纳 mybatis-plus配置逻辑删除 我们可以在配置文件中配置 12345mybatis-plus: global-config: db-config: logic-delete-value: 1 # 逻辑已删除值(默认为 1) logic-not-delete-value: 0 # 逻辑未删除值(默认为 0) 然后在pojo的删除字段属性加一个@TableLogic注解 然后我们启动测试类 12345@Testpublic void deleteTest() { List<Film> films = filmMapper.selectList(Wrappers.lambdaQuery(Film.builder().build()).last("LIMIT 1")); films.stream().findFirst().map(Film::getFilmId)...
el-input-number阻止外层button的冒泡
取法于上,仅得为中;取法于中,故为其下。一一李世民《帝范》 我这里有这样一个按钮 123<el-button @click="randomChoose" type="success" size="small"> 选择<el-input-number controls-position="right"></el-input-number>个</el-button> 效果如下 我们发现点击右边上下去增加减少中间个数的时候,也执行了我们上边按钮绑定的randomChoose 函数 但我们想要加上阻止冒泡却加不上 这里其实。。需要在外层再加上一个span或者div标签,再到这个span标签上加上阻止冒泡才可以生效 1234567<el-button @click="randomChoose" type="success" size="small"> 选择 <span @c...
多模块install时报包不存在
想升高,有两样东西,那就是必须作鹰,或者作爬行动物——巴尔扎克 今天发现一个坑 就是明明项目能正常运行,install一直报错说包找不到不存在 我一看这个包是依赖的另一个common模块,它是一个springboot工程 我就算install了common模块没报错,我这里仍然报错找不到包,看target目录里确实又存在 思来想去摸不着头脑,于是查阅百度,最后找到了解决方案 在common模块中的pom.xml找到spring-boot-maven-plugin配置的地方 如果没有,则自己新建一个 标签层级为**project=>build=>plugins=>plugin** 找到artifactId为spring-boot-maven-plugin的这层 加上配置<classifier>exec</classifier>即可 123<project> <build> <plugins> 123456789101112131415161718<p...
单表和连表?如何选择?
快乐,使生命得以延续。快乐,是精神和肉体的朝气,是希望和信念,是对自己的现在和来来的信心,是一切都该如此进行的信心。——果戈理 今天做了个小测试啊 我自己造了一百万多条(1029708条)数据 这里测试呢我们首先是编写了一个LEFT JOIN 连表SQL如下 123SELECT *FROM `film` LEFT JOIN `language` ON `film`.language_id = `language`.language_id 我们查询一百万多条后耗时为33457.8317 ms,大约30来秒,这是没有加索引的情况下 我们使用单表查询,然后再拼装 1234567891011long startTime = System.nanoTime();List<Film> films = filmMapper.selectList(Wrappers.lambdaQuery());List<Integer> languageIds = films.parallelStream().map(Film::getLanguageId).d...
el-date-picker
但我拒绝!我岸边露伴最喜欢的事情之一,就是向那些自以为是的家伙说,NO! 但我拒绝!我岸边露伴最喜欢的事情之一,就是向那些自以为是的家伙说,NO!——岸边露伴 讲讲常用的el-date-picker属性 例如我们禁用今天前的日期,以及不让选择当前时间之前的时间点 12345678910<el-date-picker v-model="date" type="datetime" @change="disableTime" format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" placeholder="选择日期时间" :picker-options="{disabledDate:(v)=>v.getTime() < new Date().getTime() - 86400000}" ...
groupingBy
老老实实最能打动人心。——莎士比亚 你们可能知道Collectors.groupingBy是干嘛的了,没错分组 例如我们需要把用户根据age分组 1234SecureRandom random = new SecureRandom();List<User> users = random.ints(20,25).parallel().mapToObj(r -> User.builder().name(Faker.instance(Locale.CHINA).name().username()).age(r).build()).limit(20).collect(Collectors.toList());Map<Integer, List<User>> listMap = users.stream().collect(Collectors.groupingBy(User::getAge));listMap.forEach((k, v) -> System.out.println(k + ":" + v)); ...
