hibernate通过query查询返回实体集合相关注意事项

数据库查询Query全解析:从SQL优化到执行计划与实战避坑指南 在数据库与数据分析领域,查询(Query)是数据交互的核心操作,它本质上是向数据系统发出的结构化指令,用于检索、操作或管理数据。其工作原理涉及语法解析、语义分析、查询优化与执行等多个阶段,其中查询优化器基于统计信息与索引选择成本最低的执行路径,直接影响查询性能。这项技术的核心价值在于高效、安全地实现数据价值提取,支撑从在线事务处理到复杂分析等多种应用场景。本文聚焦于SQL查询优化与执行计划分析,深入探讨如何通过索引策略、分页优化等手段提升查询效率,并涵盖参数化查询防注入等安全实践,帮助开发者应对高并发与大数 阅读详情

Output实体:

import javax.persistence.*;
import java.util.Date;

@Entity
@Table(name = "Output")
public class Output {
	@Id
	@Column(name = "BuildID")
	private Integer buildId;
	
	@Transient
	private String buildName;
	
	@Transient
	private Integer success;
	
	@Transient
	private Integer failure;
	
	@Transient
	private Integer total;
	
	@Column(name = "BuildNumber")
	private Integer buildNumber;
	
	@Column(name = "TaskID")
	private Integer taskId;
	
	@Column(name = "Output")
	private String output;
	
	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "LastUpdate")
	private Date lastUpdate;

	public Integer getBuildId() {
		return buildId;
	}

	public void setBuildId(Integer buildId) {
		this.buildId = buildId;
	}

	public String getBuildName() {
		return buildName;
	}

	public void setBuildName(String buildName) {
		this.buildName = buildName;
	}

	public Integer getBuildNumber() {
		return buildNumber;
	}

	public void setBuildNumber(Integer buildNumber) {
		this.buildNumber = buildNumber;
	}

	public Integer getTaskId() {
		return taskId;
	}

	public void setTaskId(Integer taskId) {
		this.taskId = taskId;
	}

	public String getOutput() {
		return output;
	}

	public void setOutput(String output) {
		this.output = output;
	}

	public Date getLastUpdate() {
		return lastUpdate;
	}

	public void setLastUpdate(Date lastUpdate) {
		this.lastUpdate = lastUpdate;
	}

	public Integer getSuccess() {
		return success;
	}

	public void setSuccess(Integer success) {
		this.success = success;
	}

	public Integer getFailure() {
		return failure;
	}

	public void setFailure(Integer failure) {
		this.failure = failure;
	}

	public Integer getTotal() {
		return total;
	}

	public void setTotal(Integer total) {
		this.total = total;
	}

    public Output(Integer buildId, Integer buildNumber, Integer taskId,String output, Date lastUpdate) {
        this.buildId = buildId;
        this.buildNumber = buildNumber;
        this.taskId = taskId;
        this.output = output;
        this.lastUpdate = lastUpdate;
    }
}

 

Repository:注意select的是类名而且传入的参数也是实体类中的变量

import com.accela.acdp.dao.OutputDao;
import com.accela.acdp.entity.Output;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import java.util.List;


/**
 * Created by jason.zhan on 8/12/2014.
 */
@Repository
public class OutputDaoImpl implements OutputDao {

    @Autowired
    private SessionFactory sessionFactory;

    @Override
    public List<Output> getOutputByBuildId(Integer buildDi) throws Exception{
        if (buildDi != null) {
            Session session = sessionFactory.getCurrentSession();
            if (session == null) {
                session = sessionFactory.openSession();
            }
            String hql = "SELECT new Output(a.buildId, a.buildNumber,a.taskId,a.output,a.lastUpdate) FROM Output as a WHERE a.buildNumber = (SELECT MAX (b.buildNumber) FROM Output as b) AND a.buildId = 2046";
            //String hql = "SELECT a.buildId, a.buildNumber,a.taskId,a.output,a.lastUpdate FROM Output as a WHERE a.buildNumber = (SELECT MAX (b.buildNumber) FROM Output as b) AND a.buildId = 2046";


            Query query = session.createQuery(hql);
            List<Output> outputs = query.list();
            return outputs;
        }
        return null;
    }
}


 

 


 

【G4基础03】2.3 How to Specify Materials in the Detector 定义探测器材料 阅读详情

相关推荐

基于STM32F407VET6的智能巡检小车灰度循迹系统优化设计

本文详细介绍了基于STM32F407VET6主控芯片的智能巡检小车灰度循迹系统优化设计。通过将传感器输出从数字量升级为模拟量以获取更丰富的路面信息,并采用PD控制算法结合速度管理策略,有效提升了小车在复杂弯道上的循迹稳定性与适应性。文章分享了硬件电路抗干扰设计、软件滤波及实战调优经验,为嵌入式开发者提供了从“能跑”到“跑得稳”的系统性解决方案。

weixin_28273593的博客 443

Hibernate查询指定字段并返回对象的结果集

