日常问题笔记1
th:insert:将被引用的模板片段插⼊到自己的标签体中
th:replace:将被引用的模板片段替换掉自己
th:include:类似于 th:insert,⽽不是插⼊⽚段,它只插⼊此⽚段的内容
<!--1、比如抽取的公用代码片段如下-->
<footer th:fragment="copy">© 2011 The Good Thymes Virtual Grocery
</footer>
<!--2、采用如下三种方式进行引用-->
<div th:insert="footer :: copy"></div>
<div th:replace="footer :: copy"></div>
<div th:include="footer :: copy"></div><!--3、则三种引用方式的效果分别对应如下-->
<div><footer>© 2011 The Good Thymes Virtual Grocery</footer>
</div><footer>© 2011 The Good Thymes Virtual Grocery
</footer><div>© 2011 The Good Thymes Virtual Grocery
</div>
后端数据校验
引入jar包
https://mvnrepository.com/artifact/org.hibernate.validator/hibernate-validator/6.0.23.Final(maven仓库地址)
<!-- JSR303数据校验支持-->
<!-- https://mvnrepository.com/artifact/org.hibernate.validator/hibernate-validator -->
<dependency><groupId>org.hibernate.validator</groupId><artifactId>hibernate-validator</artifactId><version>6.1.6.Final</version>
</dependency>
目前可用的对应的spring版本号
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.5.RELEASE</version><relativePath/> <!-- lookup parent from repository -->
</parent>
之后只需要在实体类或者传入的参数上加上注解类似@null,@notbleak,@past…
另外需要在controller的类上加上@Validated,以及接受的实体或者参数上添加@Valid的注解
mybatis plus中的 e w . s q l S e g m e n t , {ew.sqlSegment}, ew.sqlSegment,{ew.sqlSelect}, e w . c u s t o m S q l S e g m e n t , {ew.customSqlSegment}, ew.customSqlSegment,{ew.sqlSet}使用
ew是mapper方法里的@Param(Constants.WRAPPER) Wrapper queryWrapper对象
首先判断ew.emptyOfWhere是否存在where条件,有的话再拼接上去,ew.customSqlSegment是WHERE + sql语句
没有where的时候加上 == false
使用${ew.sqlSegment} 如果是连表查询且查询条件是连表的字段则需在service层拼接查询条件时字段前指定别
名
例子
mapper.xml
<select id="tableList" resultType="java.util.LinkedHashMap">SELECT${ew.sqlSelect} // 这里拼接select后面的语句FROM${table_name} //如果是单表的话,这里可以写死${ew.customSqlSegment}</select>Mapper
IPage<LinkedHashMap<String,Object>> tableList(@Param("table_name") String table_name,Page page,@Param(Constants.WRAPPER) QueryWrapper queryWrapper);Test
String responseField = "*";
queryWrapper.select(responseField);
// 即 select * ...String responseField = "name";
queryWrapper.select(responseField);
// 即 select name ...
例子2
Controllerpublic String saveAddress(HttpSession session) {UserVO user1 = (UserVO)session.getAttribute("user");LambdaQueryWrapper<User> lambdaQueryWrapper = Wrappers.<User>lambdaQuery().select(User::getNickName, User::getUserId) // 需要查询的列,即 ${ew.sqlSelect}.eq(User::getUserId, user1.getUserId());// 条件User user = this.userMapper.selectNickNameAndUserId(lambdaQueryWrapper);System.out.println(user);return null;}MapperUser selectNickNameAndUserId(@Param(Constants.WRAPPER) Wrapper<User> queryWrapper);
mapper.xml
<select id="selectNickNameAndUserId" resultType="com.example.demo.entity.User">select<if test="ew != null and ew.sqlSelect != null and ew.sqlSelect != ''">${ew.sqlSelect}</if>fromuserwhere is_deleted != 1<if test="ew != null"><if test="ew.nonEmptyOfWhere">AND</if>${ew.sqlSegment}</if></select><select id="selectNickNameAndUserId" resultType="com.example.demo.entity.User">select<if test="ew != null and ew.sqlSelect != null and ew.sqlSelect != ''">${ew.sqlSelect }</if>fromuser${ew.customSqlSegment}</select>
使用${ew.sqlSegment} 如果是联表查询且查询条件是连表的字段则需在service层拼接查询条件时字段前指定别名,而且不能用lambda的查询了
<select id="selectByRoleId" resultType="com.captain.crewer.mybatis.plus.dto.RolePermsDTO">SELECT tp.id,tp.perm_name,tp.url,tr.role_id as roleId,tr.role_name as roleNameFROM tb_role trLEFT JOIN tb_perm_role tpr ON tr.role_id = tpr.role_idLEFT JOIN tb_perm tp ON tpr.perm_id = tp.id ${ew.customSqlSegment}</select>
MapperList<RolePermsDTO> selectByRoleId(@Param(Constants.WRAPPER) Wrapper<RolePermsDTO> wrapper);
${ew.sqlSet}
LambdaUpdateWrapper<User> wrapper = Wrappers.<User>lambdaUpdate().set(User::getNickName, "1").eq(User::getUserId, 1);this.userMapper.updateUser(wrapper);int updateUser(@Param(Constants.WRAPPER) Wrapper<User> updateWrapper);<update id="updateUser">update userset ${ew.sqlSet}where ${ew.sqlSegment}</update>
DateUtil时间工具的使用
暂时无法在郑煤机文档外展示此内容
spring中time-zone=GMT+8无效(主要原因是因为配置的拦截器中添加了@EnableWebMvc会导致失效)
需要实现 WebMvcConfigurer 或 继承WebMvcConfigurerAdapter
@Configuration
@EnableWebMvc
public class MvcConfig implements WebMvcConfigurer {//解决 spring.jackson.date-format=yyyy-MM-dd HH:mm:ss//spring.jackson.time-zone=GMT+8 不生效的功能@Overridepublic void extendMessageConverters(List<HttpMessageConverter<?>> converters) {MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();ObjectMapper objectMapper = converter.getObjectMapper();SimpleModule simpleModule = new SimpleModule();simpleModule.addSerializer(Long.class, ToStringSerializer.instance);simpleModule.addSerializer(Long.TYPE, ToStringSerializer.instance);objectMapper.registerModule(simpleModule);objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));converter.setObjectMapper(objectMapper);converters.add(0, converter);}
}
git绑定远程分支
//创建并切换到本地分支
git checkout -b dev
//查看本地与远程分支
git branch -a
//关联本地分支到远程分支
git branch --set-upstream-to=origin/jp jp
git branch --set-upstream-to=origin/zjp zjp
、//新的代码推送到仓库步骤
1.git init
2.git add .
3.git commit -m “描述信息”
//添加远程仓库地址
4. git remote add origin https://github.com/ai-dengzy/c_server.git
5. git pull
6.git branch --set-upstream-to=origin/master
7.git pull
8.git push -u origin master
9.
[图片]
再次推送
git push -u origin master
更改git仓库地址
2.先初始化git仓库 git init
git remote -v 查询所在仓库
3.删除原仓库路径git remote rm origin
git remote add origin ‘新的仓库地址’
对于t’inyint类型: 0 true 1 false
maven打包
mvn clean package -DskipTests
maven插件
mvn -U idea:idea
实体转换map对象
object…stream().collect(Collectors.toMap(Object::getField, Function.identity()))
testWhileIdle is true, validationQuery not set解决办法
[图片]
字符串替换{}
StrUtil.format(string,tihuan1,…)
日志打印在对应类中
private static Logger logger = LoggerFactory.getLogger(DriverXxlJob.class);
mysql注意点
隐式转换,where条件处类型一致需要(部分字符串转整形可以),但表为字符串查询值为整形会进行全表查询,结果不对导致
mybatiespius隐藏细节:更新语句不会进行空值处理,需要在字段加上注解@TableField(value = “group_id”, fill = FieldFill.UPDATE)
LINUX常用命令
whereis java //寻找Java安装路径
修改文件权限:chmod 777 xxx
防火墙配置
防火墙配置
安装服务
#安装firewalld
yum install firewalld firewall-config
firewall-cmd --zone=public --add-port=80/tcp --permanent 关闭端口命令
systemctl restart firewalld.service 重启防火墙
systemctl start firewalld # 开启防火墙
firewall-cmd --list-all 查看防火墙所有开启的端口
systemctl status firewalld # 或者 firewall-cmd --state 查看防火墙状态
systemctl disable firewalld # 停止防火墙
systemctl stop firewalld # 禁用防火墙
端口管理
#打开443/TCP端口
firewall-cmd --add-port=443/tcp
#永久打开3690/TCP端口
firewall-cmd --permanent --add-port=3690/tcp# 查看防火墙,添加的端口也可以看到
或者
firewall-cmd --list-all
数组转字符串用字符拼接
StringUtils.join(user, “,”);
注解使用
@ApiParam(“设备变量”)接口参数注释
Redis
redis获取哈希表的所有值
redisTemplate.opsForHash().values
OPC问题总结
点采集不到问题:检查是否配置了opc服务的映射
刷新host
ipconfig /flushdns
判空断言
Assert.notEmpty(req.getStorageNumbers(), “料位编号不能为空”);
相关文章:

日常问题笔记1
th:insert:将被引用的模板片段插⼊到自己的标签体中 th:replace:将被引用的模板片段替换掉自己 th:include:类似于 th:insert,⽽不是插⼊⽚段,它只插⼊此⽚段的内容 <!--1、比如抽取的公用代码片段如下--> <…...

位图与布隆过滤器 —— 海量数据处理
🌈 个人主页:Zfox_ 🔥 系列专栏:C从入门到精通 目录 🚀 位图 一: 🔥 位图概念 二: 🔥 位图的实现思路及代码实现三: 🔥 位图的应用四:…...

二:《Python基础语法汇总》— 条件判断与循环结构
一:条件判断 1.程序执行的三大流程: 顺序流程:无缩进代码,从上往下依次执行 分支流程:选择性执行某块代码,或跳过某行代码去执行,与缩进(TAB)有关 循环流程&…...

【威锋网-注册安全分析报告-无验证方式导致安全隐患】
前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 1. 暴力破解密码,造成用户信息泄露 2. 短信盗刷的安全问题,影响业务及导致用户投诉 3. 带来经济损失,尤其是后付费客户,风险巨大,造…...

01_React简介、基础入门
React 简介、基础入门 一、React 简介1、是什么?2、谁开发的?3、为什么要学?4、React 的特点5、学习 React 之前你要掌握的 Javascript 基础知识 二、React 入门1、相关 js 库2、Hello React 入门小例子---React16.8.0 版本3、为什么不用 js …...

【Java 内存区域】
Java内存区域 JDK1.7 VS JDK1.8堆 (Heap)方法区 (Method Area)String 常量池 (String Pool)运行时常量池 (Runtime Constant Pool)虚拟机栈 (JVM Stack)局部变量表操作数栈动态链接方法返回信息 本地方法栈 (Native Method Stack)程序计数器 (Program Counter Register)元空间 …...

你是如何克服编程学习中的挫折感的?
一:学习之路 在编程学习的过程中,挫折和挑战是不可避免的。面对这些困难,我个人的一些经验和方法如下,或许能为你提供一些启示: 1. 学会分解问题 当遇到复杂的算法或者Bug时,我会将问题分解成更小的部分。…...

【AI应用实战】灵办AI插件集成详细指南
一、写在前面 随着AI技术的日新月异,大型模型应用如雨后春笋般涌现,从ChatGPT到文心一言,再到讯飞星火,无一不彰显着智能科技的无限潜力。而在这股浪潮中,我们欣喜地发现,一些创新的浏览器插件正悄然兴起&a…...

MySQL数据库连接超时问题排查报告
1、问题描述 边端设备访问云端过程中有概率出现MySQL数据库连接超时报错,具体报错代码如下: [2024-08-13 13:47:44,036] ERROR in app: Exception on /est-tasks/start [POST] Traceback (most recent call last): File "/usr/local/lib/python3.1…...

代码随想录第三天 | 链表
文章目录 链表理论知识定义链表删除链表 Leetcode203 移除链表元素代码实现 Leetcode707 设计链表代码实现复杂度分析错误点 Leetcode206 反转链表新建链表双指针法 链表理论知识 链接: https://programmercarl.com/%E9%93%BE%E8%A1%A8%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.h…...

Python编码系列—Python数据可视化:Matplotlib与Seaborn的实战应用
🌟🌟 欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中…...

putty中修改默认窗口大小和字体、字号
在WinSCP中调用putty,发现默认窗口太小,字号也很小,非常不友好。现在显示器都是1080p起步,所以很有必要修改之。 以中文版v0.70为例,方法: 1. 点击左上角图标 ,选择下拉菜单中的“修改设置”&…...

Windows下网络编与ESP8266-WiFi通信(win32-API)
一、前言 络编程是指编写程序使不同计算机之间能够通过网络进行通信和数据交换。网络编程涉及使用网络协议和编程接口来建立、管理和终止网络上的数据通信。在这一领域中,TCP/IP协议族是核心组成部分,尤其TCP(传输控制协议)是面向…...

【Golang】golang安装一些依赖包时总是失败
Golang安装一些依赖包失败: 比如安装gin包:go get -u github.com/gin-gonic/gin 可能会报错:连接网络失败、超时等 这时可能需要修改go的环境配置,修改代理即可: go env -w GO111MO…...

ubuntu如何监控Xvfb虚拟显示器
在Ubuntu中监控Xvfb显示器主要涉及到使用VNC服务器来远程访问这个环境。以下是一些基本步骤: 安装Xvfb和相关工具: 使用apt安装Xvfb和x11vnc,x11vnc是一个VNC服务器,可以远程访问Xvfb创建的虚拟桌面环境。 sudo apt-get install xvfb sudo ap…...

小型需求管理软件盘点:8款功能强大的工具
本文介绍了以下8款工具:PingCode、Worktile、易得云、Ping、燃草、Gitee、Monday.com、Slack。 在现代企业管理中,需求管理一直是个让人头疼的问题,特别是对于小型企业来说,选择一款合适的需求管理软件往往比想象中更复杂。如果选…...

Labelme的安装与使用教程
文章目录 一、Labelme是什么?二、安装步骤1.新建虚拟环境2.安装Labelme3.Labelme的使用 三、json2yolo 一、Labelme是什么? Labelme是一个用于图像标注的开源工具,可以实现图像标注、语义分割、实例分割等。 本文记录一下labelme的安装与使…...

C#基础:数据库中使用Linq作分组处理(反射/直接分组)
目录 一、使用反射分组 二、不使用反射分组 三、调用示例 四、代码demo 一、使用反射分组 private static List<GroupList<T>> GetGroupList<T>(List<T> entities, string groupByProperty) {// 获取分组字段的类型var propertyInfo typeof(T).…...

Revite二次开发_使用WPF和WebView2制作一个访问网站的窗口
如果想在revit里打开网页,可以使用WebView2来实现,下面是一个代码示例。 也尝试过使用CefSharp,但由于Revit本身也使用了CefSharp,所以需要根据不同的Revit版本选择适合的CefSharp版本,比较麻烦,所以最好还…...

Java Spring Boot 连接数据库
要在Java Spring Boot应用程序中连接数据库,您需要遵循以下步骤: 1. 添加数据库依赖项:在您的Spring Boot项目中的pom.xml文件中添加数据库依赖项,例如MySQL或PostgreSQL等。例如,如果您要连接MySQL数据库,…...

Java面试八股之消息队列中推模式和拉模式分别有哪些使用场景
消息队列中推模式和拉模式分别有哪些使用场景 消息队列的推模式(Push)和拉模式(Pull)各有不同的使用场景和优缺点。下面我会详细介绍这两种模式及其适用场景: 推模式(Push) 特点:…...

springboot jar是如何启动的
我们先来看一个项目的打完包后的MANIFEST.MF文件: Manifest‐Version: 1.0 Implementation‐Title: spring‐learn Implementation‐Version: 0.0.1‐SNAPSHOT Start‐Class: com.tulingxueyuan.Application Spring‐Boot‐Classes: BOOT‐INF/classes/ Spring‐Bo…...

Android 12系统源码_屏幕设备(二)DisplayAdapter和DisplayDevice的创建
前言 在Android 12系统源码_屏幕设备(一)DisplayManagerService的启动这篇文章中我们具体分析了DisplayManagerService 的启动流程,本篇文章我们将在这个的基础上具体来分析下设备屏幕适配器的创建过程。 一、注册屏幕适配器 系统是在Disp…...

常用Mysql命令
前言 本文列举了一些常见的mysql操作 正文 一、连接和登录 MySQL 1. 使用命令行登录 MySQL 注意:需要将mysql的bin目录导入到环境变量中 mysql -u 用户名 -p示例: mysql -u root -p执行上述命令后,系统会提示输入密码,输入…...

IDEA Debug工具
一、Debug工具栏 自定义debug工具栏:先把debug程序运行起来->右击->配置 常用的工具: 二、DeBug常用图标详解 三、DeBug实践操作 常规Debug:略。 Stream Chain:处理流式语句 Reset Frame:重置方法入栈 …...

ARM64的汇编资源
最近在写一本ARM64的教材,所以在晚上查找了一下相关资源,都是免费开源的,不包括盗版书籍。 Exploring AArch64 assembler Roger Ferrer Ibez的博客文章,写在2016-2017年,内容简单充实,适合入门。 《ARM6…...

实验室安全分级分类管理系统在高校中的具体应用
盛元广通高校实验室安全分级分类管理系统的构建,旨在通过科学合理的管理手段,提高实验室的安全水平,保障师生的人身安全,防止实验事故的发生。这一系统通常包括实验室安全等级评估、分类管理、风险控制、安全教育与培训、应急响应…...

使用 prerenderRoutes 进行预渲染路由
title: 使用 prerenderRoutes 进行预渲染路由 date: 2024/8/20 updated: 2024/8/20 author: cmdragon excerpt: prerenderRoutes 函数是 Nuxt 3 中一个强大的工具,它能够帮助开发者优化页面加载速度和改善用户体验。通过使用 prerenderRoutes,你能够灵活地指定需要预渲染的…...

【深度解析】WRF-LES与PALM微尺度气象大涡模拟
查看原文>>>【深度解析】WRF-LES与PALM微尺度气象大涡模拟 针对微尺度气象的复杂性,大涡模拟(LES)提供了一种无可比拟的解决方案。微尺度气象学涉及对小范围内的大气过程进行精确模拟,这些过程往往与天气模式、地形影响和…...

redis事件机制
redis服务器是一个由事件驱动(死循环)的程序,它总共就干两件事: 文件事件:利用I/O复用机制,监听Socket等文件描述符发生的事件,如网络请求时间事件:定时触发的事件,负责完成redis内部定时任务&…...