语法分析出错,不是 GROUP BY 表达式

news2025/1/11 18:07:27

报错

### Cause: dm.jdbc.driver.DMException:9,69[30]附近出现错误: 
语法分析出错
; bad SQL grammar []; nested exception is dm.jdbc.driver.DMException:9,69[30]附近出现错误: 
语法分析出错
	at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.doTranslate(SQLStateSQLExceptionTranslator.java:101) ~[spring-jdbc-5.0.9.RELEASE.jar:5.0.9.RELEASE]
	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72) ~[spring-jdbc-5.0.9.RELEASE.jar:5.0.9.RELEASE]
	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81) ~[spring-jdbc-5.0.9.RELEASE.jar:5.0.9.RELEASE]
	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81) ~[spring-jdbc-5.0.9.RELEASE.jar:5.0.9.RELEASE]
	at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73) ~[mybatis-spring-1.3.2.jar:1.3.2]
	at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:446) ~[mybatis-spring-1.3.2.jar:1.3.2]
	at com.sun.proxy.$Proxy168.selectList(Unknown Source) ~[na:na]
	at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:230) ~[mybatis-spring-1.3.2.jar:1.3.2]
	at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:139) ~[mybatis-3.4.6.jar:3.4.6]
	at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:76) ~[mybatis-3.4.6.jar:3.4.6]
	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59) ~[mybatis-3.4.6.jar:3.4.6]
	at com.sun.proxy.$Proxy207.searchDimissionInfo(Unknown Source) ~[na:na]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_281]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_281]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_281]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_281]
	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343) ~[spring-aop-5.0.9.RELEASE.jar:5.0.9.RELEASE]
	at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:197) ~[spring-aop-5.0.9.RELEASE.jar:5.0.9.RELEASE]
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-5.0.9.RELEASE.jar:5.0.9.RELEASE]
	at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:139) ~[spring-tx-5.0.9.RELEASE.jar:5.0.9.RELEASE]
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185) ~[spring-aop-5.0.9.RELEASE.jar:5.0.9.RELEASE]
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212) ~[spring-aop-5.0.9.RELEASE.jar:5.0.9.RELEASE]
	at com.sun.proxy.$Proxy208.searchDimissionInfo(Unknown Source) ~[na:na]
	at com.chinaunicom.ihr.coreperson.service.PersonDimissionInfoService.sendQuestionnaire(PersonDimissionInfoService.java:82) ~[main/:na]
	at com.chinaunicom.ihr.coreperson.service.PersonDimissionInfoService$$FastClassBySpringCGLIB$$83f333ba.invoke(<generated>) ~[main/:na]
	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) ~[spring-core-5.0.9.RELEASE.jar:5.0.9.RELEASE]
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:746) ~[spring-aop-5.0.9.RELEASE.jar:5.0.9.RELEASE]
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-5.0.9.RELEASE.jar:5.0.9.RELEASE]
	at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:294) ~[spring-tx-5.0.9.RELEASE.jar:5.0.9.RELEASE]
	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98) ~[spring-tx-5.0.9.RELEASE.jar:5.0.9.RELEASE]
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185) ~[spring-aop-5.0.9.RELEASE.jar:5.0.9.RELEASE]
	at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688) ~[spring-aop-5.0.9.RELEASE.jar:5.0.9.RELEASE]
	at com.chinaunicom.ihr.coreperson.service.PersonDimissionInfoService$$EnhancerBySpringCGLIB$$d4991145.sendQuestionnaire(<generated>) ~[main/:na]
	at com.chinaunicom.ihr.coreperson.web.QuestionAnswerInfoController.sendQuestionnaire(QuestionAnswerInfoController.java:40) ~[main/:na]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_281]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_281]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_281]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_281]
	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209) ~[spring-web-5.0.9.RELEASE.jar:5.0.9.RELEASE]
	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136) ~[spring-web-5.0.9.RELEASE.jar:5.0.9.RELEASE]
	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102) ~[spring-webmvc-5.0.9.RELEASE.jar:5.0.9.RELEASE]
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:891) ~[spring-webmvc-5.0.9.RELEASE.jar:5.0.9.RELEASE]
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:797) ~[spring-webmvc-5.0.9.RELEASE.jar:5.0.9.RELEASE]
	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.0.9.RELEASE.jar:5.0.9.RELEASE]
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991) ~[spring-webmvc-5.0.9.RELEASE.jar:5.0.9.RELEASE]
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925) ~[spring-webmvc-5.0.9.RELEASE.jar:5.0.9.RELEASE]
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974) ~[spring-webmvc-5.0.9.RELEASE.jar:5.0.9.RELEASE]
	... 68 common frames omitted
