千锋Java第九周总结

JDBC
一、引言

1.1 如何操作数据

使用客户端工具访问数据库,需要手工建立链接,输入用户名和密码登录,编写SQL语句,点击执行,查看操作结果(结果集或受影响行数)。

1.2 实际开发中,会采用客户端操作数据库吗?

在实际开发过程中,当用户的数据发生改变时,不可能通过客户端操作执行SQL语句,因为操作量过大!无法保证效率和正确性

二、JDBC(Java DataBase Connectivity)

2.1 什么是JDBC?

JDBC(Java DataBase Connectivity) Java连接数据库,可以使用Java语言连接数据库完成CRUD操作

2.2 JDBC核心思想

Java中定义了访问数据库的接口,可以为多种关系型数据库提供统一的访问方式。

由数据库厂商提供驱动实现类(Driver数据库驱动)

2.2.1 MySQL数据库驱动

mysql-connector-java-5.1.X 适用于5.X版本
mysql-connector-java-8.0.X 适用于8.X版本
2.2.2 JDBC API

JDBC 是由多个接口和类进行功能实现

类型 全限定名 简介
class java.sql.DriverManager 管理多个数据库驱动类,提供了获取数据库连接的方法
interface java.sql.Connection 代表一个数据库连接(当Connection不是NULL时,表示已连接一个数据库)
interface java.sql.Statement 发送SQL语句到数据库的工具
interface java.sql.ResultSet 保存SQL查询语句的结果数据(结果集)
class java.sql.SQLException 处理数据库应用程序时所发生的异常

2.3 环境搭建

在项目下新建 lib 文件夹,用于存放 jar 文件
将MySQL驱动文件mysql-connector-java-5.1.25-bin.jar 复制到项目的lib文件夹中
选中lib文件夹 右键选择 add as library,点击OK
三、JDBC开发步骤【重点】

3.1 注册驱动

使用Class.forName(“com.mysql.jdbc.Driver”); 手动加载字节码文件到JVM中

Class.forName(“com.mysql.jdbc.Driver”);
1
3.2 连接数据库

通过DriverManager.getConnection(url,user,password);获得数据库连接对象

URL:jdbc:mysql://localhost:3306/database

user:root

password:1234

