gpt4 book ai didi

java - 在 MyBatis 中返回一个列表

转载 作者:行者123 更新时间:2023-12-02 08:57:35 26 4
gpt4 key购买 nike

使用 MyBatis 我创建了映射器(Java 接口(interface) + XML):

JAVA接口(interface):

@Mapper
@Repository
@Primary
public interface DirezioneRegionaleMapper {
List<DirezioneRegionale> getAllDirRegs();
}

XML 映射器:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >

<mapper namespace="com.listgroup.piu.dao.DirezioneRegionaleMapper">
<resultMap id="DirezioneRegionaleList" type="com.listgroup.piu.implementation.DirezioneRegionale">
<id column="ORG_LIV4_UO" jdbcType="NUMERIC" property="ID" />
<result column="ORG_LIV4_DES" jdbcType="VARCHAR" property="description" />
</resultMap>

<select id="getAllDirRegs" resultMap="DirezioneRegionaleList">
SELECT DISTINCT t.ORG_LIV4_UO, t.ORG_LIV4_DES
FROM DMM_DIM_STRUTTURA_ORG_HIS_GEN t
</select>
</mapper>

服务等级:

@Service
@Transactional
public class DirezioneRegionaleService {

@Autowired
private DirezioneRegionaleMapper direzioneRegionaleMapper;

@Transactional(readOnly = true)
public List<DirezioneRegionale> getAllDirRegs() {
return this.direzioneRegionaleMapper.getAllDirRegs();
}
}

以及 DirezioneRegionale 类:

public class DirezioneRegionale {
private final int ID;
private final String description;
private List<DirezioneCommerciale> direzioniCommerciali;

public DirezioneRegionale(int ID, String description) {
this.ID = ID;
this.description = description;
this.direzioniCommerciali = null;
}

public void setDirezioniCommerciali(List<DirezioneCommerciale> direzioniCommerciali) {
this.direzioniCommerciali = direzioniCommerciali;
}

public int getID() {
return this.ID;
}

public String getDescription() {
return this.description;
}

public List<DirezioneCommerciale> getDirezioniCommerciali() {
return this.direzioniCommerciali;
}
}

我想做这样的事情:在我的 main 中,我想创建服务类的实例,然后调用方法“getAllDirRegs()”,并且我想获取一个列表,为此我有如您所见,在 XML 文件中创建了 resultMap,但有些东西不起作用,因为运行程序时,出现 NullPointerException。

这是我的主要内容:

public static void main(String[] args) {
SpringApplication.run(PiuApplication.class, args);

DirezioneRegionaleService service = new DirezioneRegionaleService();
List<DirezioneRegionale> dirRegs = service.getAllDirRegs();

System.out.println(dirRegs);
}

编辑:

这是我的堆栈跟踪:

java.lang.NullPointerException
at com.listgroup.piu.service.DirezioneRegionaleService.getAllDirRegs(DirezioneRegionaleService.java:20)
at com.listgroup.piu.PiuApplication.main(PiuApplication.java:28)

这是我的日志:

