ShardingSphere跨表查询报错

目录

    • 一、场景简介
    • 二、报错信息
    • 三、SQL
    • 四、原因
    • 五、解决
      • 方法一、调整SQL,不使用子查询
      • 方法二、将子查询的SQL独立出来,后续连接逻辑由代码处理


一、场景简介

1、使用ShardingSphere按月份进行分表

2、单月查询正常(单表)

3、跨月查询报错(跨表)


二、报错信息

### Error querying database.  Cause: java.lang.NullPointerException
### The error may exist in file [/home/xxx/devtest/robot/robot-admin-8073/webapps/RobotManagerSvr/WEB-INF/classes/mappings/RobotQuestionMapper.xml]
### The error may involve com.xxx.mapper.RobotQuestionMapper.getQuestionReportList
### The error occurred while handling results
### SQL: SELECT   t1.quesId,   t1.questionMsg,   t2.qName AS questionType,   count( t4.sId ) AS satCount,   count( t4.flag = '1' OR NULL ) AS solveCount,   count( t4.flag = '0' OR NULL ) AS unSolveCount,   ROUND(IFNULL(count( t4.flag = '1' OR NULL ) / count( t4.sId ), 0) * 100, 2) AS solvePercent,         t6.browseQty   FROM   t_robot_question AS t1   LEFT JOIN t_robot_questiontype AS t2 ON t1.qId = t2.qId   LEFT JOIN t_robot_messageReplay AS t3 ON t1.quesId = t3.quesId   LEFT JOIN t_robot_SolveRec AS t4 ON t3.recId = t4.recId   LEFT JOIN t_robot_sessionmsg AS t5 ON t3.SessionID = t5.SessionID   LEFT JOIN (             SELECT quesId, sum(IFNULL( hitQty, 0 )) AS browseQty             FROM t_robot_ques_statistics4ques             WHERE companyId = ? GROUP BY quesId         ) AS t6 ON t1.quesId = t6.quesId   WHERE   t1.companyId = ?   AND t3.CreateTime BETWEEN ? AND ?           GROUP BY   t1.quesId,   t1.questionMsg,   t2.qName         HAVING t1.quesId IS NOT NULL   ORDER BY t3.CreateTime DESC
### Cause: java.lang.NullPointerException
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: 
### Error querying database.  Cause: java.lang.NullPointerException
### The error may exist in file [/home/xxx/devtest/robot/robot-admin-8073/webapps/RobotManagerSvr/WEB-INF/classes/mappings/RobotQuestionMapper.xml]
### The error may involve com.xxx.mapper.RobotQuestionMapper.getQuestionReportList
### The error occurred while handling results
### SQL: SELECT   t1.quesId,   t1.questionMsg,   t2.qName AS questionType,   count( t4.sId ) AS satCount,   count( t4.flag = '1' OR NULL ) AS solveCount,   count( t4.flag = '0' OR NULL ) AS unSolveCount,   ROUND(IFNULL(count( t4.flag = '1' OR NULL ) / count( t4.sId ), 0) * 100, 2) AS solvePercent,         t6.browseQty   FROM   t_robot_question AS t1   LEFT JOIN t_robot_questiontype AS t2 ON t1.qId = t2.qId   LEFT JOIN t_robot_messageReplay AS t3 ON t1.quesId = t3.quesId   LEFT JOIN t_robot_SolveRec AS t4 ON t3.recId = t4.recId   LEFT JOIN t_robot_sessionmsg AS t5 ON t3.SessionID = t5.SessionID   LEFT JOIN (             SELECT quesId, sum(IFNULL( hitQty, 0 )) AS browseQty             FROM t_robot_ques_statistics4ques             WHERE companyId = ? GROUP BY quesId         ) AS t6 ON t1.quesId = t6.quesId   WHERE   t1.companyId = ?   AND t3.CreateTime BETWEEN ? AND ?           GROUP BY   t1.quesId,   t1.questionMsg,   t2.qName         HAVING t1.quesId IS NOT NULL   ORDER BY t3.CreateTime DESC
### Cause: java.lang.NullPointerExceptionat org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:77)at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:446)at com.sun.proxy.$Proxy99.selectList(Unknown Source)at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:230)at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:137)at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:75)at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59)at com.sun.proxy.$Proxy161.getQuestionReportList(Unknown Source)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:139)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212)at com.sun.proxy.$Proxy162.getQuestionReportList(Unknown Source)at com.xxx.service.Impl.RobotQuestionServiceImpl.getQuestionReportList(RobotQuestionServiceImpl.java:656)at com.xxx.service.Impl.RobotQuestionServiceImpl$$FastClassBySpringCGLIB$$41e86926.invoke(<generated>)at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:684)at com.xxx.service.Impl.RobotQuestionServiceImpl$$EnhancerBySpringCGLIB$$37dbcb67.getQuestionReportList(<generated>)at com.xxx.controller.RobotQuestionController.getQuestionReportList(RobotQuestionController.java:1094)at com.xxx.controller.RobotQuestionController$$FastClassBySpringCGLIB$$abadd88e.invoke(<generated>)at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:749)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)at org.springframework.aop.framework.adapter.AfterReturningAdviceInterceptor.invoke(AfterReturningAdviceInterceptor.java:55)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:93)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)at com.xxx.controller.RobotQuestionController$$EnhancerBySpringCGLIB$$a3088a72.getQuestionReportList(<generated>)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:189)at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:800)at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1038)at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942)at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1005)at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:908)at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:882)at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)at com.xxx.filter.XssFilter.doFilter(XssFilter.java:53)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:320)at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:119)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)at com.xxx.jwt.JwtAuthenticationTokenFilter.doFilterInternal(JwtAuthenticationTokenFilter.java:145)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:96)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:74)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215)at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:357)at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:270)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:130)at org.springframework.boot.web.servlet.support.ErrorPageFilter.access$000(ErrorPageFilter.java:66)at org.springframework.boot.web.servlet.support.ErrorPageFilter$1.doFilterInternal(ErrorPageFilter.java:105)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:123)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:94)at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:620)at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:502)at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1132)at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:684)at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1539)at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1495)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)at java.lang.Thread.run(Thread.java:750)