Caused by: dm.jdbc.driver.DMException:9,69[30]附近出现错误: 
语法分析出错
	at dm.jdbc.driver.DBError.throwException(DBError.java:657) ~[DmJdbcDriver18.jar:- 8.1.1.126 - Production]
	at dm.jdbc.a.b.p.D(MSG.java:582) ~[DmJdbcDriver18.jar:- 8.1.1.126 - Production]
	at dm.jdbc.a.b.p.A(MSG.java:542) ~[DmJdbcDriver18.jar:- 8.1.1.126 - Production]
	at dm.jdbc.a.b.p.z(MSG.java:523) ~[DmJdbcDriver18.jar:- 8.1.1.126 - Production]
	at dm.jdbc.a.a.a(DBAccess.java:795) ~[DmJdbcDriver18.jar:- 8.1.1.126 - Production]
	at dm.jdbc.a.a.a(DBAccess.java:213) ~[DmJdbcDriver18.jar:- 8.1.1.126 - Production]
	at dm.jdbc.driver.DmdbPreparedStatement.prepareSql(DmdbPreparedStatement.java:199) ~[DmJdbcDriver18.jar:- 8.1.1.126 - Production]
	at dm.jdbc.driver.DmdbPreparedStatement.allocateHandle(DmdbPreparedStatement.java:168) ~[DmJdbcDriver18.jar:- 8.1.1.126 - Production]
	at dm.jdbc.driver.DmdbPreparedStatement.<init>(DmdbPreparedStatement.java:120) ~[DmJdbcDriver18.jar:- 8.1.1.126 - Production]
	at dm.jdbc.driver.DmdbPreparedStatement.<init>(DmdbPreparedStatement.java:135) ~[DmJdbcDriver18.jar:- 8.1.1.126 - Production]
	at dm.jdbc.driver.DmdbConnection.do_prepareStatement(DmdbConnection.java:696) ~[DmJdbcDriver18.jar:- 8.1.1.126 - Production]
	at dm.jdbc.driver.DmdbConnection.do_prepareStatement(DmdbConnection.java:682) ~[DmJdbcDriver18.jar:- 8.1.1.126 - Production]
	at dm.jdbc.driver.DmdbConnection.prepareStatement(DmdbConnection.java:1280) ~[DmJdbcDriver18.jar:- 8.1.1.126 - Production]
	at com.alibaba.druid.pool.DruidPooledConnection.prepareStatement(DruidPooledConnection.java:349) ~[druid-1.1.9.jar:1.1.9]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_281]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_281]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_281]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_281]
	at org.apache.ibatis.logging.jdbc.ConnectionLogger.invoke(ConnectionLogger.java:55) ~[mybatis-3.4.6.jar:3.4.6]
	at com.sun.proxy.$Proxy292.prepareStatement(Unknown Source) ~[na:na]
	at org.apache.ibatis.executor.statement.PreparedStatementHandler.instantiateStatement(PreparedStatementHandler.java:87) ~[mybatis-3.4.6.jar:3.4.6]
	at org.apache.ibatis.executor.statement.BaseStatementHandler.prepare(BaseStatementHandler.java:88) ~[mybatis-3.4.6.jar:3.4.6]
	at org.apache.ibatis.executor.statement.RoutingStatementHandler.prepare(RoutingStatementHandler.java:59) ~[mybatis-3.4.6.jar:3.4.6]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_281]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_281]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_281]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_281]
	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63) ~[mybatis-3.4.6.jar:3.4.6]
	at com.sun.proxy.$Proxy291.prepare(Unknown Source) ~[na:na]
	at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:85) ~[mybatis-3.4.6.jar:3.4.6]
	at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:62) ~[mybatis-3.4.6.jar:3.4.6]
	at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:326) ~[mybatis-3.4.6.jar:3.4.6]
	at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156) ~[mybatis-3.4.6.jar:3.4.6]
	at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109) ~[mybatis-3.4.6.jar:3.4.6]
	at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:83) ~[mybatis-3.4.6.jar:3.4.6]
	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:148) ~[mybatis-3.4.6.jar:3.4.6]
	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:141) ~[mybatis-3.4.6.jar:3.4.6]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_281]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_281]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_281]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_281]
	at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:433) ~[mybatis-spring-1.3.2.jar:1.3.2]
	... 109 common frames omitted

出现问题的sql

        SELECT t1.person_id AS personId,
        t1.employee_number AS employeeNumber,
        t1.chinese_name AS chineseName,
        t1.org_name AS orgName,
        t1.job_name AS jobName,
        t1.grade_name AS gradeName,
        t1.dimission_time AS dimissionTime,
        t1.issue_time AS issueTime from person_dimission_info t1 GROUP BY
        t1.person_id HAVING COUNT(1)=1 AND date_sub(now(), interval 30 day)>issue_time

