SpringBoot 学习记录(二): mybaits

SpringBoot整合Mybaits开发报java.lang.IllegalArgumentException: At least one base package must be specifie SpringBoot整合Mybaits开发报Caused by: java.lang.IllegalArgumentException: At least one base package must be specified异常,这里记录一下,加深自己的记忆。详细异常堆栈信息如下: java.lang.IllegalStateException: Failed to load Applicat... 阅读详情

继续前篇学习,加入数据库访问层mybatis,这里数据库使用的是mysql

一,首先在原有的pom.xml中加入依赖:

	<dependency>
		<groupId>org.mybatis.spring.boot</groupId>
		<artifactId>mybatis-spring-boot-starter</artifactId>
		<version>1.1.1</version>
	</dependency>
	
	<!-- mybatis分页工具,需要版本1.1.1及以上 -->
	<dependency>
        <groupId>com.github.pagehelper</groupId>
        <artifactId>pagehelper</artifactId>
        <version>4.1.0</version>
    </dependency>
	
     <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>
这里引入了mybaits分页插件,PageHelper,是Github上以为开发者提供的开源插件,使用很方便。

先看完整目录结构:


二,在application.properties中配置数据源

#datasource
spring.datasource.url = jdbc:mysql://localhost:3306/yun?characterEncoding=utf-8
spring.datasource.username = root
spring.datasource.password = centos
spring.datasource.driverClassName = com.mysql.jdbc.Driver
spring.datasource.max-active=20
spring.datasource.max-idle=8
spring.datasource.min-idle=8
spring.datasource.initial-size=10
spring.datasource.sql-script-encoding=UTF-8
三,创建测试table
CREATE TABLE `demo` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8
四,创建实体类Demo
package com.example.entity;

public class Demo {
	
	private long id;
	
	private String name;

	public long getId() {
		return id;
	}

	public void setId(long id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
		

}
五,创建接口DemoMapper,这里先采用注解方式实现,注意接口上不需要添加注解
package com.example.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Select;

import com.example.entity.Demo;

public interface DemoMapper {

    @Select("select * from demo where name = #{name}")
    public List<Demo> likeName(String name);
   
    @Select("select * from demo where id = #{id}")
    public Demo getById(long id);
}

六,创建DemoService + DemoServiceImpl

package com.example.service;

import java.util.List;

import com.example.entity.Demo;

public interface DemoService {
	
	public List<Demo> likeName(String name);
	
	public Demo getById(long id);

}

package com.example.service.impl;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.example.entity.Demo;
import com.example.mapper.DemoMapper;
import com.example.service.DemoService;

@Service
public class DemoServiceImpl implements DemoService {
	
	@Resource
	private DemoMapper demoMapper;

	@Override
	public List<Demo> likeName(String name) {
		return demoMapper.likeName(name);
	}

	@Override
	public Demo getById(long id) {
		return demoMapper.getById(id);
	}

}

七,创建DemoController

package com.example.controller;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import com.example.entity.Demo;
import com.example.service.DemoService;

@RestController
public class DemoController {

	@Resource
	private DemoService demoService;
	
	@RequestMapping(value="/demo/list",method=RequestMethod.GET)
	public List<Demo> list(String name){
		return demoService.likeName(name);
	}
	
}

八,启动类DemoApplication添加注解,扫描mapper

package com.example;

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

@SpringBootApplication
@MapperScan("com.*.mapper")//扫描该包下接口
public class DemoApplication {

	public static void main(String[] args) {
		SpringApplication.run(DemoApplication.class, args);
	}
}
九,启动测试

http://localhost:8088/spring-boot/demo/list?name=test

返回结果如下(预先在数据库插入了4条数据,便于测试):

[
  {
    "id": 1,
    "name": "test"
  },
  {
    "id": 2,
    "name": "test"
  },
  {
    "id": 3,
    "name": "test"
  },
  {
    "id": 4,
    "name": "test"
  }
]
十,使用分页插件,通过@Bean注解注入
package com.example.config;

import java.util.Properties;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import com.github.pagehelper.PageHelper;

@Configuration
public class PageHelperConfiguration {