三、SQL

<select id="getQuestionReportList" resultType="com.alibaba.fastjson.JSONObject">SELECTt1.quesId,t1.questionMsg,t2.qName AS questionType,count( t4.sId ) AS satCount,count( t4.flag = '1' OR NULL ) AS solveCount,count( t4.flag = '0' OR NULL ) AS unSolveCount,ROUND(IFNULL(count( t4.flag = '1' OR NULL ) / count( t4.sId ), 0) * 100, 2) AS solvePercent,t6.browseQtyFROMt_robot_question AS t1LEFT JOIN t_robot_questiontype AS t2 ON t1.qId = t2.qIdLEFT JOIN t_robot_messageReplay AS t3 ON t1.quesId = t3.quesIdLEFT JOIN t_robot_SolveRec AS t4 ON t3.recId = t4.recIdLEFT JOIN t_robot_sessionmsg AS t5 ON t3.SessionID = t5.SessionIDLEFT JOIN (SELECT quesId, sum(IFNULL( hitQty, 0 )) AS browseQtyFROM t_robot_ques_statistics4quesWHERE companyId = #{companyId} GROUP BY quesId) AS t6 ON t1.quesId = t6.quesIdWHEREt1.companyId = #{companyId}AND t3.CreateTime BETWEEN #{beginDate} AND #{endDate}AND t4.CreateTime BETWEEN #{beginDate} AND #{endDate}AND t5.CreateTime BETWEEN #{beginDate} AND #{endDate}GROUP BYt1.quesId,t1.questionMsg,t2.qNameORDER BY t3.CreateTime DESC
</select>

四、原因

是子查询的导致(具体原因不明)

在这里插入图片描述


五、解决

方法一、调整SQL,不使用子查询

方法二、将子查询的SQL独立出来,后续连接逻辑由代码处理

1、去除子查询

在这里插入图片描述

2、将子查询封装为mapp方法

在这里插入图片描述

3、由代码完成连接

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/851593.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CA证书及PKI

文章目录 概述非对称加密User Case: 数据加密User Case: 签名验证潜在问题 CACA证书的组成CA签发证书流程CA验证签名流程CA吊销证书流程 PKI信任链证书链 概述 首先我们需要简单对证书有一个基本的概念&#xff0c;以几个问题进入了解 ❓ Question1: 什么是证书&#xff1f; 证…

福利|免费申请长期单域名、通配符、多域名SSL证书,不限量

一、什么是单域名、通配符、多域名SSL证书 单域名证书&#xff1a;仅保护一个特定的域名。 通配符证书&#xff1a;保护一个主域名及其所有二级子域名。 多域名证书&#xff1a;在同一张证书中保护多个不同的域名&#xff0c;可以是主域名也可以是子域名&#xff0c;域名之间…

目前比较好用的LabVIEW架构及其选择

LabVIEW提供了多种架构供开发者选择&#xff0c;以满足不同类型项目的需求。选择合适的架构不仅可以提高开发效率&#xff0c;还能确保项目的稳定性和可维护性。本文将介绍几种常用的LabVIEW架构&#xff0c;并根据不同项目需求和个人习惯提供选择建议。 常用LabVIEW架构 1. …

Invalid keystore format,获取安全码SHA1值出错

AndroidStudio版本&#xff1a;Android Studio Electric Eel | 2022.1.1 项目运行JDK版本&#xff1a;11.0.15&#xff0c;查看方法如下&#xff1a; 在Terminal 窗口中&#xff0c;获取的Java版本是&#xff1a;1.8.0&#xff0c;修改Java系统环境变量&#xff0c;改成&#…

如何在MySQL中创建不同的索引和用途?

目录 1 基本的 CREATE INDEX 语法 2 创建单列索引 3 创建多列索引 4 创建唯一索引 5 创建全文索引 6 在表创建时添加索引 7 使用 ALTER TABLE 添加索引 8 删除索引 9 索引管理的最佳实践 10 示例 在 MySQL 中&#xff0c;索引&#xff08;index&#xff09;是一种用于…

Git保姆级教程

目录 Git是什么&#xff0c;为什么要学这个工具&#xff1f; 码云注册并创建仓库 Git安装 查看本地仓库状态 添加到暂存区 提交到本地库 修改文件 版本回退 创建、切换和删除分支 合并分支 克隆远端库到本地 将本地库推送到远端库 命令设置别名 Git是什么&#xf…

远程咨询的好处都有哪些呢?

随着科技的飞速发展&#xff0c;远程咨询正逐渐成为人们获取医疗服务的一种新方式。那么什么是远程咨询呢&#xff1f;其又有哪些好处呢&#xff1f;下面就给大家详细地说说。 远程咨询的概念 远程咨询&#xff0c;顾名思义&#xff0c;是指通过互联网技术&#xff0c;实现患…

LeetCode 746.使用最小花费爬楼梯

题目&#xff1a; 给你一个整数数组 cost &#xff0c;其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用&#xff0c;即可选择向上爬一个或者两个台阶。 你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。 请你计算并返回达到楼梯顶部的最低花费…

使用try-catch捕获异常到底会不会影响性能?尤其是try-catch还比较多的情况下?

从字节码层面来看&#xff0c;没抛错两者的执行效率其实没啥差别。 “那为什么网上流传着try-catch会有性能问题的说法啊&#xff1f; 这个说法确实有&#xff0c;在《Effective Java》这本书里就提到了 try-catch 性能问题&#xff1a; 总结&#xff1a; 1、try-catch 相比较…

C++ STL std::map的实现机制【面试】

基于红黑树&#xff1a;std::map 利用红黑树的数据结构来存储数据&#xff0c;确保了操作的平衡性和效率。 自动排序&#xff1a;红黑树保证了元素的有序性&#xff0c;即元素会根据键自动排序。 唯一键值&#xff1a;每个键都是唯一的&#xff0c;如果尝试插入重复的键&…

联想测开一面(电话面试)笔试60%

3.21 无自我介绍基本问项目&#xff0c;问实习对python自动化测试了解多少讲一下python中打包和解包的概念学校无测试相关课程&#xff0c;平时用什么平台去学习的计算机底层实现原理简要说说&#xff08;软硬结合&#xff09;大致讲一下了解的C的一些数据结构C指针和数组的区…

【TensorFlow深度学习】DQN(Deep Q-Network)算法详解

DQN&#xff08;Deep Q-Network&#xff09;算法详解 DQN&#xff08;Deep Q-Network&#xff09;算法详解&#xff1a;深度强化学习的里程碑DQN算法原理代码实现结语 DQN&#xff08;Deep Q-Network&#xff09;算法详解&#xff1a;深度强化学习的里程碑 在强化学习的浩瀚宇…

汇编:数组数据传送

要在32位汇编中实现数组数据的传送&#xff0c;可以使用字符串操作指令 MOVS 以及其前缀 REP&#xff0c;可以高效地复制数组数据。 MOVS 指令是一种字符串操作指令&#xff0c;用于将数据从源地址移动到目标地址。MOVS 指令有不同的变种&#xff0c;可以处理不同大小的数据&a…

水印怎么去除?Windows 上的最佳水印软件

我们都知道&#xff0c;任何水印软件都可以防止您的数字财产被盗。此外&#xff0c;水印是一种虚拟营销元素&#xff0c;可以帮助您推广您的作品。 奇客水印管家是 Internet 上适用于 Windows 7、8 、10 和 11 的最高效的水印软件。此外&#xff0c;它还允许用户通过添加或删除…

计算机基础之:UMA与NUMA区别

基础 UMA&#xff08;Uniform Memory Access&#xff09;与NUMA&#xff08;Non-Uniform Memory Access&#xff09;是两种不同的内存架构设计&#xff0c;主要应用于多处理器系统中&#xff0c;它们的主要区别在于内存访问的效率和方式&#xff1a; UMA&#xff08;Uniform …

【C++】环境搭建及基本工作流程

C 当你需要写性能良好的代码时&#xff0c;C仍是不二选择 如果你想访问硬件、如果你想对硬件进行控制&#xff0c;C仍是首选。 所有的游戏引擎都是用C编写的&#xff0c;因为C可以直接控制硬件。 原理&#xff1a; C代码-->编译器编译comple-->目标平台的机器码-->放…

锂电池危险特性分类鉴别 危险品危险特性分类鉴别报告怎么申请

锂电池危险特性分类鉴别报告的办理流程 锂电池危险特性分类鉴别报告是用于确定锂电池及其产品对应的运输危险品分类&#xff0c;判断是否符合国际公认的危险品分类标准的报告。办理此类报告的流程通常包括以下几个步骤&#xff1a; 提供样品及测试需求&#xff1a;需要提供样品…

java如何实现字符串连接

在java中&#xff0c;字符串与字符串连接可以用运算符和 比如有字符串a,字符串b 想要把a和b连接起来&#xff0c;定义一个字符串变量c cab 或者 ab 示例代码 public class Zifuchuanlianjie {public static void main(String[] args) {String a"我叫李狗蛋";S…

【名词解释】Unity中的Scrollbar组件及其使用示例

Unity是一个广泛使用的跨平台游戏开发引擎&#xff0c;它提供了许多内置的UI组件&#xff0c;其中就包括Scrollbar组件。下面是对Scrollbar组件的名词解释和使用方法的代码示例。 名词解释 Scrollbar组件是Unity UI系统中的一个UI控件&#xff0c;用于实现滚动功能。它通常由…

16.左侧导航菜单制作

左侧导航菜单制作 1. 修改路由&#xff0c;方便查看页面 index.ts import { RouteRecordRaw, createRouter, createWebHistory } from "vue-router"; import Layout from /layout/Index.vueconst routes: Array<RouteRecordRaw> [{path: /,name: home,comp…