记一次完整的SpringBoot+MyBatis整合过程(MyBatis逆向工程、SpringBoot整合MyBatis以及SpringBoot下的Mybatis分页)

Springboot整合myBatis(附加pagehelper分页插件) Spring boot整合myBatis(附加pagehelper分页插件)前提第一步,创建spring boot,导入maven依赖第二步,进行appliction配置第三步,将springboot启动类进行扫描接口配置第四步创建三层架构项目第四步,运行项目,访问Controller接口分页插件pagehelper总结 前提 大家好,我在身边的人当着发现对spring boot整合mybatis... 阅读详情

环境:

  1. SpringBoot版本:2.2.6.RELEASE
  2. Mybatis版本:2.1.2
  3. 逆向工程依赖generator版本:1.3.6
  4. 分页依赖pagehelper版本:1.2.3

创建一个SpringBoot工程

      使用Idea创建SpringBoot工程(过程略)

pom.xml

<dependencies>
<!--        数据库连接依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
<!--        web依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
<!--     mybatis-generator-core: Mybatis逆向工程核心包   -->
        <dependency>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-core</artifactId>
            <version>1.3.6</version>
        </dependency>
<!--        逆向工程依赖的日志包-->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
<!--        Mybatis依赖-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.2</version>
        </dependency>
        <!-- mybatis的 pagehelper分页插件依赖 -->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.2.3</version>
        </dependency>
<!--        <dependency>-->
<!--            <groupId>com.github.pagehelper</groupId>-->
<!--            <artifactId>pagehelper</artifactId>-->
<!--            <version>5.1.2</version>-->
<!--        </dependency>-->

<!--        数据库依赖-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
<!--        loomBok依赖-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
<!--        测试依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

mbg.xml(逆向工程配置)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
        PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
        "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>

    <!-- 
        targetRuntime="MyBatis3Simple":生成简单版的CRUD
        MyBatis3:豪华版
    
     -->
    <context id="DB2Tables" targetRuntime="MyBatis3">
        <commentGenerator>
            <!-- 是否去除自动生成的注释 true:是 : false:否 -->
            <property name="suppressAllComments" value="true" />
        </commentGenerator>
        <!-- jdbcConnection:指定如何连接到目标数据库 -->
        <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/mybatis?
                        serverTimezone=UTC&amp;useUnicode=true&amp;characterEncoding=utf-8&amp;allowMultiQueries=true"
                        userId="root"
                        password="root">
        </jdbcConnection>

        <!--  -->
        <javaTypeResolver >
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>

        <!-- javaModelGenerator:指定javaBean的生成策略 
        targetPackage="test.model":目标包名
        targetProject="\MBGTestProject\src":目标工程
        -->
        <javaModelGenerator targetPackage="com.liujie.bean"
                            targetProject=".\src\main\java">
            <property name="enableSubPackages" value="true" />
            <property name="trimStrings" value="true" />
        </javaModelGenerator>

        <!-- sqlMapGenerator:sql映射生成策略: -->
        <sqlMapGenerator targetPackage="com.liujie.dao"
                         targetProject=".\src\main\java">
            <property name="enableSubPackages" value="true" />
        </sqlMapGenerator>

        <!-- javaClientGenerator:指定mapper接口所在的位置 -->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.liujie.dao"
                             targetProject=".\src\main\java">
            <property name="enableSubPackages" value="true" />
        </javaClientGenerator>

        <!-- 指定要逆向分析哪些表:根据表要创建javaBean -->
        <table tableName="dept" domainObjectName="Dept"></table>
        <table tableName="employee" domainObjectName="Employee"></table>
    </context>
</generatorConfiguration>

application.yml

server:
  port: 8080

spring:
  datasource:
    username: root
    password: root
    url: jdbc:mysql://localhost:3306/mybatis?allowMultiQueries=true&useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
    driver-class-name: com.mysql.jdbc.Driver

