分表后mybatis-plus删除操作失效等问题处理

news2024/11/27 16:24:31

因为重构dao层,问题太多了,于是想着另起一个章节。
3 mybatis封装对象的问题
直接使用mybatis自身的对象,会有问题,他的列表对象会设置一个id,导致后续的工程会出问题

 <select id="getStatementDefaultEquations" resultMap="defaultEquationsMap">
    select
    <include refid="com.whty.acc.setting.dao.AccStatementMapper.Base_Column_List_Udf"></include>,
    <include refid="com.whty.acc.setting.dao.AccStatementDefaultMapper.Base_Column_List_Udf"></include>
    from acc_statement accStatement
    left join acc_statement_default accStatementDefault
                 on accStatement.id = accStatementDefault.sheet_id
    where accStatement.accounting_standard = #{standard}
        and accStatement.type = #{type}
        order by accStatement.id, accStatementDefault.id
  </select>

  <resultMap id="defaultEquationsMap" type="com.whty.acc.setting.dto.dto.StatementDefaultEquationDto" extends="com.whty.acc.setting.dao.AccStatementMapper.BaseResultMapUdf">
    <collection property="accStatementDefaults" ofType="com.whty.acc.setting.pojo.AccStatementDefault" resultMap="com.whty.acc.setting.dao.AccStatementDefaultMapper.BaseResultMapUdf">
    </collection>
  </resultMap>

调整如下,按照mybatis的写法,对象才能封装正确

@Override
    public List<StatementDefaultEquationDto> getStatementDefaultEquations(String type, String standard) {
        MPJLambdaWrapper<AccStatement> mpjLambdaWrapper = new MPJLambdaWrapper<>();
        mpjLambdaWrapper.selectAll(AccStatement.class)
                .selectCollection(AccStatementDefault.class,StatementDefaultEquationDto::getAccStatementDefaults)
                .leftJoin(AccStatementDefault.class,AccStatementDefault::getSheetId,AccStatement::getId);
        mpjLambdaWrapper.eq(AccStatement::getAccountingStandard,standard);
        mpjLambdaWrapper.eq(AccStatement::getType,type);
        mpjLambdaWrapper.orderByAsc(AccStatement::getId);
        mpjLambdaWrapper.orderByAsc(AccStatementDefault::getId);
        return selectJoinList(StatementDefaultEquationDto.class,mpjLambdaWrapper);
    }

2 看似是空指针异常,实则与mybatis-plus写法有关系。

09:54:55.293 ERROR c.w.a.s.controller.AccBalanceSheetController - null
java.lang.NullPointerException: null
	at com.whty.acc.statement.service.ext.impl.AccBalanceSheetExtServiceImpl.genBalanceAndNoteBySimpleDto(AccBalanceSheetExtServiceImpl.java:1333)
	at com.whty.acc.statement.service.ext.impl.AccBalanceSheetExtServiceImpl.genSheetLineBalanceBySimpleDto(AccBalanceSheetExtServiceImpl.java:1257)
	at com.whty.acc.statement.service.ext.impl.AccBalanceSheetExtServiceImpl.assetsBySimpleDto(AccBalanceSheetExtServiceImpl.java:574)
	at com.whty.acc.statement.service.ext.impl.AccBalanceSheetExtServiceImpl.getDataBySimpleDto(AccBalanceSheetExtServiceImpl.java:392)
	at com.whty.acc.statement.service.ext.impl.AccBalanceSheetExtServiceImpl.getBalanceSheet(AccBalanceSheetExtServiceImpl.java:158)
	at com.whty.acc.statement.service.ext.impl.AccBalanceSheetExtServiceImpl$$FastClassBySpringCGLIB$$4edc7667.invoke(<generated>)
java.lang.NullPointerException: null
	at com.whty.acc.statement.service.ext.impl.AccCashFlowEquationServiceImpl.lambda$getEquationDtos$3(AccCashFlowEquationServiceImpl.java:170)
	at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:174)
	at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382)
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
	at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
	at com.whty.acc.statement.service.ext.impl.AccCashFlowEquationServiceImpl.getEquationDtos(AccCashFlowEquationServiceImpl.java:170)
	at com.whty.acc.statement.service.ext.impl.AccCashFlowEquationServiceImpl.getCashFlowByEquation(AccCashFlowEquationServiceImpl.java:87)
	at com.whty.acc.statement.service.ext.impl.AccCashFlowSheetExtServiceImpl.getCashFlowSheetDtos(AccCashFlowSheetExtServiceImpl.java:91)
	at com.whty.acc.statement.service.ext.impl.AccCashFlowSheetExtServiceImpl$$FastClassBySpringCGLIB$$3b4f4002.invoke(<generated>)

