org.springframework.dao.DataRetrievalFailureException数据检索失败的解决方法,亲测有效,已解决,嘿嘿嘿

正确解决org.springframework.dao.DataAccessException异常的有效解决方法 阅读详情


org.springframework.dao.DataRetrievalFailureException 是 Spring 框架中用于封装数据检索过程中发生的异常的一个类。这个异常通常表示在尝试从数据库或其他数据源检索数据时出现了问题,但问题不是由于数据不存在(这通常会触发 EmptyResultDataAccessException),而是由于其他原因,如查询错误、数据库连接问题、数据转换错误等。

问题分析

当遇到 DataRetrievalFailureException 时,首先要进行的是分析异常的原因。这个异常可能由以下原因引起:

  1. SQL 查询错误:执行的 SQL 查询语句可能包含语法错误,或者引用了不存在的表、列等。
  2. 数据库连接问题:应用程序可能无法与数据库建立连接,或者连接在执行查询时中断。
  3. 数据转换错误:从数据库检索到的数据类型可能与 Java 对象期望的类型不匹配,导致数据转换失败。
  4. 数据库约束冲突:例如,尝试插入违反唯一性约束的数据。
  5. 其他数据库错误:如数据库内部错误、锁定冲突等。

报错原因

报错的具体原因可能包括:

  • SQL 语句编写错误,如拼写错误、缺少逗号、括号不匹配等。
  • 数据库连接配置错误,如 URL、用户名、密码不正确。
  • 使用的 JDBC 驱动与数据库版本不兼容。
  • 尝试访问的数据库资源(如表、视图、存储过程)不存在或已被删除。
  • 应用程序代码中的逻辑错误,如错误地处理了查询结果。

解决思路

解决 DataRetrievalFailureException 的思路通常包括以下几个步骤:

  1. 查看异常堆栈跟踪:首先查看异常的堆栈跟踪信息,了解异常发生的具体位置和可能的原因。
  2. 检查 SQL 查询:验证 SQL 查询语句是否正确,并确保引用的表、列等存在且可访问。
  3. 检查数据库连接:确保数据库连接配置正确,并且应用程序能够成功连接到数据库。
  4. 检查数据转换:如果异常与数据转换有关,确保 Java 对象的数据类型与数据库中的数据类型匹配。
  5. 检查数据库日志:查看数据库服务器的日志文件,了解是否有与异常相关的错误信息。

解决方法

以下是几种可能的解决方法,并附带相应的代码示例:

1. 检查和修正 SQL 查询

确保 SQL 查询语句是正确的。例如,如果查询语句中有一个拼写错误,应该将其修正:

// 错误的 SQL 查询(假设有一个拼写错误)
String sql = "SELECT * FROM user WHERE username = ?"; // 注意 user 可能是 users

// 修正后的 SQL 查询
String sql = "SELECT * FROM users WHERE username = ?";

// 使用 PreparedStatement 执行查询...
2. 检查和更新数据库连接配置

下滑查看解决方法

确保数据库连接配置(如 URL、用户名、密码等)是正确的。如果需要,更新配置文件中的相关信息:

# application.properties 或 application.yml 中的配置
spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase
spring.datasource.username=myuser
spring.datasource.password=mypassword
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
3. 验证数据转换逻辑

如果异常与数据转换有关,确保 Java 对象与数据库中的数据类型匹配。例如,如果数据库中的某个字段是整数类型,但 Java 对象中对应的是字符串类型,那么需要进行适当的类型转换或更新 Java 对象的字段类型。

4. 查看和解析数据库日志

如果可能的话,查看数据库服务器的日志文件,了解是否有与异常相关的错误信息。根据日志中的信息,进一步诊断问题并进行修复。

请注意,由于具体的异常原因和上下文可能因项目而异,因此上述示例可能需要根据实际情况进行调整。此外,如果问题复杂且难以解决,可能需要更深入地调查代码和数据库配置,或寻求专业的技术支持。

正确解决org.springframework.dao.DataRetrievalFailureException数据检索失败异常的有效解决方法 阅读详情

相关推荐

gerrit 配置 ----Gitweb集成