mybatis:
#  指定Mapper文件路径
  mapper-locations: classpath:mapping/*Mapper.xml
#  指定PoJo对象路径,并起别名
  type-aliases-package: com.liujie.bean
#  配置mybatis的分页插件信息
#数据库
pagehelper:
  helperDialect: mysql
  reasonable: true
  support-methods-arguments: true
  page-size-zero: true
  params=count: countSql
#showSql
logging:
  level:
    com:
      example:
        mapper: debug

创建数据库表:

CREATE TABLE `employee` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `last_name` varchar(255) DEFAULT NULL,
  `email` varchar(255) DEFAULT NULL,
  `gender` char(1) DEFAULT NULL,
  `d_id` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `d_id` (`d_id`),
  CONSTRAINT `employee_ibfk_1` FOREIGN KEY (`d_id`) REFERENCES `dept` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=40 DEFAULT CHARSET=utf8

编写逆向工程代码,自动生成Javabean对象、Mapper文件以及Dao文件:

Generator.java
package com.liujie;

import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultShellCallback;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

public class Generator {
    public void generator() throws Exception{
        List<String> warnings = new ArrayList<String>();
        boolean overwrite = true;
        /**指向逆向工程配置文件*/
        File configFile = new File("src/main/resources/generationConfig.xml");