1 分表后没有生产导致sql异常
下面这个语句咋一看是没有任何问题的,但实际根本没有acc_voucher这张表,因为数据库做了分表。
所以问题在为什么mybatis-plus后,delete操作分表没有生效。
下面是正常情况,ShardingSphere-SQL会做一次翻译
1
但下面删除操作却没有,为什么呢?

### SQL: DELETE FROM    acc_voucher t           WHERE   (t.as_id = ? AND t.id = ?)
### Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 't 
 
   
 
 WHERE 
 (t.as_id = 92293 AND t.id = 2)' at line 2
; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 't 
 
   
 
 WHERE 
 (t.as_id = 92293 AND t.id = 2)' at line 2
	at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:239)
	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)
	at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)
	at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)
	at com.sun.proxy.$Proxy169.delete(Unknown Source)
	at org.mybatis.spring.SqlSessionTemplate.delete(SqlSessionTemplate.java:304)
	at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:69)
	at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)
	at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)
	at com.sun.proxy.$Proxy174.delete(Unknown Source)
	at com.baomidou.mybatisplus.extension.service.IService.remove(IService.java:149)
	at com.whty.acc.voucher.service.base.impl.AccVoucherServiceImpl.deleteByPrimaryKey(AccVoucherServiceImpl.java:89)
	at com.whty.acc.voucher.service.base.impl.AccVoucherServiceImpl$$FastClassBySpringCGLIB$$f3310a26.invoke(<generated>)
	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
	at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)
	at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)
	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
	at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)
	at com.whty.acc.voucher.service.base.impl.AccVoucherServiceImpl$$EnhancerBySpringCGLIB$$9a0ca76a.deleteByPrimaryKey(<generated>)
	at com.whty.acc.voucher.service.dubbo.consume.impl.AccVoucherDubboConsumeImpl.remove(AccVoucherDubboConsumeImpl.java:101)
	at com.whty.acc.voucher.service.dubbo.consume.impl.AccVoucherDubboConsumeImpl.removeByLock(AccVoucherDubboConsumeImpl.java:79)
	at com.whty.acc.voucher.service.dubbo.consume.impl.AccVoucherDubboConsumeImpl$$FastClassBySpringCGLIB$$e041f606.invoke(<generated>)
	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
	at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)
	at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)
	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
	at org.springframework.aop.aspectj.AspectJAfterAdvice.invoke(AspectJAfterAdvice.java:49)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
	at org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:58)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
	at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)
	at com.whty.acc.voucher.service.dubbo.consume.impl.AccVoucherDubboConsumeImpl$$EnhancerBySpringCGLIB$$c79c2987.removeByLock(<generated>)
	at com.whty.acc.voucher.controller.AccVoucherController.remove(AccVoucherController.java:583)
	at com.whty.acc.voucher.controller.AccVoucherController$$FastClassBySpringCGLIB$$271f1de3.invoke(<generated>)
	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
	at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
	at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:102)
	at com.whty.acc.setting.annotation.WebLogAspect.around(WebLogAspect.java:60)
	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.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)
	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)
	at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
	at org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:58)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
	at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)
	at com.whty.acc.voucher.controller.AccVoucherController$$EnhancerBySpringCGLIB$$ca9bb02d.remove(<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:205)
	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)
	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
	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:808)
	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1071)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:964)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
	at org.springframework.web.servlet.FrameworkServlet.doDelete(FrameworkServlet.java:931)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:671)
	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:750)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
	at com.whty.framework.web.filter.CorsFilter.doFilter(CorsFilter.java:41)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
	at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:177)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:891)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1784)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
	at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:748)

查看删除操作的代码

 @Transactional
    @Override
    public boolean deleteByPrimaryKey(Integer asId, Integer id) {
        MPJLambdaWrapper<AccVoucher> mpjLambdaWrapper = new MPJLambdaWrapper<>();
        mpjLambdaWrapper.eq(AccVoucher::getAsId,asId);
        mpjLambdaWrapper.eq(AccVoucher::getId,id);
        return remove(mpjLambdaWrapper);
    }