问题处理

首先问题很明显,是因为date_sub函数导致的
修改完了之后还是不行

SELECT t1.person_id       AS personId,
       t1.employee_number AS employeeNumber,
       t1.chinese_name    AS chineseName,
       t1.org_name        AS orgName,
       t1.job_name        AS jobName,
       t1.grade_name      AS gradeName,
       t1.dimission_time  AS dimissionTime,
       t1.issue_time      AS issueTime
from PERSON2.person_dimission_info t1
GROUP BY t1.person_id
HAVING COUNT(1) = 1
   AND add_days(now(), -30) > issue_time

在这里插入图片描述
然后就很明显了,这里的group by 分组应该是使用的oracle中的类似的方式,只有出现在group by 的列才可以出现在select之后。然后决定开始写子循环。

SELECT t1.person_id       AS personId
from PERSON2.person_dimission_info t1
GROUP BY t1.person_id
HAVING COUNT(1) = 1 and add_days(now(), -30) > t1.issue_time

在这里插入图片描述
然后出现了新的问题,我还以为是因为dm数据库不认having后面参数累加来着,因为之前处理过类似的问题。

SELECT t1.person_id       AS personId
from PERSON2.person_dimission_info t1
GROUP BY t1.person_id
HAVING COUNT(1) = 1 and 1=1

在这里插入图片描述
发现,其实他认having后面跟and,只不过我写的这个时间函数不认而已。
那没有办法,不能放在having,就放在where呗,一样的

SELECT t1.person_id       AS personId
from PERSON2.person_dimission_info t1
where    add_days(now(), -30) > t1.issue_time
GROUP BY t1.person_id
HAVING COUNT(1) = 1

在这里插入图片描述
最后写好的子循环
在这里插入图片描述
实话说我也不知道为啥不能够写=,我就换成了in

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

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

相关文章

java入门程序-HelloWorld

1.java程序开发的三个步骤 1.开发java程序&#xff0c;需要三个步骤&#xff1a;编写代码&#xff0c;编译代码(javac)&#xff0c;运行代码(java) 注意事项&#xff1a; 1.第一个java程序建议使用记事本书写。 2.建议代码文件名全英文&#xff0c;首字母大写&#xff0c;满…

院内导航系统厂商分析

随着医疗技术的不断发展和医院规模的不断扩大&#xff0c;院内导航系统成为了现代化医院不可或缺的一部分。患者就医时&#xff0c;一个高效便捷的导航系统可以帮助他们快速找到目标科室&#xff0c;同时也能提高医院的整体运营效率。本文将推荐五家在院内导航市场具有竞争力的…

【算法|前缀和系列No.4】leetcode238. 除自身以外数组的乘积

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【leetcode】 &#x1f354;本专栏旨在提高自己算法能力的同时&#xff0c;记录一下自己的学习过程&#xff0c;希望…

EL表达式与JSTL

1.EL表达式 1.EL表达式概述 EL(Expression Language)&#xff1a;表达式语言 在 JSP 2.0 规范中加入的内容&#xff0c;也是 Servlet 规范的一部分 作用&#xff1a;在 JSP 页面中获取数据。让我们的 JSP 脱离 java 代码块和 JSP 表达式 语法&#xff1a;${ 表达式内容 } …

群晖NAS drive的远程访问和电脑硬盘的内网穿透挂载设置方法

文章目录 前言1.群晖Synology Drive套件的安装1.1 安装Synology Drive套件1.2 设置Synology Drive套件1.3 局域网内电脑测试和使用 2.使用cpolar远程访问内网Synology Drive2.1 Cpolar云端设置2.2 Cpolar本地设置2.3 测试和使用 3. 结语 前言 群晖作为专业的数据存储中心&…

【弃坑xdm】docker容器作为开发环境,更加灵活可靠

关于我准备转行深度学习~~ 弃坑xdm 弃坑xdm 弃坑xdm 转发给你的同学&#xff0c;吓他们一跳~~ ps:其实我准备使用docker容器作为开发环境&#xff0c;vscode可以直接连接docker容器&#xff0c;更加灵活可靠。

企业常用的项目管理工具推荐,了解有哪些选择

项目管理软件是一种帮助项目经理和团队有效地计划、组织和管理项目的工具。它为协作、通信和任务管理提供了一个集中的平台。市场上有各种各样的项目管理软件&#xff0c;每个都有其独特的特性和功能。企业常用的项目管理工具有哪些&#xff1f; 1.Zoho Projects Zoho Projec…

基于tornado BELLE 搭建本地的web 服务

我的github 将BELLE 封装成web 后端服务&#xff0c;采用tornado 框架 import timeimport torch import torch.nn as nnfrom gptq import * from modelutils import * from quant import *from transformers import AutoTokenizer import sys import json #import lightgbm a…

