当前位置: 首页 > news >正文

mysql 迁移达梦数据库出现的 sql 语法问题 以及迁移方案

迁移方案:

1.下载官方DM8开发版 产品下载-达梦数据

2.会下载到win系统下的左下角的开始

1.1.2 创建工程

右击空白处,新建

1.1.3 新建迁移

1.1.3.1 选择迁移方式

MySql迁移DM

1.1.3.2 配置数据源

输入你的mysql配置后,刷新,选择要迁移的数据库名

1.1.3.3 配置目的

输入你要迁入的达梦数据库的配置

1.1.3.4 迁移选项

先用默认

保持对象名大小写,不勾选,达梦默认表名和字段名都大写

1.1.3.5 指定模式

1.1.3.6 指定对象

全选你要迁移的表

1.1.3.7 审阅任务

点击完成开始迁移

1.1.3.8 迁移完成

1.1.4 查看迁移后的表

1.1.4.1 登录新用户ESO

1.1.4.2 查看表数据

迁移注意事项

1.需要避免表中的一些注释,会被视为无效的列

2.MySQL与达梦字符占位大小不同

Mysql SQL中使用的是UTF8编码。 在MySQL 中 varchar(1) 可以存一个汉字,DM 数据库是以字节为单位。gb18030 字符集,varchar(2) 才可以存一个汉字;UTF-8 字符集,varchar(3) 才可以存一个汉字。该names在MYSQL的长度为10,在迁移过程中,达梦数据库建表的names字段长度也是10,那么就会导致当该字段中文字符超过4个的时候,就会出现无法存下的问题。 如bit在mysql长度是1 在达梦中就是4 会导致结果中会有空格 "1 "

兼容性方案:

  1. 在MySQL中使用 def_flag=false 的语法在达梦数据库中会出现语法错误,因为达梦数据库无法识别 false。解决方法是将SQL语句中的 def_flag=false 替换为 def_flag=0,或者在数据层面进行调整。

public static final int DEL_FLAG_NORMAL = 0; public static final int DEL_FLAG_DELETE = 1;

  1. 逻辑删除中使用 del_flag = #{DEL_FLAG_NORMAL} 的语法在达梦数据库中会出现语法错误,无法识别 #{DEL_FLAG_NORMAL}。解决方法是在后端代码中传递正确的值。

  2. 在达梦数据库中,可能不直接支持MySQL特定的日期时间运算方式 NOW() - INTERVAL 24 HOUR。替代方法是使用类似 DATE_SUB(NOW(), INTERVAL ‘24’ HOUR)。

  3. 在达梦数据库中,特殊关键字如 user、valus 需要用双引号包裹起来,例如 “user”,“valus”。

  4. 当字段名为小写时,在SQL语句中字段值必须使用单引号,以避免将值误认为是列名。例如将 and d.data_type=“topic” 改为 and d.data_type=‘topic’。

  5. convert和 using 函数在达梦数据库中不支持,解决方法是使用类似 NLSSORT(e.expert_name,‘NLS_SORT = SCHINESE_PINYIN_M’) 替代。

  6. 在达梦数据库中进行模糊查询时,需要使用 $ 符号,例如 AND a.queues LIKE ‘%${queues}%’。

  7. 达梦数据库中用于格式化日期时间的函数可能是 TO_CHAR() 或类似的函数,而不是 DATE_FORMAT()。例如MySQL中的写法需要改为达梦中的形式,如:

Copy CodeMySQL: DATE_FORMAT( a.expiry_date, ‘%Y-%m-%d %H:%M:%S’ ) 达梦: TO_CHAR(a.expiry_date, ‘YYYY-MM-DD HH24:MI:SS’)

  1. 在系统中设置不同数据库方言(如Oracle)时,需要根据方言判断使用不同的SQL查询语句。

  2. 在达梦数据库中调用存储过程的语法是直接使用存储过程名称加上参数,例如 work(1, 2)。