调整如下,问题就解决了,看来问题在MPJLambdaWrapper,对分表的删除操作有影响。

 @Transactional
    @Override
    public boolean deleteByPrimaryKey(Integer asId, Integer id) {
        LambdaQueryWrapper<AccVoucher> mpjLambdaWrapper = new LambdaQueryWrapper<>();
        mpjLambdaWrapper.eq(AccVoucher::getAsId,asId);
        mpjLambdaWrapper.eq(AccVoucher::getId,id);
        return remove(mpjLambdaWrapper);
    }

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

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

相关文章

基于SpringBoot+vue的银行OA系统设计与实现

博主介绍&#xff1a; 大家好&#xff0c;我是一名在Java圈混迹十余年的程序员&#xff0c;精通Java编程语言&#xff0c;同时也熟练掌握微信小程序、Python和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

使用Electron包装ruoyi-ui/ruoyi-vue实践总结

背景&#xff1a;最近公司新起的项目&#xff0c;由于工期、资源等原因&#xff0c;采用ruoyi框架快速实现开发&#xff0c;由于需要构建客户端&#xff0c;所以借助electron来实现。 electron 是使用javascript html css来构建跨平台的桌面应用程序。 官网地址&#xff1a;简介…

ModelWhale 基于 AI for Science 助力航遥中心基础设施建设

2023 年 3 月&#xff0c;科技部会同自然科学基金委启动“人工智能驱动的科学研究&#xff08;AI for Science&#xff09;”专项部署工作。科技部新一代人工智能发展研究中心主任赵志耘认为&#xff0c;AI for Science 将突破传统科学研究能力瓶颈&#xff0c;成为全球科研新范…

【2023-07-18】jsvmp逆向profileData

加密逻辑 注册gid需要用到profileData&#xff0c;profileData的加密逻辑是将一个46对键值对的json经过bas64编码后进行des加密&#xff0c;这46对键值对都是环境和设备相关的一些参数&#xff0c;要完整还原profileData还需要将这些参数的生成逻辑进行还原。 变量名说明key…

Python开发项目基于卷积神经网络的车牌识别仿真软件设计与实现

博主介绍&#xff1a;擅长Java、微信小程序、Python、Android等&#xff0c;专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&#x1f3fb; 不然下次找不到哟 Java项目精品实战案例…

ICASSP2023论文解读|如何检测会议记录中的待办事项?

得益于语音识别技术的发展&#xff0c;人工智能可以帮助人们记录会议&#xff0c;自动检测与会后行动项关联的会议内容&#xff0c;并进行总结。 行动项识别对于管理会后待办任务至关重要。 针对对于行动项识别任务&#xff0c;相关数据集稀缺且规模小。因此&#xff0c;达摩…

酷炫无敌!10分钟学会制作3D园区大屏,职场新人也能秒变大神!

近年来随着大数据的飞速发展&#xff0c;各大行业都进行了一定的产业革新&#xff0c;智慧园区也逐渐进入企业视野并成为主流&#xff0c;不论大小企业&#xff0c;领导老板都要求员工制作出智慧园区的酷炫大屏&#xff0c;不顾及其中的技术难度&#xff0c;只想看到最终成果&a…

2023隐私计算大会亮点前瞻:《隐私计算应用 面向政务场景的应用要求》标准解读预告

7月26日&#xff0c;2023隐私计算大会将于青岛正式扬帆&#xff0c;本次大会将齐聚业内专家大咖共论行业最新进展&#xff0c;洞察未来发展趋势&#xff0c;共同推进隐私计算行业蓬勃发展。 本次大会将正式公开发布《隐私计算应用研究报告&#xff08;2023&#xff09;》、“隐…

J2EEJSP自定义标签库01out标签if标签

目录 一.什么是标签 二.JSP自定义标签库 2.1 JSP标签库是什么 2.2 处理流程 2.3 如何自定义标签 2.4 标签类型 三.开发示例 3.1 out标签 1.创建助手类 2.编写tld&#xff08;标签库的描述&#xff09;文件&#xff0c;&#xff08;必须放在WEB-INF目录或其目录下&a…

LCD—STM32液晶显示(3.NOR FLASH时序结构体)

目录 LCD结构体配置 NOR FLASH时序结构体 FSMC的NOR FLASH初始化结构体 LCD结构体配置 NOR FLASH时序结构体 与控制SRAM时一样&#xff0c;控制FSMC使用NOR FLASH存储器时主要是配置时序寄存器以及控制寄存器&#xff0c;利用ST标准库的时序结构体以及初始化结构体可以很方便地…

