积累
1.mapper文件中写sql语句时,遇到特殊字符时,如:< 等,建议使用<![CDATA[ ..... ]]>,将包裹的内容不被解析器解析
<select id="getByIp" resultType="IpAddress">
select area, operator
from ip_address
where INET_ATON(#{ip}) > ip_start_num
and INET_ATON(#{ip}) <![CDATA[ < ]]> ip_end_num
</select>
2.使用group by去重时,只有在group by从句后面的字段才能写在select 后面,为了解决这个问题,可以在select后面用
any_value(想要查询的字段)函数包裹字段,即可查询
3.mybatisplus 临时禁用分页功能,给page的size设置成-1就行了
4.swagger项目测试接口,后端项目地址+/swagger-ui.html 如:127.0.0.1:8080/swagger-ui.html
5.mysql解析json
(
CASE
WHEN ( f.`hbr` = '' ) THEN
'' ELSE ifnull(
REPLACE (
REPLACE ( REPLACE ( json_extract ( f.`hbr`, '$[*].name' ), '"', '' ), '[', '' ),
']',
''
),
''
)
END
) AS hbr
6.抽取指定字段变为下拉框的label和value
/*
* 从集合取出自定字段作为下拉框的value-label
* @origin 数据集合
* @value 指定哪个字段为value
* @label 指定哪个字段为label
*/
public List<Map> transformSelect(List<Map> origin, String value, String label) {
if (!origin.isEmpty()) {
List<Map> target = new ArrayList<>();
for (Map m : origin) {
Map select = new HashMap();
select.put("value", m.getOrDefault(value, ""));
select.put("label", m.getOrDefault(label, ""));
target.add(select);
}
return target;
}
return null;
}
7.List<Map>和List<对象> 相互转换
前提:引入
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.37</version>
</dependency>
1)map集合转对象集合
List<T> needDtos = JSON.parseArray(JSON.toJSONString(Map集合), T.class);
2)对象集合转map集合
8.对象集合抽取字段,组成List<Map>
List<Map> map= 对象集合.stream().map(it -> {
Map<String, Object> apiMap = new HashMap<>();
apiMap.put("id",it.getId());
apiMap.put("name",it.getName());
return apiMap;
}).collect(Collectors.toList());
8.docker logs -f --tail=100 镜像ID //查看后台
9.ssh -R 80:127.0.0.1:8023 sh@sh3.neiwangyun.net 外放接口,改端口即可
10.启动nacos
1)启动原始nacos
docker run -d --name nacos -p 8848:8848 -e MODE=standalone nacos/nacos-server
2)拷贝原始文件到宿主机,在宿主机上更改application.properties配置
docker cp nacos:/home/nacos /home/nacos 后面一个是宿主机地址
3)再次启动nacos,同时进行容器卷映射,下次再启动时直接从第三步启动即可
docker run -d --name nacos -p 8848:8848 -p 9848:9848 -p 9849:9849 --privileged=true -e JVM_XMS=256m -e JVM_XMX=256m -e MODE=standalone -v /home/nacos/nacos/logs/:/home/nacos/logs -v /home/nacos/nacos/conf/:/home/nacos/conf/ --restart=always nacos/nacos-server
11.启动redis,并挂载容器卷
1)启动redis交互页面
docker run -p 6379:6379 --name redis -v /home/redis/redis.conf:/etc/redis/redis.conf -v /home/redis/data:/data --restart=always -it redis bash
docker run -p 6379:6379 --name redis -v /home/redis/redis.conf:/etc/redis/redis.conf -v /home/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes
2)以配置文件启动redis
redis-server /etc/redis/redis.conf