mysql做简单用户登陆的几种方式

Python实战:用Py2neo轻松玩转Neo4j图数据库(附完整CRUD示例) 本文通过构建武侠知识图谱的实战案例,详细介绍了如何使用Python的Py2neo库对Neo4j图数据库进行CRUD操作。内容涵盖环境搭建、节点与关系创建、Cypher查询、数据更新删除及事务管理,帮助开发者直观高效地处理复杂关联数据,实现从入门到进阶的完整交互流程。 阅读详情

之前回答一个技术问题的时候,没看清楚人家写的sql回答错误了。真心不好意思。这里就简单提一下java做用户登陆时,简单的用户验证的几种办法。

先用段代码举个例子

try {
        conn = DriverManager.getConnection("jdbc:sqlserver://localHost:1433;databaseName=MySchool","sa","sqlpass");
        String id = "zl";
        String pwd = "1234";
        String sql = "select Count(*) as login from Admin where LoginId = ? and LoginPwd = ?";
        ps = conn.prepareStatement(sql);
        ps.setString(1, id);
        ps.setString(2, pwd);

        int r = ps.executeQuery().getInt(1);           //这里报不能从结果集转换为int
        System.out.println(r == 1 ? "登录成功!" : "登录失败!");
    } catch (SQLException e) {
        e.printStackTrace();
    }finally{
        if(ps != null){
            ps.close();
        }
        if(conn != null){
            conn.close();
        }
    }
}

如上,我们从用户数据表中可以直接查询满足条件的用户id和用户密码。一般来说,用户id是唯一的,因此返回的数据要么是1要么是0

所以第一种就可以用sql统计用户数如:

select Count(*) as login from Admin where LoginId = ? and LoginPwd = ?
这种就直接比较返回结果就行了

第二种就是把所有的用户查回来,相比第一种各有各的优势。第二种可以获得其他用户信息,第一种的数据量很小。

select * from Admin where LoginId = ? and LoginPwd = ?
然后在结果集里面判断是否存在即:

if(rs.next()){
	System.out.println("登陆成功");
}else{
	System.out.println("登陆失败");
}
这样也可以来做用户判断,其实实际原理是一样的。

高空抛物监控系统:基于YOLOv8的轨迹追踪与可视化系统 本文详细介绍了一种基于YOLOv8深度学习模型的高空抛物监控系统,该系统能够实时检测并追踪高层建筑抛掷物的运动轨迹。文章包含完整的系统设计思路、算法实现细节、数据集构建方法以及基于PyQt5的可视化界面开发过程。我们提供了完整的Python实现代码,并讨论了系统的性能优化策略和实际部署考量。此外,我们还推荐了几个公开可用的高空抛物数据集,并详细分析了系统的应用前景和技术挑战。 阅读详情

相关推荐

SAP交货单增强字段更新实战:手把手教你用BAPI_OUTB_DELIVERY_CHANGE和EXTENSION2参数

本文详细解析了如何使用BAPI_OUTB_DELIVERY_CHANGE和EXTENSION2参数实现SAP交货单增强字段的更新。从增强点SMOD_V50B0001的定位到字段落表的全流程,提供了ABAP代码示例和常见问题排查方法,帮助开发者高效完成交货单自定义字段的集成开发。

weixin_42525637的博客 452

用mysql实现登录页面登陆

要实现登录页面的登录功能,需要将用户的登录信息(例如用户名和密码)与数据库中的信息进行比对。具体实现步骤如下: 在数据库中创建一个用户表,并存储用户的登录信息(例如用户名和密码)。 使用编程语言(例如PHP)实现登录页面。 在登录页面上输入用户名和密码,并使用编程语言与数据库进行连接。 使用SQL语句查询数据库,并与用户输入的登录信息进行比对。 如果比对成功,则登录成功;如果比对失败,则...

weixin_42599908的博客 612

Transformer在CV里太耗算力?手把手拆解Restormer的MDTA与GDFN模块