	@Bean
    public PageHelper pageHelper() {
        PageHelper pageHelper = new PageHelper();
        Properties p = new Properties();
        p.setProperty("offsetAsPageNum", "true");
        p.setProperty("rowBoundsWithCount", "true");
        p.setProperty("reasonable", "true");
        pageHelper.setProperties(p);
        return pageHelper;
    }
}
十一,DemoController新增分页方法
@RequestMapping(value="/demo/page",method=RequestMethod.GET)
	public List<Demo> page(String name){
		PageHelper.startPage(1,2);
		return demoService.likeName(name);
	}
十二,访问测试

http://localhost:8088/spring-boot/demo/page?name=test

返回结果如下:

[
  {
    "id": 1,
    "name": "test"
  },
  {
    "id": 2,
    "name": "test"
  }
]
=================================================================================================

以上是采用注解方式实现sql语句,下面采用常规的xml配置方式

十三,新增DemoMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.example.mapper.DemoMapper" >

  <resultMap id="BaseResultMap" type="com.example.entity.Demo" >
    <id column="id" property="id" jdbcType="BIGINT" />
    <result column="name" property="name" jdbcType="VARCHAR" />
  </resultMap>
  
  <sql id="Base_Column_List" >
    id, name
  </sql>
  
  <select id="selectAll" resultMap="BaseResultMap" >
    select 
    <include refid="Base_Column_List" />
    from demo
  </select>
  
  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Long" >
    select 
    <include refid="Base_Column_List" />
    from demo
    where id = #{id,jdbcType=BIGINT}
  </select>
  
  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long" >
    delete from demo
    where id = #{id,jdbcType=BIGINT}
  </delete>
</mapper>
十四,接口中添加相应的方法

DemoMapper

int deleteByPrimaryKey(Long id);

    Demo selectByPrimaryKey(Long id);

	List<Demo> selectAll();
DemoService
int deleteByPrimaryKey(Long id);

    Demo selectByPrimaryKey(Long id);

	List<Demo> selectAll();
DemoServiceImpl
@Override
	public int deleteByPrimaryKey(Long id) {
		return demoMapper.deleteByPrimaryKey(id);
	}

	@Override
	public Demo selectByPrimaryKey(Long id) {
		return demoMapper.selectByPrimaryKey(id);
	}

	@Override
	public List<Demo> selectAll() {
		return demoMapper.selectAll();
	}
十五,DemoController
	@RequestMapping(value="/demo/all",method=RequestMethod.GET)
	public List<Demo> all(){
		PageHelper.startPage(1,2);
		return demoService.selectAll();
	}
	
	@RequestMapping(value="/del",method=RequestMethod.DELETE)
	public int del(long id){
		return demoService.deleteByPrimaryKey(id);
	}
	
