mysql中条件函数
世上有味之事,包括诗、酒、哲学、爱情,往往无用。吟无用之诗,醉无用之酒,读无用之书,钟无用之情,终于成一无用之人,却因此活得有滋有味。——周国平《风中的纸屑》 在我们日常开发中,有时可能会在SQL中写一些条件,例如这里一个例子 这里有这样一张表,数据如下: 如果我们需要把未认证(状态为NOT_AUTH)的用户放到前面排序显示,在不影响分页的情况下,我们可以这么写 1SELECT *,IF(status='NOT_AUTH','NOT_AUTH',null) AS sort FROM `user` ORDER BY sort DESC 这里使用到了MYSQL的IF函数 1IF([条件],[为true时值],[为false时值]) 例如我们需要整体排序,认证中的在最前,然后是未认证的,最后是已认证的 我们则可以使用MYSQL中的CASE、WHEN、THEN、ELSE、END一套去做 12345SELECT *,( CASE WHEN STATUS = 'AUTHING' THEN 0 WHEN STATUS = ...
gson坑
一直只做自己会做的,就什么也做不成。最重要的是,你自己有没有兴趣——《碧蓝之海》 前两天使用Gson中遇到一个坑 同事使用 1Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create(); 创建gson对象 所以到我这,出现了字段不序列化,或者反序列化不了的问题 例如下面这个类 1234567891011@Datapublic static class User implements Serializable { private static final long serialVersionUID = 509877226276918727L; @Expose private String firstName; @Expose(serialize = false) private String lastName; @Expose(serialize = false, deserialize = false) private Stri...
git放弃变更
度之住事,验之来事,参之平素,可则决之。一一《鬼谷子》 我们有时想放弃本地的变更,直接从远端仓库pull代码到本地覆盖 可以使用 1git checkout -f 去放弃所有变更 当然,-f可以使用文件(夹)路径替换,这样的话只放弃指定的文件(夹)中的变更 但如果你新增了文件,想要放弃新增则可以使用 1git clean -df 如果需要指定文件(夹),则可以在其中加入文件(夹)名,例如 1git clean xxx.txt -df 然后就可以pull覆盖本地啦
获取系统信息
人不读书,则尘俗生其间,照镜则面目可憎,对人则语言无味。一一北宋·黄庭坚 首先是依赖 123456<!-- 获取系统信息 --><dependency> <groupId>com.github.oshi</groupId> <artifactId>oshi-core</artifactId> <version>3.9.1</version></dependency> 然后是工具类 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511...
springboot-RabbitMQ发送短信
天不为人之恶寒也辍冬,地不为人之恶辽远也辍广。——《荀子》 常见名词Virtual Hosts——虚拟主机,一个虚拟主机下可有多个队列 Exchange——交换机,分发消息到队列中 管理界面使用默认账户guest密码guest登录RabbitMQ管理界面 这里可以看到我们的端口和相关信息 15672——管理界面 25672——RabbitMQ集群通信端口号 5672——RabbitMQ内部通信端口号 快速入门引入依赖 123456<!-- https://mvnrepository.com/artifact/com.rabbitmq/amqp-client --><dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</artifactId> <version>5.10.0</version></dependency> 简单队列 生产者 12345678910111...
android让返回按钮失效
先发制人,后发制于人。——《汉书》 我们可以重写Activity中的onBackPressed方法去实现 例如 ...就是这样
replaceAll坑
学如弓弩,才如箭镞,识以领之,方能中鹄。一一袁枚 前两天遇到一个坑,在使用String.replace()和replaceAll的时候 因为没有看过API和注释,拿着就开用,结果造成一个bug 这里留做记录 场景是这样的,我对一个字符串进行替换,将[idea]替换为""时使用了replaceAll,导致其他不该被替换的字符也被替换了 这段代码 123String str = "Hino Supa and ruben";System.out.println(str.replace("[idea]", ""));System.out.println(str.replaceAll("[idea]", "")); 输出的结果为 12Hino Supa and rubenHno Sup n rubn 可以看到,replaceAll把我们的[idea]当做了正则表达式… 点进源码一看注释,好家伙 第一句就是 123Replaces each substring of...
RabbitMQ安装
万物各得其和以生,各得其养以成。一一《荀子》 介绍使用异步多线程方案会导致CPU竞争强烈,故使用MQ 使用MQ能够大大降低项目耦合 名词: Producer:生产者,发消息的 Consumer:消费者,收消息干活的 Broker:MQ本体 Topic:主题 Queue:消息队列,先进先出 Message:消息报文(内容,一般为json) 单机版本MQ原理 12345678910111213141516171819202122232425262728293031323334353637383940414243package com.ruben.mq;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;import java.util.Optional;import java.util.UUID;import java.util.concurrent.LinkedBlockingDeque;/** * @ClassName: RubenThreadMQ * @Description: 我还...
springboot配置yml提示
文变染乎世情,兴废系乎时序。——刘勰 按照springboot官方文档 首先我们添加依赖 12345<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional></dependency> 并在maven-plugin中排除依赖,因为我们maven进行编译、打包等并不需要它 123456789101112131415161718<project> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> ...
springboot中自定义配置
我们不快乐的原因之一,是不知道如何安静地待在房间里,心平气和地与自己相处。——亦舒 例如我们需要进行一些自定义配置写到配置文件中 可以使用@ConfigurationProperties注解 1234567891011121314151617181920212223242526272829package com.ruben.pojo;import com.ruben.enumeration.GenderEnum;import lombok.Data;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.stereotype.Component;import java.util.List;import java.util.Map;/** * @ClassName: RubenProperties * @Description: ruben配置类 * @Date: 2021/2/16 0016 11:40 * * * @author...