本文深度解析了CVPR2022最佳论文提名作品Restormer的创新模块MDTA与GDFN,有效解决了Transformer在计算机视觉领域的高计算复杂度问题。通过通道注意力降维和门控前馈网络设计,Restormer在图像恢复重建任务中显著降低计算量,同时保持高性能,为实时图像处理提供了可行方案。

weixin_30258901的博客 445

mysql审计(Mysql怎么记录用户的登录时间和登录ip等信息)

数据库审计(简称DBAudit)能够实时记录网络上的数据库活动,对数据库操作进行细粒度审计的合规性管理,对数据库遭受到的风险行为进行告警,对攻击行为进行阻断。它通过对用户访问数据库行为的记录、分析和汇报,用来帮助用户事后生成合规报告、事故追根溯源,同时加强内外部数据库网络行为记录,提高数据资产安全。数据库审计可以记录某用户在某个时间点对数据库的操作,包括登录、连接、对表的增删改查等等,便于责任追溯,问题查找,当然开启审计功能在一定方面会影响数据库性能。192.168.200.57 远程测试。

2201_76119904的博客 1954

EDKII实战:手把手调试PciHostBridge.c,看UEFI如何分配你的PCIe设备资源(IO/Memory空间)

本文深入解析EDKII中PciHostBridge.c模块的工作原理,详细指导如何调试PCIe设备资源分配(IO/Memory空间)。通过实战案例展示UEFI环境下Root Bridge初始化、地址空间转换及协议安装等核心流程,提供常见问题排查方法与性能优化建议,帮助开发者解决PCIe设备兼容性问题。

weixin_29201933的博客 208

新手工程师必看:搞定EMI传导干扰,从理解差模和共模开始(附实战案例)

本文深入解析EMI传导干扰中的差模与共模问题,为新手工程师提供从诊断到治理的完整方法论。通过实战案例展示如何通过频谱分析、近场探头扫描等技术精准定位干扰源,并分享PCB布局、滤波器设计等系统级解决方案,帮助工程师高效解决传导干扰问题,提升EMC设计能力。

weixin_26757925的博客 470

mysql5.7审计功能开启_mysql利用init-connect增加访问审计功能的实现

mysql的连接首先都是要通过init-connect初始化,然后连接到实例。我们利用这一点,通过在init-connect的时候记录下用户的thread_id,用户名和用户地址实现db的访问审计功能。实现步骤1、创建审计用的库表。为了不与业务的库冲突,单独创建自己的库:#建库表代码create database db_monitor ;use db_monitor ;CREATE TABLE a...

weixin_30608641的博客 562

如何通过插值法计算cell delay?

插值法的公式:Z = A + B * X + C * Y + D * X * Y,其中X为input transition,Y为output load,A、B、C、D为四个参数,Z为delay值。从而得到Z=-0.086176 + 11.5493 * x + 0.65917 * y - 24.859 * x * y,当X=0.014930、Y=0.296311时,得到Z=0.1716ns。从而得到A = 0.08075,B = 3.47539,C = 0.04008,D = 0.01648。

芯冰乐 1076

mysql安全审计_等保测评2.0:MySQL安全审计

原标题:等保测评2.0:MySQL安全审计一、说明本篇文章主要说一说MySQL数据库安全审计控制点的相关内容和理解。MySQL除了自身带有的审计功能外,还存在着一些其它的审计插件。虽然遇到这些插件的概率不高,我还是把这些插件的基本参数都列出来,到时候如果真遇到了,也不至于一头雾水。二、测评项a)应启用安全审计功能,审计覆盖到每个用户,对重要的用户行为和重要安全事件进行审计;b)审计记录应包括事件的...

weixin_35330534的博客 998

npm install 时出现npm error code ENOTFOUND和npm error network request to https://registry.npmjs.org的解决方案

本文主要介绍了npm install 时出现npm error code ENOTFOUND和npm error network request to https://registry.npmjs.org 的解决方案,希望能对使用npm的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 6万+