注意事项:

  1. 达梦数据库脚本不支持反引号(esc键下方的符号),需要将其改为双引号,例如 “user_name”。

  2. 在数据迁移过程中,表中不能包含自增字段,否则可能导致问题。

  3. 从MySQL迁移到达梦数据库后,查询字段中可能会出现多余的空格问题,需要调整数据库的长度设置。

  4. 数据迁移中可能会出现丢失某些数据库或表中的字段的情况。

  5. 数据中包含特殊转义符号(如 ')可能会导致迁移数据失败,应将其置为空或适当处理。

  6. 特定关键字(如 ref, comment, top, domain, user, valus,description,domain,LESS等)可能会导致语法错误。

  7. 如果表设置了主键自增,但插入语句中又指定了主键值,可能会出现问题。

  8. 查询中使用单引号修饰列别名可能会引发问题,应注意避免这种写法。

  9. 达梦数据库中日期运算的语法可能与MySQL不同,需要适当调整。

  10. 使用 group_concat 函数在达梦数据库中可能不支持,应考虑使用替代函数或方法。

  11. 修改语句中列的重复使用可能会导致错误。

  12. 在WHERE条件中,字段值应使用单引号而非双引号。

  13. 在MySQL中使用 varchar(1) 可以存储1个汉字,但在达梦数据库中可能需要使用 varchar(2) 才能正确存储。

SQL 语法差异

1.虽然两者都遵循 SQL 标准,但在某些方面有一些细微的差异。例如,在子查询中,达梦数据库不允许在 FROM 子句中引用外部查询的表,而 MySQL 允许。另外,在某些函数和操作符的使用上也有一些差异。

2.达梦对sql语句大小写不敏感 而mysql对大小写敏感

3.DM和MySQL的事务处理方式也存在一些差异。DM默认情况下使用隐式事务,即不需要显式地使用BEGIN和COMMIT关键字来控制事务的开始和结束。而MySQL默认使用自动提交模式,需要使用BEGIN和COMMIT关键字来显式地控制事务的开始和结束

以下不带*号的为关键字, 带*号的为系统保留字。

DM 还将保留字进一步划分为 SQL 保留字、DM SQL 程序保留字、模式保留字、变量保留字和别名保留字。对于关键字和保留字的详细信息请查询系统视图 V$RESERVED_WORDS。

注意:关键字 ROWID、TRXID、VERSIONS_STARTTIME、VERSIONS_ENDTIME、VERSIONS_STARTTRXID、VERSIONS_ENDTRXID 和 VERSIONS_OPERATION 不能作为表的列名,即使加上双引号也不行。

CopyA ABORT、ABSOLUTE*、ABSTRACT*、ACCESSED、ACCOUNT、ACROSS、ACTION、ADD*、ADMIN*、ADVANCED、AFTER、AGGREGATE、ALL*、ALLOW_DATETIME、ALLOW_IP、ALTER*、ANALYZE、AND*、ANY*、APPLY、APR、ARCHIVE、ARCHIVEDIR、ARCHIVELOG、ARCHIVESTYLE、ARRAY*、ARRAYLEN*、AS*、ASC*、ASCII、ASENSITIVE、ASSIGN*、ASYNCHRONOUS、AT、ATTACH、AUDIT*、AUG、AUTHID、AUTHORIZATION*、AUTO、AUTO_INCREMENT*、AUTOEXTEND、AUTONOMOUS_TRANSACTION、AVG B BACKED、BACKUP、BACKUPDIR、BACKUPINFO、BACKUPSET、BADFILE、BAKFILE、BASE、BATCH、BEFORE、BEGIN*、BETWEEN*、BIGDATEDIFF*、BIGINT、BINARY*、BIT、BITMAP、BLOB、BLOCK、BOOL*、BOOLEAN、BOTH*、BRANCH、BREADTH、BREAK*、BSTRING*、BTREE、BUFFER、BUILD、BULK、BY*、BYDAY、BYHOUR、BYMINUTE、BYMONTH、BYMONTHDAY、BYSECOND、BYTE*、BYWEEKNO、BYYEARDAY C CACHE、CALCULATE、CALL*、CASCADE、CASCADED、CASE*、CASE_SENSITIVE、CAST*、CATALOG、CATCH*、CHAIN、CHANGE、CHAR*、CHARACTER、CHARACTERISTICS、CHECK*、CHECKPOINT、CIPHER、CLASS*、CLOB、CLOSE、CLUSTER*、CLUSTERBTR*、COLLATE、COLLATION*、COLLECT、COLUMN*、COLUMNS、COMMENT*、COMMIT*、COMMITTED、COMMITWORK*、COMPILE、COMPLETE、COMPRESS、COMPRESSED、CONDITIONAL、CONNECT*、CONNECT_BY_ISCYCLE、CONNECT_BY_ISLEAF、CONNECT_BY_ROOT*、CONNECT_IDLE_TIME、CONNECT_TIME、CONST*、CONSTANT、CONSTRAINT*、CONSTRAINTS、CONSTRUCTOR、CONTAINS*、CONTEXT*、CONTINUE*、CONVERT*、COPY、CORRESPONDING*、CORRUPT、COUNT、COUNTER、CPU_PER_CALL、CPU_PER_SESSION、CREATE*、CROSS*、CRYPTO*、CTLFILE、CUBE*、CUMULATIVE、CURRENT*、CURRENT_SCHEMA、CURRENT_USER、CURSOR*、CYCLE D DAILY、DANGLING、DATA、DATABASE、DATAFILE、DATE、DATEADD*、DATEDIFF*、DATEPART*、DATETIME、DAY、DBFILE、DDL、DDL_CLONE、DEBUG、DEC、DECIMAL*、DECLARE*、DECODE*、DEFAULT*、DEFERRABLE、DEFERRED、DEFINER、DELETE*、DELETING、DELIMITED、DELTA、DEMAND、DENSE_RANK、DEPTH、DEREF、DESC*、DETACH、DETERMINISTIC、DEVICE、DIAGNOSTICS、DICTIONARY、DIRECTORY、DISABLE*、DISCONNECT、DISKGROUP、DISKSPACE*、DISTINCT*、DISTRIBUTED*、DML、DO*、DOMAIN*、DOUBLE*、DOWN、DROP*、DUMP E EACH、EDITIONABLE、ELSE*、ELSEIF*、ELSIF*、EMPTY、ENABLE*、ENCRYPT、ENCRYPTION、END*、EQU*、ERROR、ERRORS、ESCAPE、EVALNAME、EVENTINFO、EVENTS、EXCEPT、EXCEPTION、EXCEPTION_INIT、EXCEPTIONS、EXCHANGE*、EXCLUDE、EXCLUDING、EXCLUSIVE、EXEC*、EXECUTE*、EXISTS*、EXIT*、EXPIRE、EXPLAIN*、EXTENDS、EXTERN*、EXTERNAL、EXTERNALLY、EXTRACT* F FAILED_LOGIN_ATTEMPS、FAILED_LOGIN_ATTEMPTS、FAST、FEB、FETCH*、FIELDS、FILE、FILEGROUP、FILESIZE、FILLFACTOR、FINAL*、FINALLY*、FIRST*、FLASHBACK*、FLOAT*、FOLLOWING、FOR*、FORALL、FORCE、FOREIGN*、FORMAT、FREQ、FREQUENCE、FRI、FROM*、FULL*、FULLY*、FUNCTION* G GENERATED、GET*、GLOBAL、GLOBALLY、GOTO*、GRANT*、GREAT、GROUP*、GROUPING* H HASH、HASHPARTMAP、HAVING*、HEXTORAW、HIGH、HOLD、HOUR、HOURLY、HUGE I IDENTIFIED、IDENTIFIER、IDENTITY*、IDENTITY_INSERT、IF*、IFNULL*、IGNORE_ROW_ON_DUPKEY_INDEX、IMAGE、IMMEDIATE*、IN*、INCLUDE、INCLUDING、INCREASE、INCREMENT、INDEX*、INDEXES、INDICES、INITIAL、INITIALIZED、INITIALLY、INLINE*、INNER*、INNERID、INPUT、INSENSITIVE、INSERT*、INSERTING、INSTANCE、INSTANTIABLE、INSTEAD、INT*、INTEGER、INTENT、INTERSECT*、INTERVAL*、INTO*、INVISIBLE、IS*、ISOLATION J JAN、JAVA、JOB、JOIN*、JSON、JSON_TABLE、JUL、JUN K KEEP*、KEY、KEYS L LABEL、LARGE、LAST、LAX、LEADING*、LEFT*、LEFTARG、LESS、LEVEL、LEVELS、LEXER*、LIKE*、LIMIT、LINK、LIST*、LNNVL*、LOB、LOCAL、LOCAL_OBJECT、LOCALLY、LOCATION、LOCK、LOCKED、LOG、LOGFILE、LOGGING、LOGIN*、LOGOFF、LOGON、LOGOUT、LONG、LONGVARBINARY、LONGVARCHAR、LOOP*、LSN M MANUAL、MAP、MAPPED、MAR、MATCH、MATCHED、MATERIALIZED、MAX、MAX_RUN_DURATION、MAXPIECESIZE、MAXSIZE、MAXVALUE、MAY、MEM_SPACE、MEMBER*、MEMORY、MERGE、MICRO、MIN、MINEXTENTS、MINUS*、MINUTE、MINUTELY、MINVALUE、MIRROR、MOD、MODE、MODIFY、MON、MONEY、MONITORING、MONTH、MONTHLY、MOUNT、MOVE、MOVEMENT、MULTISET* N NATIONAL、NATURAL*、NCHAR、NCHARACTER、NEVER、NEW*、NEXT*、NO、NOARCHIVELOG、NOAUDIT、NOBRANCH、NOCACHE、NOCOPY*、NOCYCLE*、NODE、NOLOGGING、NOMAXVALUE、NOMINVALUE、NOMONITORING、NONE、NONEDITIONABLE、NOORDER、NOPARALLEL、NORMAL、NOROWDEPENDENCIES、NOSORT、NOT*、NOT_ALLOW_DATETIME、NOT_ALLOW_IP、NOV、NOVALIDATE、NOWAIT、NULL*、NULLS、NUMBER、NUMERIC O OBJECT*、OCT、OF*、OFF、OFFLINE、OFFSET、OIDINDEX、OLD、ON*、ONCE、ONLINE、ONLY、OPEN、OPERATOR、OPTIMIZE、OPTION、OR*、ORDER*、ORDINALITY、OUT*、OUTER、OVER*、OVERLAPS、OVERLAY*、OVERRIDE*、OVERRIDING P PACKAGE、PAD、PAGE、PARALLEL、PARALLEL_ENABLE、PARMS、PARTIAL、PARTITION*、PARTITIONS、PASSING、PASSWORD、PASSWORD_GRACE_TIME、PASSWORD_LIFE_TIME、PASSWORD_LOCK_TIME、PASSWORD_POLICY、PASSWORD_REUSE_MAX、PASSWORD_REUSE_TIME、PATH、PENDANT*、PERCENT*、PIPE、PIPELINED、PIVOT、PLACING、PLS_INTEGER、PRAGMA、PREBUILT、PRECEDING、PRECISION、PRESERVE、PRETTY、PRIMARY*、PRINT*、PRIOR*、PRIVATE*、PRIVILEGE、PRIVILEGES*、PROCEDURE*、PROFILE、PROTECTED*、PUBLIC*、PURGE Q QUERY_REWRITE_INTEGRITY、QUOTA R RAISE*、RANDOMLY、RANGE、RAWTOHEX、READ、READ_PER_CALL、READ_PER_SESSION、READONLY、REAL、REBUILD、RECORD*、RECORDS、REDUCED、REF*、REFERENCE*、REFERENCES*、REFERENCING*、REFRESH、REJECT、RELATED、RELATIVE*、RENAME、REPEAT*、REPEATABLE、REPLACE、REPLAY、REPLICATE*、RESIZE、RESTORE、RESTRICT、RESTRICT_REFERENCES、RESULT、RESULT_CACHE、RETURN*、RETURNING*、REVERSE*、REVOKE*、RIGHT*、RIGHTARG、ROLE、ROLLBACK*、ROLLFILE、ROLLUP*、ROOT、ROW*、ROWCOUNT、ROWDEPENDENCIES、ROWID、ROWNUM*、ROWS*、RULE S SALT、SAMPLE、SAT、SAVE、SAVEPOINT*、SBYTE*、SCHEMA*、SCHEMABINDING、SCN、SCOPE、SCROLL、SEALED*、SEARCH、SECOND、SECONDLY、SECTION*、SEED、SELECT*、SELF、SENSITIVE、SEP、SEQUENCE、SERERR、SERIALIZABLE、SERVER、SESSION、SESSION_PER_USER、SET*、SETS*、SHADOW、SHARE、SHORT*、SHUTDOWN、SIBLINGS、SIMPLE、SINCE、SIZE、SIZEOF*、SKIP、SMALLINT、SNAPSHOT、SOME*、SOUND、SPACE、SPAN、SPATIAL、SPEED、SPFILE、SPLIT、SQL、STANDBY、STARTUP、STAT、STATEMENT、STATIC*、STDDEV、STOP、STORAGE、STORE、STRICT、STRING、STRIPING、STRUCT*、STYLE、SUBPARTITION*、SUBPARTITIONS、SUBSCRIBE、SUBSTITUTABLE、SUBSTRING、SUBTYPE、SUCCESSFUL、SUM、SUN、SUSPEND、SWITCH*、SYNC、SYNCHRONOUS、SYNONYM*、SYS_CONNECT_BY_PATH、SYSTEM T TABLE*、TABLESPACE、TASK、TEMPLATE、TEMPORARY、TEXT、THAN、THEN、THREAD、THROUGH、THROW*、THU、TIES、TIME、TIME_ZONE、TIMER、TIMES、TIMESTAMP、TIMESTAMPADD*、TIMESTAMPDIFF*、TINYINT、TO*、TOP*、TRACE、TRACKING、TRAILING*、TRANSACTION、TRANSACTIONAL、TRIGGER*、TRIGGERS、TRIM*、TRUNCATE*、TRUNCSIZE、TRXID、TRY*、TUE、TYPE、TYPEDEF*、TYPEOF* U UINT*、ULONG*、UNBOUNDED、UNCOMMITTED、UNCONDITIONAL、UNDER、UNION*、UNIQUE*、UNLIMITED、UNLOCK、UNPIVOT、UNTIL*、UNUSABLE、UP、UPDATE*、UPDATING、USAGE、USE_HASH、USE_MERGE、USE_NL、USE_NL_WITH_INDEX、USER*、USHORT*、USING* V VALUE、VALUES*、VARBINARY、VARCHAR、VARCHAR2、VARIANCE、VARRAY*、VARYING、VERIFY*、VERSIONS、VERSIONS_ENDTIME、VERSIONS_ENDTRXID、VERSIONS_OPERATION、VERSIONS_STARTTIME、VERSIONS_STARTTRXID、VERTICAL、VIEW*、VIRTUAL*、VISIBLE、VOID*、VSIZE W WAIT、WED、WEEK、WEEKLY、WHEN*、WHENEVER*、WHERE*、WHILE*、WITH*、WITHIN*、WITHOUT、WORK、WRAPPED、WRAPPER、WRITE X XML、XMLAGG*、XMLATTRIBUTES、XMLELEMENT、XMLPARSE*、XMLTABLE* Y YEAR、YEARLY Z ZONE

系统连接达梦数据库需要在pom.xml中添加依赖

com.dameng DmJdbcDriver18 8.1.2.79

jeesite.properties文件中的连接数据库配置需要改成如下图:

1.2.

在spring-context-activiti.xml文件中 需要改为下图的配置

代码中del_flag = #{DEL_FLAG_NORMAL}需要替换 可以早数据层直接把

public static final int DEL_FLAG_NORMAL = true; public static final int DEL_FLAG_DELETE = false 改为 public static final int DEL_FLAG_NORMAL = 0; public static final int DEL_FLAG_DELETE = 1

文件地址为:BaseEntity.java

在xml中也有一些是del_flag=false的 这些就需要批量替换了

在达梦数据库中,可能不直接支持MySQL特定的日期时间运算方式 NOW() - INTERVAL 24 HOUR。替代方法是使用类似 DATE_SUB(NOW(), INTERVAL ‘24’ HOUR)。

convert和 using 函数在达梦数据库中不支持,解决方法是使用类似 NLSSORT(e.expert_name,‘NLS_SORT = SCHINESE_PINYIN_M’) 替代。

达梦数据库中用于格式化日期时间的函数可能是 TO_CHAR() 或类似的函数,而不是 DATE_FORMAT()。例如MySQL中的写法需要改为达梦中的形式,如:

MySQL: DATE_FORMAT( a.expiry_date, ‘%Y-%m-%d %H:%M:%S’ ) 达梦: TO_CHAR(a.expiry_date, ‘YYYY-MM-DD HH24:MI:SS’)

mysql中查询表的结构和达梦是有差异的 因为达梦没有叫information_schema的系统表 需要用DBA_TAB_COLUMNS来查询达梦的数据库表结构 语法跟Oracle的差不多 如下图:

下图左边是原本的 右边是兼容达梦的语法

在工单自定义中行业必要字段添加的时候是需要获取我们的表 在达梦jdbc连接方式和mysql有差异 需要更改

左边mysql使用的 右边达梦使用的

文件在:WorksheetTypeColumnService.java

关键字在达梦中会被识别成无效的列 需要用""来规避 系统中关键字有user、valus domain, user, valus,description,domain,LESS

相关文章:

mysql 迁移达梦数据库出现的 sql 语法问题 以及迁移方案

迁移方案: 1.下载官方DM8开发版 产品下载-达梦数据 2.会下载到win系统下的左下角的开始 1.1.2 创建工程 右击空白处,新建 1.1.3 新建迁移 1.1.3.1 选择迁移方式 MySql迁移DM 1.1.3.2 配置数据源 输入你的mysql配置后,刷新,选择…...

深入解析css-浮动-学习小结

浮动设计初衷 类似报纸的布局栏&#xff0c;浮动是为了让图片嵌在文本流中&#xff0c;文本不会覆盖图片&#xff0c;但早期布局只有浮动&#xff0c;因此将浮动用于布局&#xff0c;后来才有了display:inline-block display: table flexbox和网格布局等 基本代码 <html&…...

【机器学习】机器学习的基本分类-无监督学习-K-Means聚类

K-Means 是一种基于划分的无监督学习算法&#xff0c;用于数据聚类任务&#xff0c;它通过迭代优化将数据分组为 k 个互斥的簇&#xff0c;使得每个簇内数据点的相似性最大化&#xff0c;而簇间的相似性最小化。它通过最小化簇内样本点到簇中心的距离平方和&#xff08;即误差平…...

.NET for Android/iOS应用的如何在各自的系统运行

1. .NET for Android 上的运行机制 Android 应用使用 Mono 运行时 或 .NET 运行时 在 Android 设备上执行。具体过程如下&#xff1a; 编译过程&#xff1a; C# 代码编写&#xff1a;开发者使用 C# 编写业务逻辑代码。编译为 IL&#xff1a;C# 代码通过 Roslyn 编译器 转换为…...

访问django后台,提示CSRF验证失败. 请求被中断403

我的项目是在服务器部署添加ip后报错的这个错误是因为 Django 的 CSRF 验证机制检测到请求的 Origin 或 Referer 头部与受信任的域名不匹配。要解决此问题&#xff0c;可以将新域名添加到 Django 的 settings.py 中的 CSRF_TRUSTED_ORIGINS 设置里. 1.非debug模式看到的报错信…...

Scala的隐式转换(1)

package hfd //需求&#xff1a; //完成一个功能&#xff0c;让所有的字符串都能调用isPhone方法&#xff0c;来校验自己是不是一个手机号 object Test37_1 {class StrongString(val str: String) {//开始你的代码def isPhone(): Boolean {val reg "1[3-9]\\d{9}".…...

华为TaurusDB与GaussDB:信创改造的“降本提效”之路

近年来&#xff0c;信创&#xff08;信息技术应用创新&#xff09;已成为中国国央企数字化转型的关键词。伴随这一浪潮&#xff0c;众多企业面临一个迫切问题&#xff1a;如何在兼顾性能与成本的前提下&#xff0c;完成核心系统的迁移改造&#xff1f;华为TaurusDB和GaussDB的加…...

Linux网络编程---本地套接字

1.概述 本地套接字 1&#xff1a;作用:本地的进程间通信 2.有关系的进程间通信 3.没有关系的进程间的通信 本地套结字实现流程和网络套结字实现相似&#xff0c;一般采用tcp 二.通信流程 本地套结字通信的流程:1.服务器端:1.1 int fd socket(AF_UNIX/AF_LOCAL,…...

数据结构之四:堆和二叉树

堆的实现:SData/Heap/heap.c Hera_Yc/bit_C_学习 - 码云 - 开源中国 树 树的概念 树&#xff1a;是一个非线性数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层次关系的集合。 把它叫做树是因为它看起来像一棵倒挂的树&#xff0c;也就…...

【论文阅读】国际开源发展经验及其对我国开源创新体系建设的启示

作者&#xff1a;包云岗老师 包云岗老师是计算机体系结构方向的大牛&#xff0c;推动了体系结构方面的开源事业! 欢迎对本栏目感兴趣的人学习"一生一芯"~ 学习体会&#xff1a; 承接前文&#xff0c;唐志敏老师讲到已有的软硬件生态系统和开发成本制约了对新结构的探…...

redis击穿,穿透,雪崩以及解决方案

目录 击穿 解决方案一 解决方案二 穿透 解决方案 雪崩 解决方案 击穿 指的是单个key在缓存中查不到&#xff0c;去数据库查询&#xff0c;这样如果并发不大或者数据库数据量不大的话是没有什么问题的。 如果数据库数据量大并且是高并发的情况下那么就可能会造成数据库压…...

时频转换 | Matlab格拉姆角和场Gramian angular summation field一维数据转二维图像方法

目录 基本介绍程序设计参考资料获取方式 基本介绍 时频转换 | Matlab格拉姆角和场Gramian angular summation field一维数据转二维图像方法 程序设计 clear clc % close all load x.mat % 导入数据 x x(1:5120); % 本数据只选择5120个点进行分析 fs 6400 ; % 数据采样频…...

qt QCryptographicHash详解

1、概述 QCryptographicHash是Qt框架中提供的一个类&#xff0c;用于实现加密散列函数&#xff0c;即哈希函数。哈希函数能够将任意长度的数据转换为固定长度的哈希值&#xff0c;也称为散列值或数据指纹。这个哈希值通常用于数据的完整性校验、密码存储等场景。QCryptographi…...

亚马逊云科技大语言模型加速OCR应用场景发展

目录 前言Amazon Bedrock关于OCR解决方案Amazon Bedrock进行OCR关键信息提取方案注册亚马逊账号API调用环境搭建 总结 前言 大语言模型是一种基于神经网络的自然语言处理技术&#xff0c;它能够学习和预测自然语言文本中的规律和模式&#xff0c;可以理解和生成自然语言的人工…...

什么是分库?分表?分库分表?

分库分表&#xff0c;是企业里面比较常见的针对高并发、数据量大的场景下的一种技术优化方案&#xff0c;所谓“分库分表”&#xff0c;根本不是一回事&#xff0c;而是三件事&#xff0c;他们要解决的问题也都不一样。 这三个事分别是“只分库不分表”、“只分表不分库”、以…...

QT 中 sqlite 数据库使用

一、前提 --pro文件添加sql模块QT core gui sql二、使用 说明 --用于与数据库建立连接QSqlDatabase--执行各种sql语句QSqlQuery--提供数据库特定的错误信息QSqlError查看qt支持的驱动 QStringList list QSqlDatabase::drivers();qDebug()<<list;连接 sqlite3 数据库 …...

不一样的CSS(4)--icon图标系列之svg

序言 上一节内容我们讲解了如何利用css去画一个五角星&#xff0c;其中包括了使用svg的方法&#xff0c;有些小伙伴们对svg的使用不是很了解&#xff0c;那么本节内容我们主要来讲一下&#xff0c;关于svg标签的的使用。 目录 序言一、svg的介绍二、安装SVG扩展插件三、SVG基…...

Level DB --- Cache

class Cache是Level DB中的重要的数据结构&#xff0c;它是一个LRU&#xff08;Least Recently Used&#xff09; Cache的实现。这里面的判断条件主要是内存大小&#xff08;而不是存储entry的个数&#xff09;。当内存达到上界&#xff0c;会释放不被使用的entry&#xff08;存…...

学在西电录播课使用python下载,通过解析m3u8协议、多线程下载ts视频块以及ffmpeg合并

本文涵盖的内容仅供个人学习使用&#xff0c;如果侵犯学校权利&#xff0c;麻烦联系我删除。 初衷 研究生必修选逃&#xff0c; 期末复习怕漏过重点题目&#xff0c;但是看学在西电的录播回放课一卡一卡的&#xff0c;于是想在空余时间一个个下载下来&#xff0c;然后到时候就…...

Springboot3介绍

一、Springboot3简介: https://docs.spring.io/spring-boot/docs/current/reference/html/getting-started.html?spmwolai.workspace.0.0.68b62306Q6jtTw#getting-started.introducing-spring-boot 无论使用XML、注解、Java配置类还是他们的混合用法&#xff0c;配置文件过于…...

viem ABI工具使用教程:编码、解码和类型推断全攻略

viem ABI工具使用教程&#xff1a;编码、解码和类型推断全攻略 【免费下载链接】viem TypeScript Interface for Ethereum 项目地址: https://gitcode.com/gh_mirrors/vi/viem viem是一个轻量级、可组合且类型安全的TypeScript以太坊接口工具库&#xff0c;其强大的ABI工…...

Elasticsearch踩坑记录:scaled_float字段查询结果和你想的不一样?

Elasticsearch中的scaled_float&#xff1a;为什么你的查询结果总是不准确&#xff1f; 刚接触Elasticsearch的开发者经常会遇到一个令人困惑的现象&#xff1a;明明存储的是精确的浮点数&#xff0c;查询时却返回了意料之外的结果。这背后往往与scaled_float字段类型的特殊处理…...

程序员转行学习 AI 大模型: 提示词工程 | 附精选学习资料

本文是程序员转行学习AI大模型的第12个核心知识点笔记&#xff0c;笔记后附精选的提示词工程学习资料。 当前阶段&#xff1a;还在学习知识点&#xff0c;由点及面&#xff0c;从 0 到 1 搭建 AI 大模型知识体系中。 系列更新&#xff0c;关注我&#xff0c;后续会持续记录分享…...

**Modbus协议深度解析:基于Python的TCP通信实战与发散创新应用**在工业自动化领域,**Modbus协议

Modbus协议深度解析&#xff1a;基于Python的TCP通信实战与发散创新应用 在工业自动化领域&#xff0c;Modbus协议因其简单、稳定和开放性成为最广泛使用的串行通信标准之一。本文将从底层原理出发&#xff0c;深入剖析 Modbus TCP 的数据帧结构&#xff0c;并结合 Python 实现…...

使用现代 Java 技术栈构建企业级 AI 应用

使用现代 Java 技术栈构建企业级 AI 应用 引言 随着人工智能技术的快速发展&#xff0c;企业级 AI 应用的需求也迅速增长。Java 作为一门成熟的企业级编程语言&#xff0c;其生态系统在 AI 应用开发中扮演着重要角色。本文将探讨如何利用 Java 技术栈构建生产级 AI 应用&#x…...

计算机毕业设计springboot校园互助平台 基于SpringBoot的高校学生互助服务系统 SpringBoot框架下的校园协同帮助平台

计算机毕业设计springboot校园互助平台3m6f99 &#xff08;配套有源码 程序 mysql数据库 论文&#xff09;本套源码可以先看具体功能演示视频领取&#xff0c;文末有联xi 可分享近年来&#xff0c;随着互联网技术的蓬勃发展和智慧校园建设的深入推进&#xff0c;高校学生对于便…...

OpenClaw内容创作流:nanobot辅助生成技术文章草稿

OpenClaw内容创作流&#xff1a;nanobot辅助生成技术文章草稿 1. 从灵感到初稿的自动化尝试 去年冬天&#xff0c;当我面对第五篇技术博客的空白文档时&#xff0c;突然意识到一个残酷事实&#xff1a;写作最耗时的不是码字本身&#xff0c;而是前期资料搜集和结构搭建。就像…...

用过才敢说 AI论文平台测评:2026年最值得尝试的几款工具

2026年真正好用的AI论文平台&#xff0c;核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测&#xff0c;千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队&#xff0c;覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…...

Eclipse Mraa多平台支持:从树莓派到Intel Joule的无缝移植教程

Eclipse Mraa多平台支持&#xff1a;从树莓派到Intel Joule的无缝移植教程 Eclipse Mraa是一款开源的嵌入式Linux库&#xff0c;专为简化Raspberry Pi、Intel Joule等嵌入式设备上的GPIO、I2C、SPI和UART等硬件接口访问而设计。通过统一的API和跨平台兼容性&#xff0c;开发者…...

Babel polyfill配置全解析:为什么你的Next.js项目在IE11还是报错?

Babel polyfill配置全解析&#xff1a;为什么你的Next.js项目在IE11还是报错&#xff1f; 在2023年的前端生态中&#xff0c;浏览器兼容性依然是个令人头疼的问题。最近接手一个企业级Next.js项目时&#xff0c;我遇到了一个典型场景&#xff1a;开发环境一切正常&#xff0c;但…...