2020-02-25 21:08:27,687 INFO default [main] com.listgroup.piu.PiuApplication logStarting [StartupInfoLogger.java:48] Starting PiuApplication on IT586ADIMAGGI1L with PID 15572 (C:\Users\Antonino\Documents\isp.piuv2\target\classes started by Antonino in C:\Users\Antonino\Documents\isp.piuv2) 
2020-02-25 21:08:27,689 DEBUG default [main] com.listgroup.piu.PiuApplication logStarting [StartupInfoLogger.java:51] Running with Spring Boot v1.5.19.RELEASE, Spring v4.3.22.RELEASE
2020-02-25 21:08:27,689 INFO default [main] com.listgroup.piu.PiuApplication logStartupProfileInfo [SpringApplication.java:597] The following profiles are active: dblistto
2020-02-25 21:08:27,717 INFO default [main] org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext prepareRefresh [AbstractApplicationContext.java:583] Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@5c33f1a9: startup date [Tue Feb 25 21:08:27 CET 2020]; root of context hierarchy
2020-02-25 21:08:27,776 INFO default [background-preinit] org.hibernate.validator.internal.util.Version <clinit> [Version.java:30] HV000001: Hibernate Validator 5.3.6.Final
2020-02-25 21:08:28,421 INFO default [main] org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer initialize [TomcatEmbeddedServletContainer.java:92] Tomcat initialized with port(s): 8081 (http)
2020-02-25 21:08:28,428 INFO default [main] org.apache.coyote.http11.Http11NioProtocol log [DirectJDKLog.java:183] Initializing ProtocolHandler ["http-nio-8081"]
2020-02-25 21:08:28,431 INFO default [main] org.apache.catalina.core.StandardService log [DirectJDKLog.java:183] Starting service Tomcat
2020-02-25 21:08:28,431 INFO default [main] org.apache.catalina.core.StandardEngine log [DirectJDKLog.java:183] Starting Servlet Engine: Apache Tomcat/7.0.59
2020-02-25 21:08:28,519 INFO default [localhost-startStop-1] org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/] log [DirectJDKLog.java:183] Initializing Spring embedded WebApplicationContext
2020-02-25 21:08:28,519 INFO default [localhost-startStop-1] org.springframework.web.context.ContextLoader prepareEmbeddedWebApplicationContext [EmbeddedWebApplicationContext.java:287] Root WebApplicationContext: initialization completed in 802 ms
2020-02-25 21:08:28,625 INFO default [localhost-startStop-1] org.springframework.boot.web.servlet.ServletRegistrationBean onStartup [ServletRegistrationBean.java:191] Mapping servlet: 'dispatcherServlet' to [/]
2020-02-25 21:08:28,626 INFO default [localhost-startStop-1] org.springframework.boot.web.servlet.FilterRegistrationBean configure [AbstractFilterRegistrationBean.java:259] Mapping filter: 'metricsFilter' to: [/*]
2020-02-25 21:08:28,626 INFO default [localhost-startStop-1] org.springframework.boot.web.servlet.FilterRegistrationBean configure [AbstractFilterRegistrationBean.java:259] Mapping filter: 'characterEncodingFilter' to: [/*]
2020-02-25 21:08:28,626 INFO default [localhost-startStop-1] org.springframework.boot.web.servlet.FilterRegistrationBean configure [AbstractFilterRegistrationBean.java:259] Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
2020-02-25 21:08:28,626 INFO default [localhost-startStop-1] org.springframework.boot.web.servlet.FilterRegistrationBean configure [AbstractFilterRegistrationBean.java:259] Mapping filter: 'httpPutFormContentFilter' to: [/*]
2020-02-25 21:08:28,626 INFO default [localhost-startStop-1] org.springframework.boot.web.servlet.FilterRegistrationBean configure [AbstractFilterRegistrationBean.java:259] Mapping filter: 'requestContextFilter' to: [/*]
2020-02-25 21:08:28,626 INFO default [localhost-startStop-1] org.springframework.boot.web.servlet.FilterRegistrationBean configure [AbstractFilterRegistrationBean.java:259] Mapping filter: 'webRequestLoggingFilter' to: [/*]
2020-02-25 21:08:28,626 INFO default [localhost-startStop-1] org.springframework.boot.web.servlet.FilterRegistrationBean configure [AbstractFilterRegistrationBean.java:259] Mapping filter: 'requestLoggingFilter' to: [/*]
2020-02-25 21:08:28,626 INFO default [localhost-startStop-1] org.springframework.boot.web.servlet.FilterRegistrationBean configure [AbstractFilterRegistrationBean.java:259] Mapping filter: 'applicationContextIdFilter' to: [/*]
2020-02-25 21:08:28,634 DEBUG default [localhost-startStop-1] org.springframework.web.filter.CommonsRequestLoggingFilter init [GenericFilterBean.java:208] Initializing filter 'requestLoggingFilter'
2020-02-25 21:08:28,634 DEBUG default [localhost-startStop-1] org.springframework.web.filter.CommonsRequestLoggingFilter init [GenericFilterBean.java:239] Filter 'requestLoggingFilter' configured successfully
2020-02-25 21:08:28,997 INFO default [main] org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter initControllerAdviceCache [RequestMappingHandlerAdapter.java:556] Looking for @ControllerAdvice: org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@5c33f1a9: startup date [Tue Feb 25 21:08:27 CET 2020]; root of context hierarchy
2020-02-25 21:08:29,027 INFO default [main] org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping register [AbstractHandlerMethodMapping.java:544] Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity<java.util.Map<java.lang.String, java.lang.Object>> org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
2020-02-25 21:08:29,028 INFO default [main] org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping register [AbstractHandlerMethodMapping.java:544] Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
2020-02-25 21:08:29,044 INFO default [main] org.springframework.web.servlet.handler.SimpleUrlHandlerMapping registerHandler [AbstractUrlHandlerMapping.java:362] Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2020-02-25 21:08:29,044 INFO default [main] org.springframework.web.servlet.handler.SimpleUrlHandlerMapping registerHandler [AbstractUrlHandlerMapping.java:362] Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2020-02-25 21:08:29,062 INFO default [main] org.springframework.web.servlet.handler.SimpleUrlHandlerMapping registerHandler [AbstractUrlHandlerMapping.java:362] Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2020-02-25 21:08:29,206 INFO default [main] org.springframework.boot.actuate.endpoint.mvc.EndpointHandlerMapping register [AbstractHandlerMethodMapping.java:544] Mapped "{[/info || /info.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
2020-02-25 21:08:29,207 INFO default [main] org.springframework.boot.actuate.endpoint.mvc.EndpointHandlerMapping register [AbstractHandlerMethodMapping.java:544] Mapped "{[/metrics/{name:.*}],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.MetricsMvcEndpoint.value(java.lang.String)
2020-02-25 21:08:29,207 INFO default [main] org.springframework.boot.actuate.endpoint.mvc.EndpointHandlerMapping register [AbstractHandlerMethodMapping.java:544] Mapped "{[/metrics || /metrics.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
2020-02-25 21:08:29,208 INFO default [main] org.springframework.boot.actuate.endpoint.mvc.EndpointHandlerMapping register [AbstractHandlerMethodMapping.java:544] Mapped "{[/loggers/{name:.*}],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.LoggersMvcEndpoint.get(java.lang.String)
2020-02-25 21:08:29,208 INFO default [main] org.springframework.boot.actuate.endpoint.mvc.EndpointHandlerMapping register [AbstractHandlerMethodMapping.java:544] Mapped "{[/loggers/{name:.*}],methods=[POST],consumes=[application/vnd.spring-boot.actuator.v1+json || application/json],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.LoggersMvcEndpoint.set(java.lang.String,java.util.Map<java.lang.String, java.lang.String>)
2020-02-25 21:08:29,208 INFO default [main] org.springframework.boot.actuate.endpoint.mvc.EndpointHandlerMapping register [AbstractHandlerMethodMapping.java:544] Mapped "{[/loggers || /loggers.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
2020-02-25 21:08:29,209 INFO default [main] org.springframework.boot.actuate.endpoint.mvc.EndpointHandlerMapping register [AbstractHandlerMethodMapping.java:544] Mapped "{[/auditevents || /auditevents.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public org.springframework.http.ResponseEntity<?> org.springframework.boot.actuate.endpoint.mvc.AuditEventsMvcEndpoint.findByPrincipalAndAfterAndType(java.lang.String,java.util.Date,java.lang.String)
2020-02-25 21:08:29,209 INFO default [main] org.springframework.boot.actuate.endpoint.mvc.EndpointHandlerMapping register [AbstractHandlerMethodMapping.java:544] Mapped "{[/autoconfig || /autoconfig.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
2020-02-25 21:08:29,210 INFO default [main] org.springframework.boot.actuate.endpoint.mvc.EndpointHandlerMapping register [AbstractHandlerMethodMapping.java:544] Mapped "{[/configprops || /configprops.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
2020-02-25 21:08:29,210 INFO default [main] org.springframework.boot.actuate.endpoint.mvc.EndpointHandlerMapping register [AbstractHandlerMethodMapping.java:544] Mapped "{[/trace || /trace.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
2020-02-25 21:08:29,211 INFO default [main] org.springframework.boot.actuate.endpoint.mvc.EndpointHandlerMapping register [AbstractHandlerMethodMapping.java:544] Mapped "{[/dump || /dump.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
2020-02-25 21:08:29,211 INFO default [main] org.springframework.boot.actuate.endpoint.mvc.EndpointHandlerMapping register [AbstractHandlerMethodMapping.java:544] Mapped "{[/heapdump || /heapdump.json],methods=[GET],produces=[application/octet-stream]}" onto public void org.springframework.boot.actuate.endpoint.mvc.HeapdumpMvcEndpoint.invoke(boolean,javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse) throws java.io.IOException,javax.servlet.ServletException
2020-02-25 21:08:29,211 INFO default [main] org.springframework.boot.actuate.endpoint.mvc.EndpointHandlerMapping register [AbstractHandlerMethodMapping.java:544] Mapped "{[/beans || /beans.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
2020-02-25 21:08:29,212 INFO default [main] org.springframework.boot.actuate.endpoint.mvc.EndpointHandlerMapping register [AbstractHandlerMethodMapping.java:544] Mapped "{[/health || /health.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.HealthMvcEndpoint.invoke(javax.servlet.http.HttpServletRequest,java.security.Principal)
2020-02-25 21:08:29,212 INFO default [main] org.springframework.boot.actuate.endpoint.mvc.EndpointHandlerMapping register [AbstractHandlerMethodMapping.java:544] Mapped "{[/mappings || /mappings.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
2020-02-25 21:08:29,212 INFO default [main] org.springframework.boot.actuate.endpoint.mvc.EndpointHandlerMapping register [AbstractHandlerMethodMapping.java:544] Mapped "{[/env/{name:.*}],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EnvironmentMvcEndpoint.value(java.lang.String)
2020-02-25 21:08:29,212 INFO default [main] org.springframework.boot.actuate.endpoint.mvc.EndpointHandlerMapping register [AbstractHandlerMethodMapping.java:544] Mapped "{[/env || /env.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
2020-02-25 21:08:29,306 INFO default [main] org.springframework.jmx.export.annotation.AnnotationMBeanExporter afterSingletonsInstantiated [MBeanExporter.java:431] Registering beans for JMX exposure on startup
2020-02-25 21:08:29,309 INFO default [main] org.springframework.boot.actuate.endpoint.jmx.EndpointMBeanExporter afterSingletonsInstantiated [MBeanExporter.java:431] Registering beans for JMX exposure on startup
2020-02-25 21:08:29,311 INFO default [main] org.springframework.context.support.DefaultLifecycleProcessor start [DefaultLifecycleProcessor.java:345] Starting beans in phase 0
2020-02-25 21:08:29,312 INFO default [main] org.springframework.boot.actuate.endpoint.jmx.EndpointMBeanExporter registerBeanInstance [MBeanExporter.java:679] Located managed bean 'auditEventsEndpoint': registering with JMX server as MBean [org.springframework.boot:type=Endpoint,name=auditEventsEndpoint]
2020-02-25 21:08:29,319 INFO default [main] org.springframework.boot.actuate.endpoint.jmx.EndpointMBeanExporter registerBeanInstance [MBeanExporter.java:679] Located managed bean 'requestMappingEndpoint': registering with JMX server as MBean [org.springframework.boot:type=Endpoint,name=requestMappingEndpoint]
2020-02-25 21:08:29,324 INFO default [main] org.springframework.boot.actuate.endpoint.jmx.EndpointMBeanExporter registerBeanInstance [MBeanExporter.java:679] Located managed bean 'environmentEndpoint': registering with JMX server as MBean [org.springframework.boot:type=Endpoint,name=environmentEndpoint]
2020-02-25 21:08:29,326 INFO default [main] org.springframework.boot.actuate.endpoint.jmx.EndpointMBeanExporter registerBeanInstance [MBeanExporter.java:679] Located managed bean 'healthEndpoint': registering with JMX server as MBean [org.springframework.boot:type=Endpoint,name=healthEndpoint]
2020-02-25 21:08:29,327 INFO default [main] org.springframework.boot.actuate.endpoint.jmx.EndpointMBeanExporter registerBeanInstance [MBeanExporter.java:679] Located managed bean 'beansEndpoint': registering with JMX server as MBean [org.springframework.boot:type=Endpoint,name=beansEndpoint]
2020-02-25 21:08:29,329 INFO default [main] org.springframework.boot.actuate.endpoint.jmx.EndpointMBeanExporter registerBeanInstance [MBeanExporter.java:679] Located managed bean 'infoEndpoint': registering with JMX server as MBean [org.springframework.boot:type=Endpoint,name=infoEndpoint]
2020-02-25 21:08:29,330 INFO default [main] org.springframework.boot.actuate.endpoint.jmx.EndpointMBeanExporter registerBeanInstance [MBeanExporter.java:679] Located managed bean 'loggersEndpoint': registering with JMX server as MBean [org.springframework.boot:type=Endpoint,name=loggersEndpoint]
2020-02-25 21:08:29,333 INFO default [main] org.springframework.boot.actuate.endpoint.jmx.EndpointMBeanExporter registerBeanInstance [MBeanExporter.java:679] Located managed bean 'metricsEndpoint': registering with JMX server as MBean [org.springframework.boot:type=Endpoint,name=metricsEndpoint]
2020-02-25 21:08:29,334 INFO default [main] org.springframework.boot.actuate.endpoint.jmx.EndpointMBeanExporter registerBeanInstance [MBeanExporter.java:679] Located managed bean 'traceEndpoint': registering with JMX server as MBean [org.springframework.boot:type=Endpoint,name=traceEndpoint]
2020-02-25 21:08:29,336 INFO default [main] org.springframework.boot.actuate.endpoint.jmx.EndpointMBeanExporter registerBeanInstance [MBeanExporter.java:679] Located managed bean 'dumpEndpoint': registering with JMX server as MBean [org.springframework.boot:type=Endpoint,name=dumpEndpoint]
2020-02-25 21:08:29,337 INFO default [main] org.springframework.boot.actuate.endpoint.jmx.EndpointMBeanExporter registerBeanInstance [MBeanExporter.java:679] Located managed bean 'autoConfigurationReportEndpoint': registering with JMX server as MBean [org.springframework.boot:type=Endpoint,name=autoConfigurationReportEndpoint]
2020-02-25 21:08:29,338 INFO default [main] org.springframework.boot.actuate.endpoint.jmx.EndpointMBeanExporter registerBeanInstance [MBeanExporter.java:679] Located managed bean 'configurationPropertiesReportEndpoint': registering with JMX server as MBean [org.springframework.boot:type=Endpoint,name=configurationPropertiesReportEndpoint]
2020-02-25 21:08:29,346 INFO default [main] org.apache.coyote.http11.Http11NioProtocol log [DirectJDKLog.java:183] Starting ProtocolHandler ["http-nio-8081"]
2020-02-25 21:08:29,352 INFO default [main] org.apache.tomcat.util.net.NioSelectorPool log [DirectJDKLog.java:183] Using a shared selector for servlet write/read
2020-02-25 21:08:29,359 INFO default [main] org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer start [TomcatEmbeddedServletContainer.java:216] Tomcat started on port(s): 8081 (http)
2020-02-25 21:08:29,362 INFO default [main] com.listgroup.piu.PiuApplication logStarted [StartupInfoLogger.java:57] Started PiuApplication in 1.836 seconds (JVM running for 2.362)

最佳答案

Spring @Autowired 注释仅适用于 Spring 创建的对象。

不会初始化您使用new关键字创建的属性。

相反,如 this answer状态,您必须将代码移至另一个类。

@Component
public class CommandLineAppStartupRunner implements CommandLineRunner {
@Autowired private DirezioneRegionaleService service;
@Override public void run(String...args) throws Exception {
List<DirezioneRegionale> dirRegs = service.getAllDirRegs();
System.out.println(dirRegs);
}
}

此类将由 Spring 自动创建,因此会知道初始化的 Service。

run方法也会在Spring初始化完所有内容后自动执行。

关于java - 在 MyBatis 中返回一个列表<MyClass>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60400672/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com