hibernate查询指定的字段返回的是一个Object数组,如果查的是一个字段的话就返回Object对象,因为无法直接转换成实体类的对象,所以只能一个个去循环了,,现在有一种比较好的办法是在hql中使用select new 类名(属性1,属性2……) from 实体类,同时在实体类中添加带参的构造方法,参数的个数和顺序与(属性1,属性2……) 保持一致 下面看个示例代码: User对象 /...

龙胜LONGAIN 8579

SpringBoot 指标监控——Actuator

1、 访问:localhost:8000/actuator 设置健康监控显示具体情况 metrics http://localhost:8000/actuator/metrics/jvm.gc.live.data.size 定制化health信息 //利用构造器,在注册中心中添加cityService.saveCity.count指标 public CityServiceImpl(MeterRegistry meter...

weixin_44302046的博客 4630

hibernate sql查询返回对象list

public Pagination findPaginationObjBySql(final String sql, final int pageIndex, final int pageSize, final Class beanClass) { return (Pagination) hibernateTemplate.execute(new HibernateCallbac

三月神的专栏 3006

相机标定-机器视觉基础(理论推导、Halcon和OpenCV相机标定)

相机标定是获得目标工件精准坐标信息的基础。首先,必须进行相机内参标定,构建一个模型消除图像畸变;其次,需要对相机和机器人的映射关系进行手眼标定,构建一个模型将图像坐标系上的点映射到世界坐标系。主要分为背景知识、相机内外参模型推导、编程代码实现三个部分。

beyond951的博客 7302

避开这些坑!STM32H750 IAP升级实战:从Bootloader设计到APP接收的完整避坑指南

本文深入探讨STM32H750 IAP升级的完整避坑指南,从Bootloader设计到APP接收的全流程实践。特别针对QSPI Flash运行限制、SRAM跳转机制和固件校验等核心问题,提供工业级解决方案,帮助开发者提升升级成功率和系统稳定性。

weixin_30471561的博客 275

hibernate 执行原生sql 返回实体list对象

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33739627的博客 593

5分钟搞定单细胞marker基因气泡图:scDotPlot保姆级教程(含Seurat适配)

本文提供了一份详细的scDotPlot R包使用教程,帮助用户在5分钟内完成单细胞marker基因气泡图的绘制。教程涵盖环境准备、Seurat和SingleCellExperiment对象的适配处理、进阶可视化技巧及自动化报告生成,特别适合生物信息学新手和临床研究者快速掌握这一高效的可视化工具。

weixin_29047545的博客 261

Fenix — 比 MyBatis 更加强大的 Spring Data JPA 扩展库

MyBatis和FenixMyBatis只能写原生SQL,无法享受跨数据库时的兼容性;由于Fenix是基于SpringDataJPA的扩展,即可以写JPQL语句,也可以写原生SQL语句,上述示例中写的是JPQL语句,SQL的字段表达上更简洁。MyBatis书写动态SQL依赖只能if/else、foreach等分支循环操作,灵活性高,但是代码量和重复性较高;而Fenix也有if/else、foreach等分支循环操作,但内置了大量的更加简单、强大和语义化的XMLSQL标签。...

学亮编程手记 1516

[最新]MapReduce综合应用案例 — 气象数据清洗

【代码】[最新]MapReduce综合应用案例 — 气象数据清洗。

M_inherit的博客 1017

基于YOLOv8的野生菌菇检测、识别与分类系统

YOLOv8是YOLO系列模型的最新版本,继承了YOLO系列高效、精确的特点。YOLOv8采用了新的网络架构,并优化了推理速度和检测精度。与传统的目标检测算法(如Faster R-CNN)不同,YOLO模型通过一次前向传播同时完成目标定位与分类,因而具有非常高的计算效率。

YOLO 1284

浅谈Fenix API的原理和使用

一、简介 Fenix 简称菲尼克斯是一个为了解决复杂动态 SQL (JPQL) 而生的 Spring Data JPA 扩展库,目的是辅助开发者更方便快捷的书写复杂、动态且易于维护的 SQL,支持 XML、Java 链式 API 和动态条件注解等四种方式来书写动态 SQL。 Fenix的选择是在原有的Spring Data JPA库上做了增强,提供了各种高效率的API方法和Java ApI等方式的链式操作;之前基于Mybatis中的运用,需要在xml中编写JPQL语言,而为了简便开发,Fenix在xml中引

weixin_43322048的博客 2091

一篇文章带你快速入门 MATLAB

文章目录一、认识 MATLAB 界面二、MATLAB 的运行方式三、Matlab 中的窗口1. 命令窗口2. MATLAB的程序编辑窗口3. 工作空间窗口4. 命令历史窗口5. 图形窗口6. 当前目录窗口四、MATLAB的帮助系统1. 帮助命令2. 联机帮助五、其他知识补充1. MATLAB的搜索路径2. 变量命名规则3. M文件命名规则 一、认识 MATLAB 界面 在 MATLAB Desktop 中,工具条取代了菜单和工具栏。应用程序库收纳了 MATLAB 产品系列的应用程序,单一文件应用程序打包为一

南淮北安的博客 5128

java query接口,hibernate--query接口初步

Query session.createQuery(String hql)方法;* hibernate的session.createQuery()方法是使用HQL(hibernate的查询语句)语句查询对象的。* hql:是查询对象的,例如:"from User",其中from不区分大小写,而User是区分大小写,因为它是对象。是User类* 返回Query对象。* 执行这条语句后,Hiberna...

weixin_39937635的博客 243

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

深度学习工具包 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")

Hibernate常用API

Hibernate常用API Hibernate的核心类和接口一共有6个,分别为:Session、SessionFactory、Transaction、Query、Criteria和Configuration 1. Configuration Configuration config=new Configuration(); // 主要加载的是src目录下的hibernate.proper...

Ella7的博客 542

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

hibernate 常用方法

hibernate 常用方法 一、hibetnateTemplate常用方法 1、delete(Object entity) 删除指定的持久化实例 在程序中一般先用 Assert.notNull和 Assert.isTrue断言entity是否为空 和 entity的id是否大于0若 否则事务回滚。再用get(Class entityClass,Serializable id,Lo

liuwh268的专栏 550

Hibernate常用API介绍

1.1。 ç onfiguration它主要是用于加载休眠配置。Configuration config = new Configuration().config(); 主要加载SRC下的hibernate.cfg.xml中Configuration config = new Configuration();主要加载的src下的hibernate.propertiesConfiguration c...

qq_40208605的博客 1803

Hibernate的数据加载

1. Session.get/load 区别: 1.1 如果未能发现符合条件的记录,get方法返回null,而load方法会抛出一个ObjectNotFoundException。 1.2 Load方法可返回实体的代理类实例,而get方法永远直接返回实体类。 1.3 load方法可以充分利用内部缓存和二级缓存中的现在数据,而get方法则仅仅在内部缓存中进行数据查找,如没有发现对

shen516的专栏 775

hibernate createSQLQuery 等

-

疯狂程序员 5554

Hibernate的核心接口

在中,有六个常用的核心接口,它们分别是 Configuration、SessionFactory、Session、Transaction、Query 和 Criteria。在接下来的几个小节中,将对这六个核心接口进行详细讲解。

unber的博客 207

hibernate 中createQuery与createSQLQuery

org.apache.catalina.core.ApplicationContext log 信息: java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to com.miracle.dm.doc.catalog.model.DocCatalogInfo 原来的查询语句: String sql = "select

Richard.Dai的专栏 1003

hibernate进阶-- HQL基础

HQL(hibernate query language)hibernate查询语言,是在hibernate框架中使用的查询语言,与数据库查询语言SQL不同之处 在于HQL是面向对象的语言,查询的是数据库中表所对应的实体对象及对象的属性。HQL语句由以下几种子句组成:select。。+from。。+where。。+group by。。+having。。+order。。其中最简单的HQL语句可以

weiguang111的博客 962

HQL语句相关

HQL语句相关的点滴知识 1,HQL是在 hibernate 中使用的数据库查询语言,类似SQL SERVER中的SQL语言, 2,HQL区分大小写; 3,HQL中所有的都是用对象来操作,没有用表名,如HQL中输入的 from 实体名, 4, HQL语句,“from 实体名” 对应SQL中的 “select * from 表名” 5,HQL语句,“from 实体名 别名

shenzhenNBA的专栏 2597

传智播客-hibernate(1)-hibernate入门

hibernate(v3.3.1)是早一阵子学的,历史比较久远了,所以这篇文只能说是我笔记(还好本人是笔记狂,好记性不如烂笔头)上hibernate的知识要点和徐培成老师讲课中提到的一些实际应用中的小技巧和注意事项的摘取和整理(美其名曰“总结”)。 开卷语:1、学习一个框架,看源码不如看doc文档,源码只是实现,doc是思想(ms很多人说过,学习一个框架重在学习它的思想,就是这个“思想”二

那一抹云 1046

Hibernate高级模块解析

(奥斯科技首发)本地SQL查询--->>: 高级模块解析" alt="Hibernate 高级模块解析" src="http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif" type="face">高级模块解析" alt="Hibernate 高级模块解析" src="http://simg.sinajs.cn/blog7style

Osheep-昔日暖阳 844

hibernate主要接口和类(笔记)

hibernate的核心类和接口 Configuration 类 它的用处是: 1.      读取hibernate.cfg.xml 2.      管理对象关系映射文件 3.      加载hibernate 的驱动,url ,用户.. 4.      管理hibernate配置信息 SessionFactory 接口(会话工厂) 1.      可以缓存sql语

673
上一篇: JS验证通过之后才提交表单
下一篇: JSP页面取得List的size
ithouse
博客等级 码龄12年 200粉丝 212原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ithouse

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值