Connection connection = DriverManager.getConnection(“jdbc:mysql://localhost:3306/database?useUnicode=true&characterEncoding=utf8”,“root”,“1234”);

URL(Uniform Resource Locator)统一资源定位符:由协议、IP、端口、SID(程序实例名称)组成

3.3 获取发送SQL的对象

通过Connection对象获得Statement对象,用于对数据库进行通用访问的

Statement statement = connection.createStatement();
1
3.4 执行SQL语句

编写SQL语句,并执行,接收执行后的结果

int result = statement.executeUpdate(“update stu set student_name=‘高强’,sex=‘女’ where student_id = ‘S1003’”);
1
注意:在编写DML语句时,一定要注意字符串参数的符号是单引号 ‘值’
DML语句:增、删、改时,执行的结果是受影响行数(int类型)。
DQL语句:查询时,返回的是数据结果集(ResultSet结果集)
3.5 处理结果

接收并处理操作结果

if(result > 0){
System.out.println(“执行成功”);
}
1
2
3
受影响行数:逻辑判断,方法返回
查询结果集:迭代、依次获取
3.6 释放资源

遵循的是先开后关的原则,释放过程中用到的所有资源对象

statement.close();
connection.close();
3.7 综合案例

综合核心六步,实现增删改

 public static void main(String[] args)throws Exception {
        //1.注册驱动
        Class.forName("com.mysql.jdbc.Driver");

        //2.连接数据库
        String url = "jdbc:mysql://localhost:3306/companydb?useUnicode=true&characterEncoding=utf8";
        String user = "root";
        String password="1234";
        Connection connection=DriverManager.getConnection(url,user,password);

        //3.获取发送SQL的对象
        Statement statement = connection.createStatement();

        //4.编写SQL语句,执行SQL语句(返回受影响行数)
        //新增
//        String sql = "insert into stu(student_id,student_name,sex,birthday,phone,GradeId) values ('S1005','高强','女','1999-09-09','15612341234',3)";
//        String sql = "delete from stu where student_id = 'S1005'";删除
        //修改
        String sql = "update stu set student_name='高强',sex='女' where student_id = 'S1003'";
        int result = statement.executeUpdate(sql);
        //5.处理数据
        if(result > 0){
            System.out.println("执行成功!");
        }
        //6.释放资源 先开后关
        statement.close();
        connection.close();

    }

四、 ResultSet(结果集)

在执行查询SQL后,存放查询到的结果集数据

4.1 接收结果集

ResultSet rs = statement.executeQuery(sql)

ResultSet rs = statement.executeQuery(“SELECT * FROM stu”);
1
4.2 遍历ResultSet中的数据

ResultSet以表(Table)结构进行临时结果的存储,需要通过JDBC API将其中的数据进行依次获取

数据行指针:初始位置在第一行数据前,每调用一次boolean next()方法,ResultSet中指针向下移动一行,结果为true,表示当前行有数据

rs.getXxx(“列名”); 根据列名获得数据

rs.getXxx(整数下标); 代表根据列的编号顺序获得!从1开始

boolean next() throws SQLException;//判断rs结果集中下一行是否有数据

4.2.1 遍历方法

int getInt(int columnIndex) throws SQLException;//获得当前行的第N列的int值
int getInt(String columnLabel) throws SQLException;//获得当前行columnLabel列的int值
1
2
注意:列的编号从1开始
4.3 综合案例

对stu表所有的数据进行遍历

4.3.1 根据列的名称获取

package com.qf.day42.t2.basic;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class TestDql {
    public static void main(String[] args)  throws Exception{
        //1.注册驱动
        Class.forName("com.mysql.jdbc.Driver");

        //2.获得连接
        Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/companydb?useUnicode=true&characterEncoding=utf8","root","1234");

        //3.获取执行SQL的对象
        Statement statement = connection.createStatement();

        //4.编写SQL语句
        String sql = "select student_id,student_name,sex,birthday,phone,GradeId from stu;";
        ResultSet resultSet = statement.executeQuery(sql);

        //5.处理结果 (结果集!)
        while(resultSet.next()){//判断结果集中是否有下一行!
            //根据列名获取当前行每一列的数据
            String student_id = resultSet.getString("student_id");
            String student_name = resultSet.getString("student_name");
            String sex = resultSet.getString("sex");
            String birthday = resultSet.getString("birthday");
            String phone = resultSet.getString("phone");
            int gradeId = resultSet.getInt("gradeId");
            System.out.println(student_id+"\t"+student_name+"\t"+sex+"\t"+birthday+"\t"+phone+"\t"+gradeId);
        }

        //6.释放资源
        resultSet.close();
        statement.close();
        connection.close();

    }
}

4.3.2 根据列的下标获取

 //5.处理结果 (结果集!)
        while(resultSet.next()){//判断结果集中是否有下一行!
            //根据列的编号获取当前行每一列的数据
            String student_id = resultSet.getString(1);
            String student_name = resultSet.getString(2);
            String sex = resultSet.getString(3);
            String birthday = resultSet.getString(4);
            String phone=  resultSet.getString(5);
            int gradeId  = resultSet.getInt(6);
            System.out.println(student_id+"\t"+student_name+"\t"+sex+"\t"+birthday+"\t"+phone+"\t"+gradeId);
 }

五、常见错误

java.lang.ClassNotFoundException 找不到类(类名书写错误、没有导入jar包)

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException 与SQL语句相关的错误(表名列名书写错误、约束错误、插入的值是String类型,但是没有加单引号)建议:在客户端工具中测试sql语句后,再粘贴到代码中来
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry ‘S1003’ for key ‘PRIMARY’ 原因:主键值已存在!更改要插入的主键值
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:Unknown column ‘password’ in
可能输入的值的类型不对,确定插入元素时,对应的值的类型是否争取
六、综合案例【登录】

6.1 创建表

创建一张用户表 User
id 主键、自动增长
username 字符串类型 非空
password 字符串类型 非空
phone 字符串类型
插入2条测试语句
6.2 实现登录

通过控制台,用户输入用户名和密码
用户输入的用户名和密码作为参数,编写查询SQL语句。
如果查询到用户,则用户存在,提示登录成功,反之,提示失败!
七、SQL注入问题

7.1 什么是SQL注入

当用户输入的数据中有SQL关键字或语法时,并且参与了SQL语句的编译,导致SQL语句编译后条件结果为true,一直得到正确的结果。称为SQL注入

7.2如何避免SQL注入

由于编写的SQL语句,是在用户输入数据后,整合后再编译成SQL语句。所以为了避免SQL注入的问题,使SQL语句在用户输入数据前,SQL语句已经完成编译,成为了完整的SQL语句,再进行填充数据

HTML

一、HTML简介

1.1 HTML概述

HTML全称:Hyper Text Markup Language(超文本标记语言)

HTML是一门用户创建网页文档的标记语言,网页本身是一种文本文件,在文本文件中添加标记符。

浏览器来解析HTML标记的内容(文字的处理,画面排版安排,图片如何显示、音频、视频等等)

HTML是用来创建网页的标记语言

1.2 HTML特点

1、简易性:超文本标记语言的版本升级采用的超集方式。更加方便灵活

2、可扩展性:超文本标记语言采取的子类元素的方式,为系统扩展带来保证

3、平台无关性:

4、通用性:HTML是网络的通用语言,一种简单、通用的标记语言。

1.3 HTML的发展

超文本标记语言(第一版)------1993年6月作为互联网工程小组(IETF)工作草案发布(并非标准)

HTML2.0 --1995年11月

HTML3.2 --1997年1月14日,W3C标准

HTML4.0 --1997年12月18日 W3C标准

HTML4.01 --1999年12月24日 W3C的推荐标准

HTML5 —2014年10月29日,W3C推荐标准

1.4 HTML基本结构


<!-- 文档声明:告诉浏览器使用HTML5版本解析 -->
<!DOCTYPE html>
<html>
    <!--网页的头部 -->
    <head>
        <!--页面的字符集编码 -->
        <meta charset="utf-8" />
        <!-- 页面的标题 -->
        <title>我的页面</title>
    </head>
    <!-- 网页的主题,显示的部分-->
    <body>
        展示的内容
    </body>
</html>

1、HTML页面包含头部head和主体body

2、HTML标签通常是成对出现的,有开始标签,有结束标签,称为对标签。没有结束标签的为 空标签

3、HTML标签都长都有属性,格式:属性名 = “属性值” 属性名 = “属性值”。多个属性用空格间隔

4、HTML标签不区分大小写,建议小写

5、HTML文件后缀名为html或htm

二、HTML基本标签

2.1 结构标签

<html></html>:根标签
<head> :头标签
    <title></title>页面的标题
</head>
<body>:主体标签:显示网页内容
    
</body>

属性:

color:文本的颜色

bgColor:背景色

background:背景图片

颜色的表示方式:

第一种:颜色名称 red blue green yellow orange

第二种方式:RGB模式 #000000 #ffffff #325687

2.2 排版标签

1、注释标签:
2、换行标签:

3、段落标签:

文本文字

特点:段落与段落之间有行高(行间距)自带换行

属性:文本对齐方式 align (left、center 、right)

4、水平线标签:

属性:

		width:水平线的长度(两种:像素表示。第二种:百分比显示)

		size:水平线的粗细(避免过粗、太丑、一般给个位数  比如 6px)

		color:水平线的颜色

		align:水平线的对齐方式(left、center、right)

2.3 标题标签

<h1>-<h6>
数字越小,标题文字越大!默认加粗、默认字号、默认占据一行

2.4 容器标签

<div></div> : 块级标签,独占一行,自带换行
<span></span> : 行级标签,所有内容都在同一行
	作用:<div>主要是结合css做页面分块 布局
		<span>:进行友好提示信息的显示

2.5 列表标签

2.5.1 无序列表

ul(unorder list)

<!--ul是无序列表,默认标识为实心圆 disc
			circle 空心圆
			square 黑色方块
		-->
		<ul type="square">
			<li>兰博基尼</li>
			<li>法拉利</li>
			<li>宾利</li>
			<li>迈凯伦</li>
		</ul>

2.5.2 有序列表

ol(order list)

<!--ol是有序列表,默认标识为阿拉伯数字 1
			a  A 字母字典顺序
			i  I 罗马数字
		-->
		<ol type="I">
			<li>铁胆火车侠</li>
			<li>光明勇士</li>
			<li>米老鼠和唐老鸭</li>
			<li>小头儿子和隔壁老王</li>
		</ol>

2.5.3 定义列表

dl(defination list)定义列表

dt(defination title)定义标题

dd(defination description) 定义描述

<dl>
			<dt>秦牛正威</dt>
			<dd>就当是一场梦,醒来还是很感动</dd>
			<dt>???</dt>
			<dd>蛋黄的长裙,蓬松的头发。</dd>
		</dl>

2.5.4 列表嵌套

<ul>

			<li>最新娱乐新闻</li>
			<li>
				<dl>
					<dt>青春有你2</dt>
					<dd>非常庞大的导师阵容,Ella,Jony J,蔡徐坤,Lisa</dd>
				</dl>
			</li>
			<li>
				猎心者
				<ol>
					<li>戴猛。。。</li>
					<li>廖朵朵。。。</li>
					<li>花笙。。。</li>
				</ol>
			</li>
		</ul>		

2.6 图片标签

<img /> 独立标签

属性:
src 图片地址
width 图片的宽度
height 图片的高度
border 边框
alt 图片的文字说明 当图片未能正确加载时,才显示
title 鼠标悬停时,显示的文字

<img src="img/微信图片_20200306173413.jpg"
			width="500px"
			height="900px"
			 />
		<img src="img/timg.jpg"
			width="500px"
			height="500px"
			border="5"
			alt="给你点赞的小脑斧"
			title="给你点赞的大脑斧"
			 />

2.7 链接标签

超链接可以是文本,也可以是图片,可以点击链接标签,进入新的文档,或者是当前文档中的某个部分

<a>文本或图片</a>

属性:
href="跳转的地址"跳转外网需要添加协议
target:_self(当前文档)
_blank(新页面,会一直打开新的)
_search 之前打开的页面存在,则不打开新的页面,直接复用
name 充当锚点(顶部、底部)
需要为标签提供name属性,进行赋值
需要点击跳转的标签href属性给 #name

2.8 表格标签

表格由

标签来定义,每个表格均有若干行(由tr标签定义行),每行由若干个单元格组成(由td标签来定义)。每一个数据单元可以包含文本、图片、列表。。。。。。
2.8.1 普通表格

table tr td

<!--创建表格 table   行  tr   列  td
			table属性:
			默认没有边框体现
			border:边框的宽度
			bordercolor:边框的颜色
			cellspacing:单元格的间距
			cellpadding:单元格与内容的间距
			width:宽度
			height:高度
			align:控制表格的对齐方式 left center right
			td的属性:
			align:控制的单元格内容的对齐方式 left center right
			valign:控制单元格内容的垂直对齐方式 top middle bottom
		-->
		<table border="1" bordercolor="red" cellspacing="10" cellpadding="10"
			width="300px" height="300px" align="center">
			<tr>
				<td align="center">学号</td>
				<td align="center">姓名</td>
				<td align="center">性别</td>
			</tr>
			<tr>
				<td valign="bottom">S1001</td>
				<td valign="middle">张阔</td>
				<td valign="top"></td>
			</tr>
		</table>

2.8.2 表格的表头

th

<!-- th作为表头,默认居中,加粗 -->
<table border="1">
			<tr>
				<th>学号</th>
				<th>姓名</th>
				<th>分数</th>
			</tr>
			<tr>
				<td>S1002</td>
				<td>刘欣</td>
				<td>100</td>
			</tr>
		</table>

2.8.3 表格的列合并

colspan

<table border="1" bordercolor="red">
			<tr>
				<td align="center" colspan="4">学生信息表</td>
			</tr>
			<tr>
				<td>学号</td>
				<td>姓名</td>
				<td colspan="2">各科成绩</td>
			</tr>
			<tr>
				<td>1</td>
				<td>哆啦A梦</td>
				<td>80</td>
				<td>90</td>
			</tr>
		</table>

2.8.4 表格的行合并

rowspan


<table border="1" bordercolor="blue">
			<tr>
				<td colspan="4" align="center">学生表</td>
			</tr>
			<tr>
				<td>学号</td>
				<td>姓名</td>
				<td>语文成绩</td>
				<td>数学成绩</td>
			</tr>
			<tr>
				<td rowspan="2">1</td>
				<td rowspan="2">光头强</td>
				<td>80</td>
				<td>90</td>
			</tr>
			<tr>
				<td>100</td>
				<td>99</td>
			</tr>
		</table>

2.9 文本格式化标签


		<!--粗体文本-->
		<b>今天天气好</b><br />
		<!--大号字-->
		<big>今天天气好</big><br />
		<!--着重文字-->
		<em>今天天气好</em><br />
		<!--斜体字 物理上把字体倾斜-->
		<i>今天天气好</i><br />
		<!--小号字-->
		<small>今天天气好</small><br />
		<!--定义加重语气-->
		<strong>今天天气好</strong><br />
		<!--下标字-->
		CO<sub>2</sub><br />
		<!--上标字-->
		孙悟空三打张阔<sup></sup><br />
		<!--插入字-->
		<ins>今天天气好</ins><br />
		<!--删除字-->
		<del>今天天气好</del>

三、基本标签的综合案例


<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>综合案例</title>
	</head>
	<body>
		<!--头部-->
		<div>
			<table width="100%" align="center">
				<tr>
					<td align="left">
						千锋教育-稀有的坚持全程面授品质的大型IT教育机构
					</td>
					<td align="right">
						<a>好程序员特训营&nbsp;&nbsp;</a>
						<a>JavaEE分布式开发&nbsp;&nbsp;</a>
						<a>JavaSE核心基础&nbsp;&nbsp;</a>
						<a>加入我们</a>
					</td>
				</tr>
				<tr>
					<td>
						<img src="img/new_logo.png" />
					</td>
					<td align="right">
						<img src="img/nav_r_ico.png" />
					</td>
				</tr>
				<tr>
					<td colspan="2" align="center">
						<hr/>
						<span>首页&nbsp;&nbsp;</span>
						<span>课程培训&nbsp;&nbsp;</span>
						<span>教学保障&nbsp;&nbsp;</span>
						<span>免费视频&nbsp;&nbsp;</span>
						<span>公开课&nbsp;&nbsp;</span>
						<span>企业合作&nbsp;&nbsp;</span>
						<span>就业喜报&nbsp;&nbsp;</span>
						<span>学员天地&nbsp;&nbsp;</span>
						<span>关于千锋&nbsp;&nbsp;</span>
						<span>加入我们</span>
						<hr />
					</td>
				</tr>
				<tr>
					<td colspan="2" align="right">
						首页>课程培训>JavaEE列表
					</td>
				</tr>
			</table>
		</div>
		<!--中间部分-->
		<div>
			<table>
				<tr>
					<td>
						<h3>课程培训</h3>
						<h4>108种课程内容</h4>
					</td>
				</tr>
				<tr>
					<td>
						<hr />
						<img src="img/001.png" />
					</td>
				</tr>
			</table>
			<table align="center" width="100%">
				<tr align="center">
					<td>
						<img src="img/002.png" /><br />
						<div align="center">书名:XXX</div>
						<div align="center">售价:180</div>
					</td>
					<td>
						<img src="img/003.png" /><br />
						<div align="center">书名:XXX</div>
						<div align="center">售价:180</div>
					</td>
					<td>
						<img src="img/004.png" /><br />
						<div align="center">书名:XXX</div>
						<div align="center">售价:180</div>
					</td>
					<td>
						<img src="img/005.png" /><br />
						<div align="center">书名:XXX</div>
						<div align="center">售价:180</div>
					</td>
					<td>
						<img src="img/006.png" /><br />
						<div align="center">书名:XXX</div>
						<div align="center">售价:180</div>
					</td>
				</tr>
				<tr align="center">
					<td>
						<img src="img/007.png" /><br />
						<div align="center">书名:XXX</div>
						<div align="center">售价:180</div>
					</td>
					<td>
						<img src="img/008.png" /><br />
						<div align="center">书名:XXX</div>
						<div align="center">售价:180</div>
					</td>
					<td>
						<img src="img/009.png" /><br />
						<div align="center">书名:XXX</div>
						<div align="center">售价:180</div>
					</td>
					<td>
						<img src="img/010.png" /><br />
						<div align="center">书名:XXX</div>
						<div align="center">售价:180</div>
					</td>
					<td>
						<img src="img/011.png" /><br />
						<div align="center">书名:XXX</div>
						<div align="center">售价:180</div>
					</td>
				</tr>
			</table>
		</div>
		<!--底部-->
		<div>
			<table width="90%" align="center">
				<tr>
					<td><img src="img/012.png" /></td>
				</tr>
			</table>	
		</div>
	</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【优质项目推荐】 1、项目代码均经过严格本地测试,运行OK,确保功能稳定后才上传平台。可放心下载并立即投入使用,若遇到任何使用问题,随时欢迎私信反馈与沟通,博主会第一时间回复。 2、项目适用于计算机相关专业(如计科、信息安全、数据科学、人工智能、通信、物联网、自动化、电子信息等)的在校学生、专业教师,或企业员工,小白入门等都适用。 3、该项目不仅具有很高的学习借鉴价值,对于初学者来说,也是入门进阶的绝佳选择;当然也可以直接用于 毕设、课设、期末大作业或项目初期立项演示等。 3、开放创新:如果您有一定基础,且热爱探索钻研,可以在此代码基础上二次开发,进行修改、扩展,创造出属于自己的独特应用。 欢迎下载使用优质资源!欢迎借鉴使用,并欢迎学习交流,共同探索编程的无穷魅力! 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值