- 博客(51)
- 资源 (5)
- 收藏
- 关注
原创 TDengine 如何进行数据建模
(1) 相同类型的设备,采集指标大体相同,但每个设备可能有少量个性化的指标。(2) 就同一设备而言,各采集指标有各自的采集频率,不过采集频率是确定的,比如 PLC1~PLC10 的采集频率是 10ms,PLC11~PLC20 的采集频率是 20ms。更复杂的场景中,设备的固定表结构很难抽象出来,或者表结构经常改变,无法固定,此时需要有更灵活的处理思路。.其中时间戳必填的列,剩余列则要根据测点类型填写,比如测点上报的是整形数据,就只需要设置time、采集值 int 这两列,其余列为 null。
2024-05-29 10:23:51
735
原创 java使用BatchPoints批量写入Influxdb
使用时序数据库influxdb时,我们经常需要写入大量的数据。而单单使用influxDB.write(Point)进行单条写入时,速度过慢,无法支撑时序数据大量写入的速度。所以我们需要采用批量的方式进行存储,增加写入的速度。
2024-03-11 15:09:05
1669
1
原创 中高级java研发面试题整理
1.#{}和${}的区别是什么?#{} 使用预编译 ,防止sql注入${} 通过字符串替换, 一般用于参数是表名、列名时2.当实体类中的属性名和表中的字段名不一样 ,怎么办 ?① sql中给字段设置别名②通过中设置别名3.如何获取自动生成的(主)键值?插入后标签返回 LAST_INSERT_ID4 在mapper中如何传递多个参数?①通过#{0}, #{1} 或者 @Params作为占位符②通过map集合作为参数5.动态sql是什么?有哪些动态sql?动态sql的原理?①动态sql就是
2023-06-01 10:10:22
1156
原创 java获取Object对象的具体类型
Object value = 123;System.out.println("数据类型 :" + value.getClass().getSimpleName());
2023-01-04 16:41:45
3556
原创 java 使用milo库 获取opc ua节点数据类型
我们知道,opc ua 的节点,其value是有固定的数据类型的,即DataType那么opc ua client向 opc ua server写入数据时,写入的值必须与server中的数据类型相匹配才能成功的写入进去。如果数据类型不匹配会抛出异常。所以,我们需要获取opc ua server中节点的数据类型,通过将其与写入数据的数据类型进行对比,只有符合类型的才进行写入。获取DataType方法NodeId serverNode = opcUaClient.getAddressSpace().get
2023-01-04 16:33:17
2970
原创 springboot jpa 返回自定义非实体VO类
我们在使用Springboot JPA查询数据内容时,大多数是直接返回表对应的实体类,但是有时候我们需要增加或减少实体类的字段。即创建一个自定义返回类VO,使用JPA查询,repository接口中直接返回VO。
2022-10-21 15:49:49
1532
原创 idea无法识别gradle或者maven解决办法
一般当idea中的项目切换分支从无gradle或maven到含有gradle/maven的分支后,idea无法自动将其识别为gradle/maven项目。
2022-08-30 10:21:05
4662
原创 在EXCEL中正确使用逗号分隔的CSV文件
在EXCEL中选择 ”文件” –> “打开” ,选择文件所在目录选择文件弹窗中的文件格式为“csv”格式文件,并选中目标文件,选择打开出现“文本导入导向”对话框,选择下一步分隔符号选择“逗号” ,点击下一步点击完成文件内容就正确的按照逗号分割成不同的列啦。...
2022-08-06 16:33:29
9374
原创 JCF之List集合实现——Vector
List是JCF中的重要一部分,而Vector是List的一个实现类,具有支持随机访问、支持扩容、线程安全的特点
2022-08-06 16:22:22
518
原创 CSV文件如何使用EXCEL打开
选择CSV文件,出现文本导入向导,选择“分隔符号”,下一步,完成,在“导入数据”对话框里,直接点确定。勾选“逗号”,去掉“Tab键”,下一步,执行“数据”->“自文本”,
2022-08-01 09:48:13
2384
原创 为什么重写equals时必须重写hashCode方法
规定:如果equals()相等,hashCode必须相等。重写equals()方法后,如果不重写hashCode(),可能会出现equals()判断为true,但是hashCode不相等的情况
2022-06-14 16:25:19
103
原创 【设计模式修炼】第三章 :家族编程大比开始,比赛中领悟《工厂模式》
萧氏一族从古至今每三年举行一次编程大比,为的就是在激励家族子弟加快编程功法的修炼,并且通过比赛筛选出家族中的天才,从而对这些天才进行重点培养。 遥想萧炎十岁之前也曾参加过一次家族编程大比,并且在比赛中击败了无数年龄大于自己的族中天骄,极负萧氏第一天才盛名。之后不久萧炎便由天才成为人人不齿的废材,沉寂了好几年。这次的家族编程大比,萧炎相信自己能够取得很好的成绩,但是对于能否夺得大比第一,他还是没有多大把握。因为他的沉寂了太久,虽然打下了无敌根基,但是境界上仍比同龄人相差不少。 正当萧炎发愁如何提升实力
2022-05-26 09:36:17
176
原创 【设计模式修炼】第二章 :习得《单例模式》
眨眼时间过了三年,消炎已经彻底掌握了七大设计原则,打下了无敌根基。而器灵java终于在今天传授给了他第二重功法:《单例模式》 所谓单例模式,即涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。 这第二重功法,有5个招式。第一招:懒汉式 此招式贵在不需要初始化实例对象,只有在第一次调用时才进行实例化。第一招又分两式:线程不安全和线程安全线程不安全:public class Singleton
2022-05-25 11:06:42
118
原创 【设计模式修炼】第一章 :获得《七大原则》
在遥远的编程大陆,这里的人们奉行着编程为尊的原则,要想出人头地就要掌握强大的编程功法。 在众多强大的编程家族代代相传有强大功法之外,其中不乏一些失传已久的编程功法。这些功法已经随着时间的流逝散落在大陆各地,只待有缘人发现。而一旦练成这些编程功法,变可使功力突飞猛进,甚至远超大家族子弟! 消炎出生在一个偏远而弱小的编程小家族之中,乃是族长之子。在其10岁之前,曾经借助家族的小功法修炼迅速,成为当地有名的天才少年.谁料在其10岁之时,消炎竟然自己散去一身功法,重头修炼!而且其修炼的速度远远无法与幼
2022-05-24 14:26:57
143
原创 java 解决死锁方法
死锁发生后,没有任何机制能解除死锁,只能强制结束JVM进程。因此,在编写多线程应用时,要特别注意防止死锁。因为死锁一旦形成,就只能强制结束进程。那么我们应该如何避免死锁呢?答案是:1.线程获取锁的顺序要一致。即严格按照先获取lockA,再获取lockB的顺序。2 设置锁的持有时间,超时自动释放锁...
2022-05-12 17:27:45
1642
原创 Springboot普通类中调用Bean实例(Service层方法)
文章目录前言一、ApplicationContext是什么二、如何获取ApplicationContext三、如何获取Bean四、工具类代码前言在我们使用springboot的过程中,可能会存在非Spring托管的类中调用Service层方法的需求。这时候无法通过@Autowire或者@Resource来获取一、ApplicationContext是什么ApplicationContext即环境上下文,它继承了BeanFactory类,负责配置、创建、管理Bean。二、如何获取Applica
2022-04-21 09:08:28
1531
转载 LINUX压缩/解压缩tar文件命令
1、压缩命令: 命令格式: tar -zcvf 压缩文件名 .tar.gz 被压缩文件名1 可先切换到当前目录下,压缩文件名和被压缩文件名都可加入路径。 2、解压缩命令: 命令格式: tar -zxvf 压缩文件名.tar.gz1 解压缩后的文件只能放在当前的目录。 ...
2022-04-20 14:24:59
21339
原创 java实现国密SM4加密
前言最近世界政治影响,我国也开始要求算法的使用,以避免来自外国的黑客入侵。我们在使用加密算法时,有必要选择使用国密算法进行加密一、国密SM4是什么? 国密即国家密码局认定的国产密码算法。 主要有SM1,SM2,SM3,SM4。密钥长度和分组长度均为128位。 SM1 为对称加密。其加密强度与AES相当。该算法不公开,调用该算法时,需要通过加密芯片的接口进行调用。 SM2为非对称加密,基于ECC。该算法已公开。由于该算法基于ECC,故其签名速度与秘钥生成速度都快于RSA ECC 2.
2022-04-13 15:59:48
24028
2
原创 后台管理系统示例:bootstrap快速搭建html页面,jQuery实现选择菜单切换内容
后台管理系统示例:通过bootstrap快速搭建html页面,jQuery实现选择菜单切换内容
2022-04-07 11:09:27
6395
原创 SpringMVC里form表单提交到action指定路径404
错误原因tomcat配置的路径中在端口号之后还有路径:如http://localhost:8080/ssmTest_war_exploded而action=“/form”中跳转时,路径为http://localhost:8080/form,正确路径应为http://localhost:8080/ssmTest_war_exploded/form解决方法一、填充路径把<form action="/logon">改为<form action="${pageContext.
2022-03-30 15:33:08
1655
原创 一种基于kafka实现物联网设备数据精细化存取的方法
一种基于kafka实现物联设备数据精细化存取的方法摘要:基于kafka实现物联设备数据精细化存取的方法是指能够缓存物联网平台连接的所有设备的所有数据并且能高效精确地读取指定设备的指定类型数据的一种方法。属于物联网领域。本发明分为设备数据分类存储和精确获取目标数据两部分。其中设备数据分类存储部分包括设备数据的具体分类方法以进行缓存数据,精确获取目标数据部分包括通过动态订阅和动态拦截器实现精确筛选目标数据。技术领域:基于kafka生产者的通过设备分类和数据分类实现粗粒度设备数据存储和基于kafka消费者
2022-03-23 14:49:07
7165
原创 实现两(多)个key对应一个value,一个key对应多个value
通过key拼接法和map嵌套法实现两(多)个key对应一个value。通过Map和Set结合实现一个key对应多个value。
2022-03-23 14:34:50
10982
2
原创 凌晨三点,官方警报消息吵醒了你,消息内容是:「不要抬头看月亮。」(一)
凌晨三点,官方警报消息吵醒了你,消息内容是:「不要抬头看月亮。」同时,你发现手机收到了几百条来自陌生号码的消息:「夜色好美,看看窗外吧。」
2022-03-16 10:20:11
4841
原创 @RestController和@Controller的区别
文章目录辟谣:一、@RestController和@Controller的区别二、@Controller三、@RestController辟谣:相信大家在查找这个问题时,会遇到有的博主会提到 :@RestController是无法返回jsp页面的在这里更正一下:@RestController 可以返回jsp页面,只需要返回ModelAndView类型即可提示:以下是本篇文章正文内容,下面案例可供参考一、@RestController和@Controller的区别很简单:@RestContr
2022-03-10 17:23:26
3161
转载 IDEA Tomcat 必须限制口令文件读取访问权限
转载自https://www.icode9.com/content-4-833608.html在idea中配置完tomcat后,运行报如下错误必须限制口令文件读取访问权限: xxxxx jmxremote.password看到网上好多方法,让修改tomcat中文件或者jre下的文件。非常麻烦而且没有起作用!其实直接在idea配置一句话即可-Dcom.sun.management.jmxremote.authenticate=false...
2022-03-10 14:01:01
1003
1
原创 太无聊了怎么办?从编译器控制台看会书吧
只需要jdk,不需要任何依赖库!利用编译器控制台即可进行阅读!并且看起来无疑是在调试代码,找bug!效果图:步骤1:将代码复制一下。步骤2:配置开头的bookSrc参数,即书籍的路径步骤3:运行代码步骤4:将控制台翻回最上方,开始阅读步骤5:保存标签:每一行最左边显示行数,直接在控制台输入该数字。直接上代码:import java.io.*;import java.util.Scanner;public class CDBook { //书籍路径 final st
2022-03-07 14:53:04
258
原创 一种基于定时任务检测物联网设备异常状态的方法
一. 摘要:基于基于定时任务的检测物联网设备异常状态的方法是指能够根据物联网设备既定的上报消息的频率作为参考标准,制定的一套判断物联网设备异常状态的方法。属于物联网领域。本发明分为记录设备最近上报数据状况、自适应定时任务周期以及定时根据设备上报频率判断设备异常状态三部分。记录设备最近上报数据状况部分包括:在数据库中存储每个设备的最近一次上报数据状况。自适应定时任务周期包括:每种设备接入物联网平台时需要设定标准上报频率,并更新该服务器节点的定时任务周期为其当前最小上报周期。定时根据设备上报频率判断设
2022-03-02 16:53:56
4933
原创 EMQX部署
文章目录前言一、mqtt是什么?二、EMQX部署步骤1.下载压缩包2.解压3.配置EMQX连接属性4.配置redis认证5.配置默认启用插件6.EMQX - Dashboard7.MQTT.fx工具连接mqtt总结前言物联网通信最常用的协议之一是MQTT,而EMQX是作为一个消息中间件或者是一个MQTT的服务器,能够支持MQTT协议的通信一、mqtt是什么?MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publ.
2022-03-02 16:36:37
6839
2
原创 通过docker file,使用配置文件 部署redis
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、内容1.文件列表2.Dockerfile内容3.myredis.conf内容二、使用步骤1.修改配置2.构建镜像3.创建容器总结前言最近需要部署一个redis服务供emqx使用。由于环境上均为容器化部署服务,所以我们需要使用docker来进行部署。也看了一下网上docker部署redis的文章,存在几个问题。1.大多数教程是直接拉取官方redis最新版本镜像,即latest标签或不指定标签。然后直接使用该镜像执
2022-02-25 16:04:36
1924
原创 Springboot+Mysql流式查询——避免内存溢出(OOM)
话说笔者最近在做一个数据迁移的功能,说白了就是数据导出导入嘛。寻思着这还不简单,没想到第一步就GG了。具体就是在数据库查询返回数据集时,由于数据集过大(大约几十万条吧)导致出现了内存溢出,即后台报错OOM。面对这种问题我们的第一反应肯定是将结果分页返回。但是分页却不得不考虑到几个问题:首先就是每页的大小,需要经过测试来确定一个合适的值,如果页面过大仍然可能出现内存溢出的问题;其次就是对于结果超大的数据集,在分页时偏移性能、查询开销和结果预加载似乎真的会损害分页方法的效率,简而言之就是会比较慢。经过一翻查
2021-12-07 19:48:30
2522
原创 SQL:使用DATE_ADD函数加减时间
使用DATE_ADD(date,INTERVAL expr unit)函数,可以对Date进行加减其中date代表要修改的时间字段expr 代表要增加多少时间,负数代表减少时间unit代表时间单位SQL语句:UPATE 表名 SET 时间字段=DATE_ADD(时间字段,INTERVAL 7 DAY) WHERE 修改条件例:执行语句UPDATE static_count SET date_arr_str=DATE_ADD(date_arr_str,INTERVAL 7 DAY);执行前
2021-11-25 09:54:16
4711
原创 高度总结——1分钟上手正则表达式
正则表达式概括总结一.关于正则表达式二.使用方法三.匹配规则一.关于正则表达式正则表达式是一种用来匹配字符串的强有力的武器。Java内置了强大的正则表达式的支持。二.使用方法1.假设正则表达式 str1,要进行匹配的字符串为str2。要判断str2是否符合正则表达式str1的规则,调用matches()函数str2.matches(str1);2.在java中使用时,需要对特殊字符进行转义。如,+,*,&。写的时候为\d,*,等。三.匹配规则1.匹配一个数字\d ,非数字\D2.
2020-11-20 09:56:37
362
转载 【Java基础-3】吃透Java IO:字节流、字符流、缓冲流
Java IO流 前言1 初识Java IO1.1 IO流分类1.2 案例实操 2 IO流对象2.1 File类2.2 字节流2.3 字符流2.4 序列化 3 IO流方法3.1 字节流方法3.2 字符流方法 4 附加内容4.1 位、字节、字符4.2 IO流效率对比4.3 NIO 前言 有人曾问fa...
2020-11-04 09:25:39
296
原创 简单shell脚本编写
简单shell脚本编写用途:有时候我们需要频繁执行一个或者多个shell命令。这样就会十分耗时和麻烦。如何能够先写一个脚本,只需要运行一下脚本就能自动完成所需的所有操作实现:首先新建一个.sh文件。可以先建txt再改后缀名。开头第一行#!/bin/bash换行将我们需要用到的一个或多个命令按顺序写到该文件中。如果有想要在运行时手动输入变量。则可以在文本中用$1,$2等表示这是一个需要手动输入的变量。最后执行命令运行该脚本就大功告成啦...
2020-10-26 10:56:10
168
原创 快速掌握Java中的反射
Java中通过反射在程序运行期获取一个对象的所有信息。***假如我们手中有一个未知的Object对象 obj,通过反射来获取obj的所有信息。***一 获取对象的Class1.第一种获取Class:简单类名.class如String类: Class q=String.class;2.第二种获取Class:类的实例名.getClass()此刻我们可以通过obj.getClass()来获取obj对应的类Class cla=obj.getClass();3.第三种获取Class:知道完整类名
2020-08-14 11:18:10
175
emqx4.4.19源码修改版(支持OceanBase)
2025-01-09
以实验管理系统为例 实现了左侧菜单切换右侧内容等功能
2022-04-07
docker dockerFile 一键部署 emqx
2022-02-25
docker dockerfile 以配置文件方式 部署 redis 4.0.6版本
2022-02-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人