	@RequestMapping(value="/demo",method=RequestMethod.GET)
	public Demo get(long id){
		return demoService.selectByPrimaryKey(id);
	}

十六,方法都写好了,最主要是在application.properties中注册*.xml的目录,添加如下配置:

#mapper.xml location
mybatis.mapperLocations=classpath:mybatis/mapper/*.xml
mybatis.config-locations=classpath:mybatis/mybatis-config.xml
注意这里配置的mybatis-config.xml主要是配置了别名,可以不用,这里加上作为补充知识点,方便以后使用

十七,测试,注意分页插件依然生效,测试结果如下:



mybaits的使用到此结束,下篇继续学习sping_boot为我们提供的数据库访问层,SpringBoot 学习记录(三): jpa








SAP MIGO屏幕增强的具体实施步骤介绍(SE19:MB_MIGO_BADI) <转载> 1.MIGO抬头屏幕增强具体增强实施步骤1.1.创建存储抬头客制化数据的增强表1.2.创建增强结构1.3.创建函数组ZMM_MIGO1.3.1.定义全局变量1.3.2.创建数据处理函数1.4.创建字屏幕9001屏幕PBOendif.endloop.1.5.实施新BADI增强SE19创建BADI实施双击实施类ZCL_MIGO_EN_01exportingendif.endmethod.endif.endif.exportingendmethod. 阅读详情

相关推荐

云安全技术——搭建VPN

VPN(Virtual Private Network)是一种可以在公共网络上建立安全连接的技术。VPN是实现保密通信的基本手段,在windows系统上,可以直接进行VPN服务的搭建。1.VPN的工作原理:通过使用加密协议和认证机制,将本地计算机和远程服务器之间的通信加密和保护。2.VPN的分类:根据不同的方式和用途,VPN可以分为不同类型,例如远程访问VPN、站点到站点VPN等。3.VPN的优势:VPN可以带来许多好处,如提高数据安全性、隐藏真实IP地址、突破地理限制等。4.

qq_53142796的博客 3万+

MyBatis 中,deleteByPrimaryKey和deleteByIds的区别

在使用 deleteByIds 方法时,需要将多个主键字段的值打包成一个数组或者集合,并将其作为方法的参数传递给 Mapper 接口。deleteByPrimaryKey 是 MyBatis Mapper 中提供的默认删除方法,它根据主键字段的值来删除一行数据。在使用 deleteByPrimaryKey 方法时,需要在对应的 Mapper XML 文件中指定主键字段的名称,并传入该主键字段的值。是两个常用的 SQL Mapper 方法,它们都用于删除数据库表中的数据行,但具体使用方式有所不同。

m0_60464220的博客 1939

UFS 功能描述:UFS boot

UFS 启动过程介绍:启动配置,启动代码下载过程和安全性

m0_51720747的博客 1601

MySQL-基础(三)

5.4 数据库事务 数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成 事务指的是数据库一种保护数据的方式 事务一般由增删改操作自动调用,事务根据数据库不同提交的时机也是不同的 ​ mysql数据库默认执行增删改就会提交事务 ​ 我们可以设置为 手动提交 begin 或者 start transaction; 事务的特征 ​ ACID原则: ​ 原子性 ​ 事...

weixin_48370579的博客 324

【小宁学习日记6 PCB】电路原理图

本文系统讲解了电子硬件设计中原理图的阅读与绘制技巧。首先剖析原理图的四大核心要素(元件符号、连接线、结点、注释),强调注释对可读性的重要性。然后提出三步读懂法:查看图纸信息、分模块分析、结合芯片手册验证,并列举5个典型芯片案例(CH224K、CH343P等)进行实战解析。最后给出6条绘制规范:模块化布局、详细标注、规范命名、信号流布局、符号封装匹配、版本管理。文章指出原理图是电子设计的"地基",掌握规范阅读与绘制方法能大幅提升设计效率,避免常见错误。新手应从开源项目分析和简单电路绘制入手

qq_74376834的博客 2352

[Linux外设驱动详解]RK3588 U-Boot网络功能深度分析

本文深入分析了RK3588平台上U-Boot的网络功能实现,主要内容包括: 网络架构:详细剖析了从硬件层到协议层的完整网络栈架构,包括GMAC驱动、TFTP/NFS启动、网络命令等关键组件。 驱动实现:重点介绍了RK3588 GMAC驱动结构,包含关键数据结构、专用操作函数集、设备树兼容性配置和GRF寄存器设置。 功能实现:详细说明了驱动初始化流程、RGMII速度适配机制以及PHY接口配置过程。 高级特性:涵盖了网络启动功能、镜像更新和MAC地址传递到Linux内核的机制。 文档通过代码片段和流程图清晰展示

Just Linux! 1113

后台学习三---数据库操作

1.前言知道前后台如何交互之后,我们来讲讲对数据库的操作,对数据的操作无非增删改查四种,我们用mybatis-generator逆向生成映射及表之后,就可以用生成的相应函数进行操作。2.数据库接口2.1 生成的函数讲解自动生成的映射,包含以下六种数据库接口函数 int deleteByPrimaryKey(Integer id); int insert(User record);

lxfHaHaHa的博客 5088

rk3576 适配以太网(百兆)

百兆以太网,也常被称为快速以太网,是一种在1990年代中期推出的计算机网络技术标准。它相当于把当时主流的10兆以太网速度提升了10倍,最高能提供 100 Mbps 的传输速率,让文件共享、视频传输等网络应用变得流畅许多。它在数据链路层面完全保留了传统以太网的帧格式和MAC机制,这意味着现有的网络软件可以无缝对接,用户从10兆网络升级到百兆网络时,通常只需要更换网卡和集线器/交换机即可,非常方便。 在rk3576平台上,原生以太网接口支持百兆、千兆,还有pcie转换的2.5G。

weixin_35723192的博客 203

java 数据库 primarykey_Spring Boot集成Mybatis实现数据库操作

1. 引言在项目开发中, 我们经常需要使用数据库操作, 而针对Java开发中的数据库持久化技术和框架包括:基础JDBC、JPA、MyBatis、Hibernate等。 近期接手一个项目开发工作, 使用Spring Boot + Mybatis技术进行开发, 现就Spring Boot与Mybatis集成的相关配置与操作记录做一下记录。1.1 开发环境JDK 1.8Intellij IDEA 201...

weixin_30514003的博客 381

C#串口通信从入门到精通(27)——高速通信下解决数据处理慢的问题(20ms以内)

本文介绍如何在高速通信情况下解决串口接收的数据来不及处理的问题,由高级工程师多年经验总结而成,绝对是串口领域的实战经验!

qq_34059233的博客 6808

MyBatis Generator 无法生成 selectByPrimaryKey、updateByPrimaryKey、deleteByPrimaryKey等主键操作方法

  SpringBoot 项目采用 MyBatis Generator 插件为表 tbl_onl_test 生成 Mapper 文件时,发现生成的文件比以往少了 selectByPrimaryKey、updateByPrimaryKey、deleteByPrimaryKey 等几个方法,对应的 xml 文件中同样也少了这几个,并且 xml 文件中的 resultMap 节点里主键 id 使用的是 result 标签,而不是id标签,现象如下所示。   tbl_onl_test 表结构: CREATE TAB

长安明月的博客 2389

UG\NX二次开发 替换部件引用集UF_ASSEM_replace_refset

替换部件引用集UF_ASSEM_replace_refset,需要替换成“完整部件(Entire Part)”需要第三个参数传入空指针或者空字符串。

王牌飞行员_里海的博客 255

Java项目:驾校预约学习系统(java+SpringBoot+Mybaits+Vue+elementui+mysql)

项目介绍 基于Springboot+vue实现的驾校预约学习系统 系统包含用户、教练、管理员三个角色 用户:登录、注册、主页、查看考试信息(进行考试)、查看教练信息、教练预约、查看学习资料、收藏学习资料、留言板、公告信息查看、个人中心、考试记录、错题本等功能 教练:登录、个人中心、公告信息管理、教练预约管理、留言板管理、学习资料管理、试卷管理、试题管理等功能 管理员:登录、个人中心、教练管理、用户管理、公告信息管理、教练预约管理、留言板管理、学习资料管理、试卷管理、试题管理、考试管理、基础数据管理、

常年被追砍的博客 497

visio安装包

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

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Java项目:合同管理系统(java+SpringBoot+Mybaits+Vue+elementui+mysql)

项目介绍 基于Springboot+vue实现的合同管理系统 系统包含用户和管理员两个角色 管理员: 用户管理:管理用户注册、登录、权限设置等,确保系统用户的安全性和合规性。 基础数据管理:维护部门、职位、角色等基础数据,确保数据的准确性和一致性。 公告信息管理:发布与合同管理相关的通知、公告和更新信息,促进信息共享和传播。 留言管理:查看并处理用户的留言,解决用户的问题、收集反馈意见。 轮播图信息管理:设置和更新前台门户的轮播图,展示重要的合同信息、公告或宣传内容。 合同管理:负责合同的起草、审批、

m0_66863468的博客 1481

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Java项目:在线答疑系统(java+SpringBoot+Mybaits+Vue+elementui+mysql)

项目介绍 基于Springboot + vue实现的在线答疑系统 本系统包含学生、教师、管理员三个角色。 学生角色: 1.注册、登录功能:学生可以通过系统完成注册和登录操作,进入学生专属界面。 2.个人信息修改功能:学生可以查看和修改自己的个人信息,包括姓名、联系方式等。 3.问题发布功能:学生可以在线发布学习中遇到的问题,并等待教师或其他学生的解答。 4.查看疑难解答功能:学生可以查看针对复杂问题的深度讨论和解答,加深对知识点的理解。 5.参与考试功能:学生可以在规定的时间内完成在线考试,系

m0_66863468的博客 1309

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Java项目:智能无人仓库管理(java+SpringBoot+Mybaits+Vue+elementui+mysql)

项目介绍 基于Springboot + vue实现的智能无人仓库管理 本系统包含管理员、员工两个个角色。 管理员:创建管理员账户、编辑管理员账户、删除管理员账户、分配管理权限、记录员工出勤、分配工作任务、监控员工工作效率、进行绩效评估、查看补货提醒、审批补货申请、维护基础数据。 员工:查看个人操作记录、完成任务、提交补货提醒。 环境需要 1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。

常年被追砍的博客 510

mybatis 原理流程图示、Springboot mybaits 梳理 -分析记录

纯 Mybatis 操作时: public class MybatisUtil { private static SqlSessionFactory sqlSessionFactory; static { InputStream inputStream = null; try { //读取全局配置xml inputStream = Resources.getResourceAsStream("mybatis-c.

何xiao树 1849

Java项目:幼儿园管理系统(java+SpringBoot+Mybaits+Vue+elementui+mysql)

项目介绍 基于Springboot + vue实现的幼儿园管理系统 本系统包含管理员、教师、家长三个个角色。 管理员:用户管理、教师管理、幼儿信息管理、班级信息管理、工作日志管理、会议记录管理、待办事项管理、职工考核管理、请假信息管理、缴费信息管理、儿童体检管理、资源信息管理、原料信息管理、菜谱信息管理。 教师:登录系统、查看教学进度、查看幼儿信息、查看班级情况、记录工作日志、整理会议内容、管理待办事项、参与职工考核、处理请假信息和缴费信息。 家长:幼儿请假管理、查看缴费信息、查看菜谱信息。

常年被追砍的博客 785

Springboot+mybaits中遇到的问题

一、Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required 网上的说法统一都是:Mybatis3依赖的jar包"mybatis-spring-1.2.0.jar"这个版本以及以上的版本中,对SqlSessionDaoSupport类中的'sqlSessionFactory'或'sqlSessionTemplate'注入方...

桔子大大 1711

试搭SpringBoot+MyBaits+MySql,简单实现

写在前面:作为一只菜鸡,搬完砖就知道摸鱼,也不知道学习,也不知道学啥。身后的大佬说让看下SpringBoot,然后+mybaits,然后+缓存,实现简单CRUD的操作,说从网上down一个模板能跑起来也行,也算是给一个学习的方向吧。然后我就开始弄,怕会忘记记录下。 用的idea2018.1,intellij idea自己有springboot的插件,吹捧一波。我要开始上图了,我做的时候也是这...

bug的abc 435

Java项目:雪具商城系统(java+SpringBoot+Mybaits+Vue+elementui+mysql)

项目介绍 基于Springboot + vue实现的雪具销售系统 角色:管理员、用户两种角色,分为前后台; 管理员角色:销售员管理、用户管理、雪具分类管理、雪具商品管理、进货记录管理、退货记录管理、系统管理。 普通用户角色:前台门户浏览、个人信息修改、雪具商品购买、订单查询、退货申请等功能。 环境需要 1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.硬件环境:win

常年被追砍的博客 340

SpringBoot连接PostgreSql三层架构实现增删改:构建高效的后端服务

SpringBoot连接PostgreSql三层架构实现增删改:构建高效的后端服务 去发现同类优质开源项目:https://gitcode.com/ 在当今快速发展的技术领域,高效的后端服务是任何应用程序成功的关键。本文将为您详细介绍一个开源项目——SpringBoot连接PostgreSql三层架构实现增删改,帮助您轻松构建稳健且易于维护的后端系统。 项目介绍 SpringBoot连接Postg...

gitblog_06756的博客 334

Java项目:心理咨询评估系统(java+SpringBoot+Mybaits+Vue+elementui+mysql)

项目介绍 基于Springboot + vue实现的学生心理咨询评估系统 系统有管理员和用户。 管理员可以管理个人中心,用户管理,试题管理,试卷管理,考试管理等。 用户参加考试。 环境需要 1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 4.数据库:MySql 5.7/8.0版本均可; 5.

m0_66863468的博客 522

Java项目:汽车服务管理系统(java+SpringBoot+Mybaits+Vue+elementui+mysql)

项目介绍 基于Springboot + vue实现的汽车服务管理系统 本系统包含管理员、员工、用户(客户)三个角色,本项目分为前后台。 管理员角色:用户管理、员工管理、部门信息管理、岗位信息管理、汽车品牌管理、热销汽车管理、订单信息管理、配件分类管理、汽车配件管理、配件订单管理、售后信息管理、潜在客户管理。 员工角色:个人信息维护、订单处理、配件订单处理、售后信息记录。 用户(客户)角色:前台门户访问、订单信息查询、售后支持获取。 环境需要 1.运行环境:最好是java jdk 1.8,我们在这

常年被追砍的博客 679
上一篇: SpringBoot 学习记录(一): 简单web项目
下一篇: SpringBoot 学习记录(三): jpa
小小小爬虫
博客等级 码龄10年 16粉丝 61原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值