2023年中国城市矿产行业产值及发展趋势分析[图]

城市矿产是指工业化和城镇化过程中产生和蕴藏于废旧机电设备、电线电缆、通讯工具、汽车、家电、电子产品、金属和塑料包装物以及废料中&#xff0c;可循环利用的钢铁、有色金属、贵金属、塑料、橡胶等资源。 开展“城市矿产”示范基地建设是缓解资源瓶颈约束&#xff0c;减轻环…

BAT027:删除当前目录指定文件夹以外的文件夹

引言&#xff1a;编写批处理程序&#xff0c;实现删除当前目录指定文件夹以外的文件夹。 一、新建Windows批处理文件 参考博客&#xff1a; CSDNhttps://mp.csdn.net/mp_blog/creation/editor/132137544 二、写入批处理代码 1.右键新建的批处理文件&#xff0c;点击【编辑】…

A062-防火墙安全配置-配置Iptables防火墙策略

实验步骤: 【教学资源类别】 序号 类别 打勾√ 1 学习资源 √ 2 单兵模式赛题资源 3 分组对抗赛题资源 【教学资源名称】 防火墙安全配置-配置安全设置iptables防火墙策略 【教学资源分类】 一级大类 二级大类 打勾√ 1.安全标准 法律法规 行业标准 安全…

【css】背景换颜色

更换前 longin.html <!DOCTYPE html> <html lang"en" > <head><meta charset"UTF-8"><title>login</title><link href"/css/style.css" type"text/css" rel"stylesheet"><s…

AN动画基础——变换的文字动画

【AN动画基础——变换的文字动画】 文字变换动画 本篇内容&#xff1a;散件动画&#xff0c;形状提示 重点内容&#xff1a;形状提示 工 具&#xff1a;Adobe Animate 2022 文字变换动画 &#xff08;底下背景和前面文字一样动&#xff0c;转完GIF不知道为啥不动了&#xff0c…

node教程

文章目录 1.node入门 1.node入门 node是什么&#xff1f; node.js是一个开源的&#xff0c;跨平台的JS运行环境&#xff08;其实可以理解为是一款应用程序&#xff0c;是一款软件&#xff0c;可以运行JS&#xff09; node作用&#xff1a; 1.开发服务器应用

Wireshark新手小白基础使用方法

一、针对IP抓取 1、过滤格式&#xff1a; &#xff08;1&#xff09;、ip.src eq x.x.x.x &#xff08;2&#xff09;、ip.dst eq x.x.x.x &#xff08;3&#xff09;ip.src eq x.x.x.x or ip.dst eq x.x.x.x 二、针对端口过滤 1、过滤格式&#xff1a; &#xff08;1&a…

Linux下创建用户并禁止root登录

在Linux中&#xff0c;root几乎拥有所有的权限&#xff0c;一旦root用户密码外泄&#xff0c;对于服务器而言将是致命的威胁&#xff0c;禁止root用户通过ssh的方式远程登录&#xff0c;这样即使root用户密码外泄也能够保障服务器的安全。 1、创建用户&#xff1a; adduser ad…

网络安全分析——蠕虫病毒动态分析视图

蠕虫病毒&#xff08;Worm Virus&#xff09;是一种自我复制的恶意软件&#xff0c;通过网络或系统漏洞传播&#xff0c;感染其他计算机并利用其资源。与其他病毒不同&#xff0c;蠕虫病毒无需依赖于宿主文件&#xff0c;并可以自动在网络中传播&#xff0c;因此具有高度传染性…

嵌入式养成计划-42----QT 创建项目--窗口界面--常用类及组件

一百零五、如何创建 QT 项目 创建工程 New Project / 文件–>新建。。 /ctrl N 选择一个模板–>Application -->Qt Widgets Application 选择创建的路径&#xff0c;以及设置文件名 下一步 输入类名&#xff0c;选择基类为 QWidget 下一步 选择这个玩意&a…

1688店铺商品接口:快速获取海量优质商品,一键批发采购!

获得1688店铺的所有商品接口&#xff0c;可以参考以下步骤&#xff1a; 进入1688网站&#xff0c;注册并登陆账号。进入目标店铺的详情页面&#xff0c;点击“API接口”选项。选择“item_search_shop”接口&#xff0c;点击“调用接口”按钮。在弹出的窗口中&#xff0c;将需要…

IOS课程笔记[4-5] 计算器实现与更换主题 的使用

计算 控件介绍 文本输入 设置键盘格式为NumberPad字符串与数字转换方法 NSInteger num2 [str2 integerValue]; 弹窗控件 UIAlertController 新版本弹窗 UIAlertController *alert [UIAlertController alertControllerWithTitle:"error" message:"输入有…