第六章:string类

系列文章目录 文章目录 系列文章目录前言为什么学习string类C语言中的字符串ASCIIUnicode**UTF-8**UTF-16UTF-32 GBK 标准库中的string类string类总结 string类的常用接口说明1. string类对象的常见构造2. string类对象的容量操作3. string类对象的访问及遍历操作4. string类对…

亚马逊云科技十年出海经验,为中国企业提供跨越式发展

对于一座优秀的港口而言&#xff0c;不仅要求其所在的地理位置得天独厚以及拥有庞大的货运船舶吞吐量&#xff0c;能否为地区带来良好的发展生态&#xff0c;提供和创造新的就业机会也是重要的考量。对于很多中小企业而言&#xff0c;他们不具备大型企业的体量&#xff0c;在海…

vscode(Better Comments插件)在vue文件中不显示相对应的颜色

解决办法&#xff1a; 1、在.vscode文件下找到 aaron-bond.better-comments-3.0.2 &#xff08;我的路径&#xff1a;C:\Users\cown\.vscode\extensions\aaron-bond.better-comments-3.0.2&#xff09;&#xff0c;后面版本不唯一&#xff0c;根据自身情况辨别 2、进入文件路…

HTTPS概念wireshark分析

目录 密钥&加密算法CA & 数字证书https流程连接流程springboot项目启动httpswireshark分析https流程 密钥&加密算法 密钥&#xff1a;通常是一个字符串或数字&#xff0c;进行加密/解密算法时使用。公钥和私钥都是密钥&#xff0c;只不过一般公钥是对外开放的&…

如何在 Endless OS 上安装 ONLYOFFICE 桌面编辑器

ONLYOFFICE 桌面编辑器是一款基于依据 AGPL v.3 许可进行分发的开源办公套件。使用这款应用&#xff0c;您无需保持网络连接状态即可处理存储在计算机上的文档。本指南会向您介绍&#xff0c;如何在 Endless OS 上安装 ONLYOFFICE 桌面编辑器。 ONLYOFFICE 桌面版是什么 ONLYO…

Sencha ExtJS v1.0.4 扩展不能“转到定义“的解决办法

VSCode 的 Sencha 扩展自动更新到了 1.0.4&#xff0c;去除激活提示的方法和以前一样。 但是有扩展bug&#xff0c;就是无法转到定义&#xff0c;打开 VSCode 的开发者工具&#xff0c;由一堆报错。 解决办法&#xff1a;要修改下文件 C:\Users\xxx\.vscode\extensions\sench…

谷歌黑客语法与漏洞寻找

谷歌黑客语法与漏洞寻找 一、常见的搜索引擎二、Google部分语法三、通配符四、FOFA五、Shodan六、例子&#xff1a;常见的后台地址 一、常见的搜索引擎 浏览器 浏览器是用来检索、展示以及传递Web信息资源的应用程序。 搜索引擎 所谓搜索引擎&#xff0c;就是根据用户需求与一…

惊艳!AI创意字体真绝了;6道AIGC高频面试题与解答;为啥语音助手还没集成LLM;深度学习算法红宝书 | ShowMeAI日报

&#x1f440;日报&周刊合集 | &#x1f3a1;生产力工具与行业应用大全 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; &#x1f916; 惊艳&#xff01;手把手教你使用 Stable Diffusion 制作AI创意字体 最近AI创意字体刷爆了 ShowMeAI 社群&#xff01;伙伴们纷纷惊叹这…

OJ练习第139题——模拟行走机器人

模拟行走机器人 力扣链接&#xff1a;874. 模拟行走机器人 题目描述 机器人在一个无限大小的 XY 网格平面上行走&#xff0c;从点 (0, 0) 处开始出发&#xff0c;面向北方。该机器人可以接收以下三种类型的命令 commands &#xff1a; -2 &#xff1a;向左转 90 度 -1 &…

Pytorch:搭建卷积神经网络完成MNIST分类任务

2023.7.18 MNIST百科&#xff1a; MNIST数据集简介与使用_bwqiang的博客-CSDN博客 数据集官网&#xff1a;MNIST handwritten digit database, Yann LeCun, Corinna Cortes and Chris Burges MNIST数据集获取并转换成图片格式&#xff1a; 数据集将按以图片和文件夹名为标签的…