手把手教你学Simulink——基于新型电力电子拓扑与宽禁带器件的电网系统场景实例:GaN HEMT器件在高频逆变器中的开关特性建模

本文介绍了基于Simulink和Simscape Electrical的GaN HEMT高频逆变器建模方法。通过构建半桥拓扑电路,详细说明了GaN器件参数设置(以EPC2045为例)、专用驱动电路设计(含负压关断和米勒钳位)以及开关瞬态过程仿真(配置1ns步长捕捉MHz级特性)。重点分析了开关损耗计算和寄生导通风险,并对比了GaN与Si MOSFET的性能差异。案例展示了如何优化驱动参数和PCB布局,验证了GaN器件在1MHz高频应用中的优势(开关损耗仅5μJ)。最后总结了GaN在数据中心电源、无线充电等领

MHD0815的博客 403

MYSQL练习---每个人最近的登录日期

查询每个日期登录新用户个数,并且查询结果按照日期升序排序。

qq_42981010的博客 625

【100%通过率】华为OD机试真题 Python 实现【投篮大赛】【2022.11 Q4 新题】

你现在是一场采用特殊赛制投篮大赛的记录员。这场比赛由若干回合组成,过去几回合的得分可能会影响以后几回合的得分。比赛开始时,记录是空白的。你会得到一个记录操作的字符串列表 ops,其中ops[i]是你需要记录的第i项操作,ops遵循下述规则: 整数x-表示本回合新获得分数x “+” – 表示本回合新获得的得分是前两次得分的总和。 “D” – 表示本回合新获得的得分是前一次得分的两倍。 “C” – 表示本回合没有分数,并且前一次得分无效,将其从记录中移除。 请你返回记录中所有得分的总和。

MISAYAONE的博客 1万+

mysql用户分几种_MySQL的几种登陆方式

MySQL的几种登陆方式登录方式一:[root@001 tmp]#mysql -h 127.0.0.1 -u root -p这是最标准的登录方式,意指通过tTCP/IP协议进行连接,因为我是本地安装,所以-h的参数是127.0.0.1,也可以写成localhost接着-u的参数是root,也就是说我以root用户登录最后-p代表密码,如果你按下回车则会在下一行显示Enter password:...

weixin_33040687的博客 345

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

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

MySQL 免密登录的几种配置方式

MySQL 免密登录在特定场景下可以极大提高操作效率,减少繁琐的登录操作。对于本地调试或短期维护任务,可以使用操作系统用户免密登录,但应注意安全风险。对于生产环境中的自动化任务,使用配置免密文件是一个安全且方便的选择。如果是多人管理的环境,可以通过 MySQL 用户授权方式为特定用户配置免密登录,同时保留其他用户的密码保护。最终,合理的使用免密登录技术,不仅能提高工作效率,还能确保系统的安全性和稳定性。

XMYX-0 9540

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

mysql有几种登录方式_MySQL的几种登陆方式

MySQL的几种登陆方式登录方式一:[root@001 tmp]#mysql -h 127.0.0.1 -u root -p这是最标准的登录方式,意指通过tTCP/IP协议进行连接,因为我是本地安装,所以-h的参数是127.0.0.1,也可以写成localhost接着-u的参数是root,也就是说我以root用户登录最后-p代表密码,如果你按下回车则会在下一行显示Enter password:...

weixin_34533343的博客 2646

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

MySQL的几种登陆方式

MySQL的几种登陆方式 登录方式一:   [root@001 tmp]#mysql -h 127.0.0.1 -u root -p   这是最标准的登录方式,意指通过tTCP/IP协议进行连接,因为我是本地安装,所以-h的参数是127.0.0.1,也可以写成localhost   接着-u的参数是root,也就是说我以root用户登录   最后-p代表密码,如果你按下回车则会...

weixin_30521649的博客 222

【MySQL】免密登录的几种配置方式