//        File configFile = new File("src/main/resources/mbg.xml");
        ConfigurationParser parser = new ConfigurationParser(warnings);
        Configuration config = parser.parseConfiguration(configFile);
        DefaultShellCallback callback = new DefaultShellCallback(overwrite);
        MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
        myBatisGenerator.generate(null);
    }
    public static void main(String[] args) throws Exception {
        try {
            Generator generatorSqlmap = new Generator();
            generatorSqlmap.generator();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

原始工程目录结构:

运行Generator.java的main方法,生成Mapper文件、Dao文件以及JavaBean后,目录结构

将mapper文件放入到application。yml文件指定的文件夹内后的目录结构

修改JavaBean文件,加入注解

@Data
@AllArgsConstructor
@NoArgsConstructor

该步骤需要依赖LoomBok配置,可以跳过(跳过需要使用手动添加构造方法以及set\get\toString方法)

在生成的Mapper上添加注解:@Mapper(该注解的作用是让Spring额能够扫描到该Dao文件)

编写service层 EmployeeService.java

package com.liujie.service;

import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.liujie.bean.Employee;
import com.liujie.bean.EmployeeExample;
import com.liujie.dao.EmployeeMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class EmployeeService {
    @Autowired
    private EmployeeMapper employeeMapper;

    public Employee findById(Integer id) {
        return employeeMapper.selectByPrimaryKey(id);
    }

    /**
     *    多条件组合查询
     * @param example
     * @return
     */
    public List<Employee> selectByExample(EmployeeExample  example) {
        example = new EmployeeExample();
        EmployeeExample.Criteria criteria = example.createCriteria();
        criteria.andEmailLike("%8%");
        EmployeeExample.Criteria criteria1 = example.createCriteria();
        criteria1.andGenderEqualTo("1");
        example.or(criteria1);
        return employeeMapper.selectByExample(example);
    }
    /**
     *    多条件组合分页查询
     * @param 
     * @return
     */
    public PageInfo<Employee> queryByPage() {
        PageHelper.startPage(2, 2);
        EmployeeExample example = new EmployeeExample();
        EmployeeExample.Criteria criteria = example.createCriteria();
        criteria.andEmailLike("%8%");
        EmployeeExample.Criteria criteria1 = example.createCriteria();
        criteria1.andGenderEqualTo("1");
        example.or(criteria1);
        List<Employee> employees = employeeMapper.selectByExample(example);

        PageInfo<Employee> pageInfo = new PageInfo<Employee>(employees);
        System.out.println(pageInfo);
        return pageInfo;
    }
    public PageInfo<Employee> queryByPage1() {
        PageHelper.startPage(1, 2);

        List<Employee> employees = employeeMapper.selectByExample(null);

        PageInfo<Employee> pageInfo = new PageInfo<Employee>(employees);
        System.out.println(pageInfo);
        return pageInfo;
    }
}

编写controller层 EmployeeController.java

package com.liujie.controller;

import com.github.pagehelper.PageInfo;
import com.liujie.bean.Employee;
import com.liujie.service.EmployeeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("emp")
public class EmployeeController {
    @Autowired
    private EmployeeService employeeService;

    @GetMapping("/findById/{id}")
    public Employee example(@PathVariable("id") Integer id){
        System.out.println("id="+id);
        Employee employee = employeeService.findById(id);
        System.out.println(employee);
        return employee;
    }

    @GetMapping("/selectByExample")
    public List<Employee> findById(){
        return employeeService.selectByExample(null);
    }

    @GetMapping("/queryByPage")
    public PageInfo<Employee> queryByPage(){
        return employeeService.queryByPage();
    }


    @GetMapping("/queryByPage1")
    public PageInfo<Employee> queryByPage1(){
        return employeeService.queryByPage1();
    }
}

启动类 Application.java

package com.liujie;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@MapperScan("com.liujie") //扫描的mappe
@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}

启动项目访问对应的接口,即可

项目示例已上传到GitHub:https://github.com/liujie1122/mybatis_spring_boot_start.git

SpringBoot整合Mybatis实现分页功能完整教程 在现代Java后端开发中,SpringBoot与MyBatis的整合已成为构建高效、灵活数据访问层的标准方案之一。SpringBoot 提供了快速搭建项目的基础框架与自动配置机制,而 MyBatis 则以其灵活的 SQL 控制能力和轻量级 ORM 特性,广泛应用于复杂业务场景下的数据库操作。本章将从框架选型背景出发,解析为何选择 SpringBoot 与 MyBatis 进行整合开发,重点阐述其在开发效率、维护性与性能上的协同优势。 阅读详情

相关推荐

雷达仿真:FMCW TDMA-MIMO 3D点云获取方法

2 信号建模摘要:通过设置时分复用(TDMA)波形结合FMCW毫米波雷达仿真获取目标的距离、速度和方位角3D点云信息。在本案例中,首先通过发射天线交替发射FMCW波形并通过接收天线依次接收回波信号从而得到雷达原始数据,其次对获取的原始数据依次经行距离、速度、角度估计从而输出目标的3D点云。阅读本文档,你将对TDMA-MIMO雷达的基本原理、毫米波雷达距离估计、速度估计以及角度估计的基本原理有所了解,另外CA-CFAR恒虚警以及MUSIC-DOA估计在本案例中也有所涉及。1 TDMA-MIMO原理。

Poulen的博客 6959

SpringBoot 系列-6 集成mybatis

在这里, 为了减少编码时间, 我们使用插件自动生成mybatis的代码。 步骤如下 1:  引入相关依赖 pom.xml &lt;properties&gt; &lt;!-- 数据库连接信息配置 --&gt; &lt;jdbc.driver.artifactId&gt;mysql-connector-java&lt;/jdbc.driver.artifactId&gt; &l...

SDN_SUPERUSER的专栏 379

【Qt】使用QMediaPlayer播放视频

window平台可以安装K-Lite,linux平台一般各发行版都会默认安装GSteam。播放RTSP视频时,可以使用VLC播放器搭建一个视频推流服务器,用于拉流的客户端的调试。3、如果没有添加Qt环境变量,请把关联的Qt5MultimediaWidgets.dll和Qt5Multimedia.dll放到进程路径下否则也会报ServiceMissingError错误。2、需要安装解码器,否则报 ServiceMissingError 无法找到服务的错误。1、需要在.pro工程文件中引用对应模块。

奔涌的后浪的专栏 2219

SpringBoot整合mybatis

SpringBoot整合mybatis整合步骤1、依赖集成2、配置 研究ORM框架mybatis和SpringBoot的整合。 整合步骤 1、依赖集成 首先将mybatis的starter加入maven管理,是mybatis提供的: <!--mybatis依赖--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifa

m0_46853673的博客 886

基于ROS2 Humble与Livox Mid-360的双雷达点云融合实战解析

本文详细解析了基于ROS2 Humble与Livox Mid-360的双雷达点云融合实战方案。从环境搭建、驱动安装、双雷达配置、外参标定、时间同步到点云融合核心实现,全面介绍了技术要点与避坑指南,并提供了工程化部署与性能优化建议,助力开发者高效实现高精度点云合成应用。

ss78901的博客 1093

el-upload自定义上传dwg/dxf文件并且携带额外参数(CAD)

需求:需要使用el-upload自定义上传cad的图片或普通图片,这边需要判断区分下,以及上传后清空上传文件列表。

请叫我欧皇!的博客 1535

2.6 springBoot学习笔记(2.6)——- 整合mybatisPlus

更多文章 更多系列文章在个人网站 springBoot学习系列笔记文章 springBoot学习笔记(1)—— 搭建springBoot项目 文章目录更多文章springBoot学习系列笔记文章一、pandas是什么?总结 提示:以下是本篇文章正文内容,下面案例可供参考 一、pandas是什么? 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。 总结 项目源码 ...

xiayz的博客 1514

CorelDRAW 2019安装指南:从下载到激活的完整步骤

本文提供了一份详细的CorelDRAW 2019安装指南,涵盖从下载安装包、检查系统环境到完成激活的完整步骤。文章重点解析了安装过程中的关键选项设置,并分享了首次启动后的优化配置与常见问题解决方案,旨在帮助用户高效、顺利地完成这款经典矢量设计软件的安装与配置。

weixin_29213827的博客 829

springboot2.6.1 + mybatis2.2.1 + map

Springboot 2.6.1 MyBatis 2.2.1 Map<String,String> Select

weixin_42176639的博客 616

Codex CLI 接入智谱 GLM-5.1 完整教程

Codex CLI 是 OpenAI 推出的命令行 AI 编程工具,支持自主读取文件、执行命令、编写代码等操作,是目前最火的终端 AI 编程工具之一。通过 CLIProxyAPI 代理,我们成功将 Codex CLI 与智谱 GLM-5.1 模型对接,核心在于解决 Responses API 与 Chat Completions API 的协议转换问题。✅成熟稳定:CLIProxyAPI 社区活跃(4.7k fork),持续维护✅完整兼容:支持流式/非流式、function calling✅低成本。

u011831527的博客 2573

【C/C++ 性能优化】了解cpu 从而进行C++ 高效编程

在当代软件开发领域,CPU(Central Processing Unit,中央处理器)的性能优化一直是一个核心议题。尤其是对于C++开发者而言,无论是在Linux平台还是其他操作系统中,都需要深刻理解CPU的工作原理以及如何充分利用CPU资源,以确保软件运行的高效性和稳定性。正如计算机科学家Donald Knuth在《计算机程序设计的艺术》中所说:“过早的优化是万恶之源”,然而,这并不意味着我们应该忽视性能优化——相反,我们需要在正确的时间以正确的方式进行优化。

探索C++编程的奥秘,分享深入的技术见解和实践,旨在激发读者创造力与解决问题的思维。 4748

springboot整合Mybatis

在resources下新建mappers包,再新建BookMapper.xml,xml文件最前面不能留有空行、空格。新建mappers包,再新建BookMapper接口。新建entity包,再新建Book实体类。

weixin_45476535的博客 752

STM32F103标准库开发:Keil5新建STM32工程

新建STM32工程 步骤一:创建工程模板文件 新建一个文件夹 template 在文件夹template里面新建五个文件 (1)CMSIS: 存放内核驱动程序和启动引导文件 (2)FWLIB:存放库函数文件 (3)Project:存放工程文件 (4)System:存放自己写的驱动程序 (5)User:存放用户程序(主函数) 步骤二:导入stm...

MQ0522的博客 2万+

SpringBoot整合MyBatis四种常用的分页方式

扩展:PageHelper.startPage(int PageNum,int PageSize):用来设置页面的位置和展示的数据条目数,我们设置每页展示5条数据。PageInfo用来封装页面信息,返回给前台界面。PageInfo中的一些我们需要用到的参数如下表:

目前专注区块链相关技术的学习与分享 3717

Camera2Demo

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

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

SpringBoot整合Mybatis逆向工程

pringBoot整合Mybatis逆向工程(详细过程)

qq_51447436的博客 1万+

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

SpringBoot整合Mybatis加逆向工程完整详细版

SpringBoot整合Mybatis整合的一些坑。 SpringBoot整合Mybatis整合的一些坑。 第一次文章不懂咋写粗暴点直接上代码教程,本次代教程集成mybatis的逆向工程 废话不多说 1、创建springboot工程 这里没什么好讲的 勾选 spirng Web、 勾选 Spring Data JDBC 、Mybatis、Mysql Driver (备注:如果你是其他数据库勾选...

qq_41822168的博客 1399

SpringBoot3整合MyBatis-Plus分页插件。SpringBoot3整合MyBatis+PageHelper分页插件。(SpringBoot3.3.10)

本篇博客核心内容:基于SpringBoot3实现整合MyBatis-Plus分页插件(数据层或业务层实现分页)。基于SpringBoot3实现整合MyBatis+PageHelper分页插件。其中测试与响应使用第三方工具Apifox进行模拟前端请求,,,

岁岁岁平安的博客 2672

springboot整合Mybatis实现分页

文章目录一、在pom中添加分页插件依赖二、配置application.properties三、编写三层代码1、entity实体类2、Controller控制层3、service、serviceImpl 业务层4、dao、dao.xm数据访问层四、SQL五、前端界面六、运行结果 一、在pom中添加分页插件依赖 代码如下(示例): <!--分页插件--> <dependency> <groupId>com.github.pagehel

weixin_43563498的博客 5077

SpringBoot整合mybatis+mybatis分页插件

第一步:相关依赖 <!--web,servlet引入--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>...

weixin_44001678的博客 9183

springboot中mybatis逆向工程与分页的应用

最近在项目中应用到springboot与mybatis,在进行整合过程中遇到一些坑,在此将其整理出来,便于以后查阅与复习。 项目运行环境为:eclispe+jdk1.8+maven 搭建Spring Boot环境 首先建立maven project,在生成的pom文件中加入依赖,代码如下: &lt;parent&gt; &lt;groupId&gt;org.springfram...

紫焱 2113

SpringBoot整合MyBatis分页

本文实现SpringBoot整合Mybatis分页的两种方式,一是利用PageHelper来实现,二是采用拦截器分页。

请你喝杯Java 2262

springboot整合mybatis拦截器分页

@Value(“${mybatis.type-aliases-package}”)private String aliases;@Autowiredprivate DataSource dataSource;@Bean(name = “sqlSessionFactory”)public SqlSessionFactory sqlSessionFactory() throws Exception {SqlSessionFactoryBean bean = new SqlSessionFactoryBean()

2401_83916355的博客 1077

SpringBoot整合MyBatis联表查询完整过程

1.创建SpringBoot工程 勾选以下项目,版本选择2.2.8 2.导入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <opti...

Xeon_CC的博客 2928

springboot整合mybatis-plus逆向工程

MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。官方文档 代码生成器 AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Co...

我的Java成长之路的博客 4700

Springboot整合Mybatis(逆向工程)

Mybatis是一个支持普通SQL查询、存储及高级映射的持久框架,它几乎消除了JDBC的冗余代码,无须手动设置参数和对结果进行检索,使用简单的XML或注解进行配置和原理映射,将接口和Java的POJO映射成数据库中的记录,使java开发人员可以使用面向对象的编程思想来操作数据库。 在开发过程中,为了减少编写的代码量,使用mybatis逆向工程可以省略大部分代码的编写,如果想增加其他操作,只需要在其基础上添加新的mapper接口及映射就行了。

jay_musu的博客 1980

Springboot整合Mybatis的分页插件PageHelper

第一件事,导入jar包,贴上maven &lt;dependency&gt; &lt;groupId&gt;com.github.pagehelper&lt;/groupId&gt; &lt;artifactId&gt;pagehelper-spring-boot-starter&lt;/artifactId&gt; ...

beyond丿灬的博客 2573
下一篇: Caused by: com.netflix.client.ClientException: Load balancer does not have available server for clie
Java_Study_Tour
博客等级 码龄9年 0粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值