此外,为了让用户能够查看任何关于 gitweb 的信息 项目中,用户必须能够阅读所有引用(包括 refs/meta/config,refs/meta/dashboards/*等)。或者,如果Gerrit通过反向代理送达,它可以 为gitweb的链接生成不同的URL(需要的) 在网页服务器上重写为)。Gerrit 代码审查可以管理和生成指向 gitweb 的超链接, 允许用户从Gerrit内容跳转到相同信息, 但由 gitweb 显示。默认为,这是 Linux 发行版上“gitweb”包的常见安装路径。

QuanQuanYuanXin的博客 1405

服务器管理器: 在可管理性-联机-数据检索失败。仪表板中角色和服务组,全部红色。

几天前升级 windows server 2008 R2 到 windows server 2012 R2, 在服务器管理器中收到报警:服务器管理器: 在可管理性-联机-数据检索失败。仪表板中角色和服务组,全部红色。 通过提示查看日志Microsoft-Windows-ServerManager-MgmtProvider/Operational. 日志消息:无法查询 bpa xpath (Micr...

Zola的博客 1万+

C#与工业设备的OPC DA/UA协议通信开发

摘要:本文介绍了C#与工业设备通信的两种OPC协议(OPC DA和OPC UA)的实现方法。OPC DA基于COM/DCOM技术,适用于Windows平台,提供实时数据采集功能;OPC UA则支持跨平台通信,具备更强的安全性和数据建模能力。文章详细展示了如何使用C#通过OPC DA和OPC UA协议读取、写入数据,并提供了代码示例,包括安装相关库、建立连接、订阅数据变化等关键步骤。这些方法为工业自动化中的设备监控与控制提供了实用解决方案。(149字)

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1259

已解决org.springframework.dao.DataAccessException异常的正确解决方法,亲测有效!!!

已解决org.springframework.dao.DataAccessException异常的正确解决方法,亲测有效!!!

小明的Java问道之路 5040

Jetson AGX Orin 新手避坑:解决‘找不到nvidia-jetpack包’的完整修复指南

本文详细介绍了Jetson AGX Orin设备在安装JetPack开发套件时遇到的'nvidia-jetpack包缺失'问题的完整解决方案。通过分析问题根源、提供分步修复指南以及系统优化建议,帮助开发者快速解决这一常见问题,充分发挥Jetson AGX Orin的边缘计算性能。

weixin_42520909的博客 460

【STM32实物】基于STM32设计的智能垃圾桶(语音、颜色识别、称重、光强、烟雾、人体识别、步进电机、水泵等)_资料编号25

基于STM32的语音识别垃圾桶系统以STM32F103C8T6为主控,采用18650可充放电锂电池组供电。硬件组成模块由5V步进电机马达与ULN2003驱动板、HX711压力传感器模块、DC5V水泵与MOSFET驱动板、0.96寸OLED显示屏、四个轻触按键、四个TCRT5000红外反射传感器、四个SG90舵机、SU-03T1语音模块、光敏电阻模块、MQ-2烟雾传感器模块、TCS34725颜色识别模块、蜂鸣器、LED灯构成。通过编写C语言软件程序,实现各硬件模块的协同工作。

嵌入式阿齐Archie 1万+

DataAccessResourceFailureException解决办法

org.springframework.dao.DataAccessResourceFailureException Last packet sent to the server was 1 ms ago. 这个错是在连接Mysql数据库的过程中出现的。看这个异常的名字是数据库连接方面报错了。 出现这个问题,首先一定要确定url、数据库用户名和密码是否配置正确,看看连接字串,端口

云想衣裳花想容 2万+

5、高级综合技术:从调度到优化的全面解析

本文深入解析了高级综合技术,涵盖从控制/数据流图构建、调度算法、分配绑定策略到编译器优化的全流程。通过案例分析和对比,探讨了不同优化策略对性能和资源利用的影响,并总结了关键要点及未来发展趋势,为高效利用FPGA实现数字设计提供了全面指导。

night的博客 118

已解决org.springframework.dao.DataRetrievalFailureException数据检索失败异常的正确解决方法,亲测有效!!!

已解决org.springframework.dao.DataRetrievalFailureException数据检索失败异常的正确解决方法,亲测有效!!!

小明的Java问道之路 3084

【CVPR2025 DEIM】超详细!手把手训练自己的数据集教学:从源码下载,配置虚拟环境,准备数据集、训练、验证、推理测试 ,实现0到1的完整教学过程。本文在win系统上训练,最强实时目标检测算法!

本文详细介绍了CVPR2025 DEIM目标检测模型的完整使用流程。内容包含:1)源码下载与虚拟环境配置;2)Visdrone2019数据集准备与配置文件修改;3)训练参数设置及Windows系统常见问题解决方案;4)模型验证、推理测试及热力图生成方法。特别针对Windows用户提供了虚拟环境配置指导,并详细说明了数据集路径设置、参数调整等关键步骤。通过本文的指导,小伙伴可以快速掌握DEIM模型的使用方法,用于学术论文研究和实验分析。

Ai缝合怪、助力小伙伴高效发论文 7647

关闭搜狗输入法右下角广告的解决方案

本文主要介绍了关闭搜狗输入法右下角广告的解决方案,希望能对使用搜狗输入法的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 1万+

org.springframework.dao.DataRetrievalFailureException数据检索失败异常的解决方案

org.springframework.dao.DataRetrievalFailureException 是 Spring 框架中用于表示数据检索失败时抛出的异常。这个异常通常发生在与数据库交互的过程中,当期望从数据库中检索数据但是未能成功时,比如查询返回了空结果集,或者查询结果中的某个字段不符合预期格式等,就会抛出这个异常。

2301_79779756的博客 618

LVGL core theme主题管理(lv_theme.c)

如果打开宏,主题的初始化是在显示设备注册时完成的。整个themes的实现放在目录下面。这里一共有三套主题(basic、default和mono)可供选择或者参考。源码中默认对接的是 default 主题,所以在中,看到的是调用default主题的接口。也就是说,如果需要更换主题,把这里面的接口换掉就可以了。或者要重新做一套主题,参考这些实现修改也就可以了。虽说有三套主题,但逻辑流程是一样的。主要完成两个工作:构造lv_theme_t结构体和初始化默认样多备用(style_init函数内实现)。构造。....

Bigan(安)的博客 3411

【Java】已解决:org.springframework.dao.DataRetrievalFailureException

场景:在一个Spring Boot项目中,开发者使用Spring Data JPA从数据库中检索用户数据。当数据库中没有找到指定的记录时,抛出了。为了解决该报错问题,我们可以改进异常处理逻辑,提供更详细的错误信息,并确保处理其他可能的异常情况。这个异常通常出现在数据检索失败时,表示在尝试从数据库获取数据的过程中发生了问题。通过上述代码,我们可以提供更详细的错误信息,并确保处理其他可能的异常情况。报错问题,确保数据检索逻辑的正确性和完整性。方法并传入一个不存在的用户ID时,会抛出。

屿小夏.的知识博客 1006

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Spring的DAO异常-你可能忽视的异常

Spring的DAO框架没有抛出与特定技术相关的异常,例如SQLException或HibernateException,抛出的异常都是与特定技术无关的org.springframework.dao.DataAccessException类的子类,避免系统与某种特殊的持久层实现耦合在一起。DataAccessException是RuntimeException,是一个无须检测的异常,不要求代码去处

wulei_longhe的专栏 3万+

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Spring中的Dao框架中的异常处理

引用 http://hi.baidu.com/%D3%F4%C3%C6%BB%A8%C9%FA%BD%B4/blog/item/11999a082b3aff286b60fb89.html Spring的DAO框架没有抛出与特定技术相关的异常,例如SQLException或HibernateException,抛出的异常都是与特定技术无关的org.springframework.dao.Data...

bruce_jiang1986的专栏 439

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

在VMware的Windows Server群集中安装Hyper-V角色后,出现刷新失败,导致联机 - 数据检索失败的解决方法

解决群集安装Hyper-V后,出现刷新失败的问题

yuyuyumh的博客 855

org.springframework.dao.TransientDataAccessResourceException: PreparedStatementCallback; SQL [select

org.springframework.dao.TransientDataAccessResourceException: PreparedStatementCallback; SQL [select * from test01 where id = ]; Parameter index out of range (1 > number of parameters, which is 0).; nested exception is java.sql.SQLException: Parameter i

m0_46212244的博客 3959

org.springframework.dao.EmptyResultDataAccessException

login.jsp提交登录name和pwd到user/login的controller访问dao层的selectByNameAndPwd方法查询结果为空,就在dao层抛了异常所以服务器就报了500。

csdnidofkdy2138的博客 825

项目访问报错: org.springframework.dao.DataAccessResourceFailureException: Connection reset

问题描述:         项目使用一段时间后,发现每次访问的时候,有时候会出现Connection reset这样的错误 问题原因:        当数据库连接池中的连接被创建而长时间不使用的情况下,该连接会自动回收并失效,但客户端并不知道,在进行数据库操作时仍然使用的是无效的数据库连接,这样,就导致客户端程序报“ java.sql.SQLException: Io 异常: Connect...

Loading... 1万+

项目启动报org.springframework.data.redis.core.RedisTemplate类找不到错误

项目启动报org.springframework.data.redis.core.RedisTemplate类找不到错误

qq_43698982的博客 2287

springboot整合Redis时,org.springframework.data.redis.RedisSystemException: Error in execution;

org.springframework.data.redis.RedisSystemException: Error in execution; nested exception is io.lettuce.core.RedisCommandExecutionException: WRONGTYPE Operation against a key holding the wrong kind of value

qq_17732903的博客 1万+

解决报错:org.springframework.data.redis.serializer.SerializationException: Could not write/read JSON

解决org.springframework.data.redis.serializer.SerializationException: Could not write/read JSON: Java 8 date/time type `java.time.LocalDateTime` not supported by default: add Module "com.fasterxml.jackson.datatype:jackson-datatype-jsr310" to enable handling

Coin_Collecter的博客 3750

异常处理 org.springframework.dao.DataIntegrityViolationException

问题描述: 数据仓库: Oracle 11g 后台报错:DataIntegrityViolationException 详细日志: Caused by: java.lang.ClassNotFoundException: org.springframework.dao.DataIntegrityViolationException at java.net.URLClassLoader$1.run(Unknown Source) at java.security.Acc...

Keep learing, and stay fast 1万+
上一篇: org.springframework.jdbc.InvalidResultSetAccessException无效的结果集访问错误的解决方法,已解决,嘿嘿,亲测有效
下一篇: org.springframework.web.multipart.MultipartException处理多部分请求错误的解决方法,亲测有效,已解决,嘿嘿嘿
代码无疆
博客等级 码龄3年 4万+粉丝 305原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值