MySQL免密登录在特定场景下可以极大提高操作效率,减少繁琐的登录操作。在选择合适的免密登录方式时,应根据实际需求和安全性考虑:对于本地调试或短期维护任务,可以使用操作系统用户免密登录,但应注意安全风险。对于生产环境中的自动化任务,使用配置免密文件是一个安全且方便的选择。如果是多人管理的环境,可以通过 MySQL 用户授权方式为特定用户配置免密登录,同时保留其他用户的密码保护。最终,合理的使用免密登录技术,不仅能提高工作效率,还能确保系统的安全性和稳定性。

qq_43331089的博客 282

用户登陆界面

用户登陆界面,以上代码使用data_jpa实现了一个最基础的用户登陆

RRLOVEXX20210818的博客 1407

mysql远程无法登陆_无法远程登陆MySQL数据库几种解决办法

无法远程登入MySQL数据库的解决办法一:尝试用MySQL Adminstrator GUI Tool登入MySQL Server,Server却回复错误讯息:Host ’60-248-32-13.HINET-IP.hinet.net’ is not allowed to connect to this MySQL server这个是因为权限的问题,处理方式如下:shell>mysql –u...

weixin_42127020的博客 1192

mysql的登陆和退出(1)

登陆mysql数据库 mysql -u 用户名 -p 密码,例如: mysql -u root -p root 还可以制定端口号登陆,mysql的默认端口号是3306, mysql -u root -p -P 3306 即可,注意指定端口的字母P为大写, 而标识密码的p为小写。 指定IP地址和端口号登录MySQL数据库 命令格式为:mysql -h ip -u root ...

cppNoException的博客 4万+

服务器修改密码方式,MySQL修改密码的几种方式

前言:在日常使用数据库的过程中,难免会遇到需要修改账号密码的情景,比如密码太简单需要修改、密码过期需要修改、忘记密码需要修改等。本篇文章将会介绍需要修改密码的场景及修改密码的几种方式。1.忘记 root 密码忘记 root 密码的场景还是比较常见的,特别是自己搭的测试环境经过好久没用过时,很容易记不得当时设置的密码。这个时候一般常用的方法是跳过权限验证,然后更改 root 密码,之后再启用权限验证...

weixin_39800957的博客 509

mysql 修改密码的几种方式

第一种方式: 最简单的方法就是借助第三方工具Navicat for MySQL来修改,方法如下: 1、登录mysql到指定库,如:登录到test库。 2、然后点击上方“用户”按钮。 3、选择要更改的用户名,然后点击上方的“编辑用户”按钮。 4、出现如图界面,输入新密码,并确认新密码,点击“保存”按钮即可。 第二种方式: 方法1: 用SET PASS...

weixin_33806509的博客 1143

MySql修改登录密码的几种方法

1、用SET PASSWORD命令 登录MySQL后,在命令行执行以下指令: set password for 用户名@localhost = password(‘新密码’); 例子:set password for root@localhost= password(‘pppppp’);

一个金牛座猿猿子的技术分享空间 7883

《MySQL安装几种安装方式,以及源码安装的具体方法》

MySQL几种安装方式和源码安装的具体步骤

2301_76512255的博客 316

mysql 用户管理与授权

mysql 用户管理与授权查看用户信息创建用户 :创建本地登陆用户:创建远程登陆用户:远程登陆授权用户对哪些数据库的哪些表可以进行操作设置本地用户登陆database_neme数据库table_name数据表的权限给user_name用户可以从任意地点登录访问所有数据库的所有表取消刚赋予用户的一个权限。给远程用户查询的权限 查看用户信息 mysql> select user,host,plugin from mysql.user; 创建用户 : 创建本地登陆用户: mysql> create

weixin_54670782的博客 754
上一篇: 再谈“我是怎么招聘程序员的”
下一篇: Struts1入门
海之沐
博客等级 码龄12年 1536粉丝 71原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值