当前位置: 首页 > news >正文

【MyBatis-Plus】 学习记录 常用功能及代码生成器使用

文章目录

    • 1. 环境准备
    • 2. 创建基础实体类
    • 3. 编写 Mapper 接口
    • 4. Service 层
    • 5. 控制器层
    • 6. 分页功能
    • 7. 条件构造器
    • 8. 配置乐观锁
    • 9. 常见问题
    • 10. 代码生成器
      • 1. 创建数据库表
      • 2. 引入依赖
      • 3. 配置数据库连接
      • 4. 编写代码生成器
      • 5. 运行代码生成器
      • 6. 查看生成的代码


MyBatis-Plus 是一个在 MyBatis 基础上进行增强的持久层框架,主要目标是简化开发,减少重复代码。

1. 环境准备

依赖添加
首先在你的项目中添加 MyBatis-Plus 的相关依赖。

如果是 Maven 项目,pom.xml 中添加以下依赖:

<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>最新版本号</version>
</dependency>

其他依赖(如 MySQL):

<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.27</version>
</dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>

配置数据库
application.yml 中配置你的数据库连接信息:

spring:datasource:url: jdbc:mysql://localhost:3306/mybatis_plus?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghaiusername: rootpassword: your_passworddriver-class-name: com.mysql.cj.jdbc.Driver
mybatis-plus:mapper-locations: classpath:/mapper/**/*.xml

2. 创建基础实体类

假设我们有一个 User 表:

CREATE TABLE user (id BIGINT(20) NOT NULL AUTO_INCREMENT,name VARCHAR(30) DEFAULT NULL,age INT(11) DEFAULT NULL,email VARCHAR(50) DEFAULT NULL,PRIMARY KEY (id)
);

对应的实体类 User.java

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;@Data
@TableName("user")
public class User {@TableIdprivate Long id;private String name;private Integer age;private String email;
}
  • @TableName:用于指定数据库表名,若类名与表名一致可以省略。
  • @TableId:标识主键。

3. 编写 Mapper 接口

创建一个 UserMapper 接口,继承 MyBatis-Plus 提供的 BaseMapper

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;@Mapper
public interface UserMapper extends BaseMapper<User> {
}

MyBatis-Plus 会自动生成常用的 CRUD 方法,常见方法如下:

  • insert()
  • deleteById()
  • updateById()
  • selectById()
  • selectList()

4. Service 层

为了更好地管理业务逻辑,可以创建 Service 层。MyBatis-Plus 提供了 IServiceServiceImpl 作为基础类。

import com.baomidou.mybatisplus.extension.service.IService;public interface UserService extends IService<User> {
}

实现类:

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
}

ServiceImpl 类提供了基本的增删改查功能。

5. 控制器层

编写控制器层来处理客户端的请求:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;import java.util.List;@RestController
@RequestMapping("/user")
public class UserController {@Autowiredprivate UserService userService;// 查询所有用户@GetMapping("/list")public List<User> list() {return userService.list();}// 根据ID查询用户@GetMapping("/{id}")public User getById(@PathVariable("id") Long id) {return userService.getById(id);}// 新增用户@PostMapping("/add")public boolean add(@RequestBody User user) {return userService.save(user);}// 修改用户@PutMapping("/update")public boolean update(@RequestBody User user) {return userService.updateById(user);}// 删除用户@DeleteMapping("/delete/{id}")public boolean delete(@PathVariable("id") Long id) {return userService.removeById(id);}
}

6. 分页功能

MyBatis-Plus 提供了简单的分页功能,只需添加 Page 参数即可。

依赖:

<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>最新版本</version>
</dependency>

Controller 中添加分页查询:

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;@RestController
@RequestMapping("/user")
public class UserController {@Autowiredprivate UserService userService;// 分页查询@GetMapping("/page")public Page<User> page(@RequestParam(defaultValue = "1") int current,@RequestParam(defaultValue = "10") int size) {Page<User> page = new Page<>(current, size);return userService.page(page);}
}

7. 条件构造器

MyBatis-Plus 提供了非常强大的条件构造器 QueryWrapper,可用于复杂查询。

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;@GetMapping("/search")
public List<User> search(@RequestParam String name, @RequestParam Integer age) {QueryWrapper<User> queryWrapper = new QueryWrapper<>();queryWrapper.like("name", name).eq("age", age);return userService.list(queryWrapper);
}

8. 配置乐观锁

乐观锁可以通过版本号字段实现。首先在实体类中添加 @Version 注解。

import com.baomidou.mybatisplus.annotation.Version;@Data
@TableName("user")
public class User {@TableIdprivate Long id;private String name;private Integer age;private String email;@Versionprivate Integer version;
}

然后在 application.yml 中启用乐观锁插件:

mybatis-plus:configuration:optimistic-locker: true

9. 常见问题

  1. MyBatis-Plus 自定义 SQL 查询
    如果需要自定义 SQL,可以在 UserMapper 接口中添加注解或者编写 XML 文件:

    @Select("SELECT * FROM user WHERE age > #{age}")
    List<User> selectByAge(@Param("age") Integer age);
    
  2. 事务管理
    可以通过 Spring 的 @Transactional 注解来管理事务。

    @Transactional
    public boolean saveUser(User user) {return userService.save(user);
    }
    

MyBatis-Plus 极大简化了数据库操作的开发工作,提供了 CRUD 方法、分页、条件构造器、乐观锁等常用功能,同时也可以支持自定义 SQL 查询。

10. 代码生成器

下面是一个详细的 MyBatis-Plus 代码生成器教程,从创建数据库表开始,到生成代码的步骤:

1. 创建数据库表

首先,你需要在你的数据库中创建一个表。例如,我们创建一个名为 user 的表:

CREATE DATABASE mybatis_plus_db CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;USE mybatis_plus_db;CREATE TABLE user (id BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',name VARCHAR(50) NOT NULL COMMENT '用户名',age INT(11) DEFAULT NULL COMMENT '年龄',email VARCHAR(100) DEFAULT NULL COMMENT '邮箱',PRIMARY KEY (id)
) COMMENT='用户表';

2. 引入依赖

在你的 Maven 项目的 pom.xml 中添加 MyBatis-Plus 和代码生成器的依赖:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.example</groupId><artifactId>mybatis-plus-demo</artifactId><version>1.0-SNAPSHOT</version><properties><maven.compiler.source>21</maven.compiler.source><maven.compiler.target>21</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><slf4j.version>1.7.36</slf4j.version></properties><dependencies><!-- MyBatis-Plus 核心包 --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.2</version></dependency><!-- MyBatis-Plus 代码生成器 --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.5.2</version></dependency><dependency><groupId>org.apache.velocity</groupId><artifactId>velocity-engine-core</artifactId><version>2.3</version> <!-- 或者根据需求使用最新的版本 --></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>${slf4j.version}</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-simple</artifactId><version>${slf4j.version}</version></dependency><!-- MySQL 驱动 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.27</version></dependency></dependencies></project>

3. 配置数据库连接

application.ymlapplication.properties 中配置你的数据库连接:

spring:datasource:url: jdbc:mysql://localhost:3306/mybatis_plus_db?useSSL=false&serverTimezone=UTCusername: your_usernamepassword: your_passworddriver-class-name: com.mysql.cj.jdbc.Driver

4. 编写代码生成器

在你的项目中创建一个新的 Java 类,例如 CodeGenerator,用来生成代码:

package com.example;import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;
import com.baomidou.mybatisplus.generator.engine.VelocityTemplateEngine;
import com.baomidou.mybatisplus.generator.fill.Column;import java.sql.Types;
import java.util.Collections;public class CodeGenerator {public static void main(String[] args) {FastAutoGenerator.create("jdbc:mysql://localhost:3306/mybatis_plus_db" +"?useUnicode=true&characterEncoding=UTF-8" +"&useSSL=true&serverTimezone=Asia/Shanghai","root", "password123")// 全局配置.globalConfig(builder -> {builder.author("username")// 代码生成后不打开文件夹.disableOpenDir()// 时间日期格式,默认为 "yyyy-MM-dd".commentDate("yyyy-MM-dd HH:mm:ss")// 文件生成位置.outputDir(System.getProperty("user.dir") + "/src/main/java");})// 包配置.packageConfig(builder -> {// 包路径builder.parent("com.example")// entity 命名(controller/service/mapper 一样适用).entity("pojo")// 路径配置信息.pathInfo(Collections.singletonMap(OutputFile.xml,System.getProperty("user.dir") + "/src/main/resources/com/username/MybatisPlus"));})// 策略配置.strategyConfig(builder -> {// 精准添加生成代码的表(也可以进行模糊匹配 like/模糊排除表 noLike/精准排除 addExclude)builder.addInclude("user", "user_id_card")// 实体类配置.entityBuilder()// 开启 lombok 生成 @Getter@Setter.enableLombok()// 字段注解.enableTableFieldAnnotation()// 雪花算法.idType(IdType.ASSIGN_ID)// 表字段自动填充.addTableFills(new Column("created_time", FieldFill.INSERT)).addTableFills(new Column("modified_time", FieldFill.INSERT_UPDATE)).build()// 控制器配置.controllerBuilder().enableRestStyle().mapperBuilder().build();})// 使用默认 Velocity 引擎模板生成代码.templateEngine(new VelocityTemplateEngine()).execute();}
}

5. 运行代码生成器

确保你已连接到数据库,并在你的 IDE 中运行 CodeGenerator 类。生成的代码会自动输出到你指定的目录(如 src/main/java)。

6. 查看生成的代码

src/main/java 目录下,你会看到生成的实体类、Mapper 接口、Service 接口及其实现类、Controller 等文件。

相关文章:

【MyBatis-Plus】 学习记录 常用功能及代码生成器使用

文章目录 1. 环境准备2. 创建基础实体类3. 编写 Mapper 接口4. Service 层5. 控制器层6. 分页功能7. 条件构造器8. 配置乐观锁9. 常见问题10. 代码生成器1. 创建数据库表2. 引入依赖3. 配置数据库连接4. 编写代码生成器5. 运行代码生成器6. 查看生成的代码 MyBatis-Plus 是一个…...

HalconDotNet实现OCR详解

文章目录 一、基于字符分割的 OCR二、基于模板匹配的 OCR三、基于深度学习的 OCR四、基于特征提取的 OCR五、基于区域建议的 OCR 一、基于字符分割的 OCR 字符分割是 OCR 中的一个重要步骤。首先&#xff0c;对包含文本的图像进行预处理&#xff0c;如去噪、二值化等操作&#…...

手搓一个Agent#Datawhale 组队学习Task3

书接上回&#xff0c;首先回顾一下Task2的一些补充&#xff1a; Task2主要任务是从零预训练一个tiny-llama模型&#xff0c;熟悉一下Llama的模型架构和流程。然后测试一下模型的效果。总的来说&#xff0c;因为某些未知的原因&#xff0c;loss一直没有降下去&#xff0c;导致最…...

基于SpringBoot+Vue+MySQL的在线酷听音乐系统

系统展示 用户前台界面 管理员后台界面 系统背景 随着互联网技术的飞速发展&#xff0c;网络已成为人们日常生活中不可或缺的一部分。在线音乐服务因其便捷性和丰富性&#xff0c;逐渐成为用户获取音乐内容的主要渠道。然而&#xff0c;传统的音乐播放平台往往存在歌曲资源有限…...

大数据实时数仓Hologres(一):Hologres 简单介绍

文章目录 Hologres 简单介绍 一、什么是实时数仓 Hologres 二、产品优势 1、专注实时场景 2、亚秒级交互式分析 3、统一数据服务出口 4、开放生态 5、MaxCompute查询加速 6、计算存储分离架构 三、应用场景 搭建实时数仓 四、产品架构 1、Shared Disk/Storage &am…...

【鸿蒙HarmonyOS NEXT】数据存储之分布式键值数据库

【鸿蒙HarmonyOS NEXT】数据存储之分布式键值数据库 一、环境说明二、分布式键值数据库介绍三、示例代码加以说明四、小结 一、环境说明 DevEco Studio 版本&#xff1a; API版本&#xff1a;以12为主 二、分布式键值数据库介绍 KVStore简介&#xff1a; 分布式键值数据库…...

基于springboot+小程序的儿童预防接种预约管理系统(疫苗1)(源码+sql脚本+视频导入教程+文档)

&#x1f449;文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1、项目介绍 本儿童预防接种预约微信小程序可以实现管理员和用户。 1、管理员功能有个人中心&#xff0c;用户管理&#xff0c;儿童信息管理&#xff0c;疫苗信息管理&#xff0c;儿童接种管理&#x…...

计算物理精解【8】-计算原理精解【5】

文章目录 logistic模型多元回归分析多元回归分析概览1. 多元回归的概念与重要性2. 多元回归在实际应用中的例子3. 多元回归在预测和解释数据中的优势和局限性4. 多元回归的优缺点及改进建议 多元线性回归分析详解一、原理二、性质三、计算四、例子与例题五、应用场景六、优缺点…...

【Linux】 tcp | 解除服务器对tcp连接的限制 | 物联网项目配置

一、修改tcp连接限制 1、编辑 vi /etc/sysctl.conf 2、内容 net.ipv4.tcp_keepalive_intvl 75 net.ipv4.tcp_keepalive_probes 9 net.ipv4.tcp_keepalive_time 7200 net.ipv4.ip_local_port_range 1024 65535 net.ipv4.ip_conntrack_max 20000 net.ipv4.tcp_max_tw_bucket…...

如何隐藏Windows10「安全删除硬件」里的USB无线网卡

本方法参照了原文《如何隐藏Windows10「安全删除硬件」里的USB无线网卡》里面的方法&#xff0c;但是文章中的描述我的实际情况不太一样&#xff0c;于是我针对自己的实际情况进行了调整&#xff0c;经过测试可以成功隐藏Windows10「安全删除硬件」里的USB无线网卡。 先说一下…...

【QT Quick】基础语法:导入外部JS文件及调试

在 QML 中&#xff0c;可以使用 JavaScript 来实现业务逻辑的灵活性和简化开发。接下来我们会学习如何导入 JavaScript 文件&#xff0c;并在 QML 中使用它&#xff0c;同时也会介绍如何调试这些 JavaScript 代码。 导入 JavaScript 文件 在 QML 中导入 JavaScript 文件的方式…...

【质优价廉】GAP9 AI算力处理器赋能智能可听耳机,超低功耗畅享未来音频体验!

当今世界&#xff0c;智能可听设备已经成为了流行趋势。随后耳机市场的不断成长起来&#xff0c;消费者又对AI-ANC&#xff0c;AI-ENC&#xff08;环境噪音消除&#xff09;降噪的需求逐年增加&#xff0c;但是&#xff0c;用户对于产品体验的需求也从简单的需求&#xff0c;升…...

用Flutter几年了,Flutter每个版本有什么区别?

用Flutter几年了&#xff0c;你知道Flutter每个版本有什么区别吗&#xff1f;不管是学习还是面试我们可能都需要了解这个信息。 Flutter 每个版本的用法基本都是一样的&#xff0c;每隔几天或者几周就会更新一个版本&#xff0c; 2018 年 12 月 5 日发布了1.x 版本&#…...

解决Qt每次修改代码后首次运行崩溃,后几次不崩溃问题

在使用unique_ptr声明成员变量后&#xff0c;我习惯性地在初始化构造列表中进行如下构造&#xff1a; 注意看&#xff0c;我将m_menuBtnGroup的父类指定为ui->center_menu_widget&#xff0c;这便是导致崩溃的根本原因&#xff0c;解决办法便是先用this初始化&#xff0c;后…...

语言的变量交换

不用第三个变量交换两个变量在面试题或者笔试题中无数次被提到&#xff0c;事实上&#xff0c;有些答案是理论性的&#xff0c;不是准确的。以整型为例&#xff0c;如下对比不同交换方式的差异。 不同的交换方式 利用中间变量c a; 00C02533 8B 45 F8 mov eax,dword ptr [a] 0…...

【muduo源码分析】「阻塞」「非阻塞」「同步」「异步」

欢迎来到 破晓的历程的 博客 ⛺️不负时光&#xff0c;不负己✈️ 文章目录 引言何为「muduo库」安装muduo库阻塞、非阻塞、同步、异步数据准备数据准备 引言 从本篇博客开始&#xff0c;我会陆续发表muduo库源码分析的相关文章。感谢大家的持续关注&#xff01;&#xff01;…...

顶顶通呼叫中心中间件-机器人话术挂机后是否处理完成事件

前言 问题&#xff1a;机器人放音的过程中&#xff0c;如果用户直接挂机就会继续匹配下一个流程&#xff0c;如果匹配上的是放音节点&#xff0c;还会进行放音&#xff0c;那么在数据库表中就会多出一条放音记录。 解决方法 一、话术添加一个全局挂机节点 需要在话术中添加一…...

Springboot Mybatis 动态SQL

动态SQL <?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""https://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace"com.wzb.SqlImprove2024…...

ORM的了解

什么是ORM&#xff1f;为什么要用ORM&#xff1f;-CSDN博客 C高级编程&#xff08;99&#xff09;面向资源的设计思想&#xff08;ORM&#xff09;_c orm-CSDN博客 ORM:Object-Relational-Mapping 对象关系映射 -------------------------- 我想对数据库中的表A进行增删改…...

关于大模型的10个思考

9月28日&#xff0c;第四届“青年科学家50论坛”在南方科技大学举行&#xff0c;美国国家工程院外籍院士沈向洋做了《通用人工智能时代&#xff0c;我们应该怎样思考大模型》的主题演讲&#xff0c;并给出了他对大模型的10个思考。 以下是他10个思考的具体内容&#xff1a; 1…...

CFR( Java 反编译器)---> lambda 表达式底层实现机制

一、安装教程 CFR&#xff08;Class File Reader&#xff09;是一个流行的Java反编译器&#xff0c;它可以将编译后的.class文件或整个.jar文件转换回Java源代码。以下是CFR的下载和使用教程&#xff1a; 下载CFR 访问CFR的官方网站或GitHub仓库&#xff1a;CFR的最新版本和所…...

《C++多态性:开启实际项目高效编程之门》

在 C的广阔编程世界中&#xff0c;多态性是一个强大而富有魅力的特性。它为程序员提供了极大的灵活性和可扩展性&#xff0c;使得代码能够更加优雅地应对复杂的业务需求。在实际项目中&#xff0c;理解和正确应用 C的多态性至关重要&#xff0c;它可以显著提高代码的质量、可维…...

UDS_5_输入输出控制功能单元

目录 一. 0x2F服务 一. 0x2F服务 InputOutputControlByIdentifier(0x2F)服务 用于替换服务器输入信号的值或内部功能控制电子系统的某个输出(执行器) •请求报文 A_Data Byte Parameter Name Cvt Byte Value #1 InputOutputControlByIdentifier Request SID M 0x2F dataI…...

CAD快捷键

CAD快捷键 功能快捷键描述直线L点PO多段线PL多用于描边构造线XL无限长直线射线RAY样条曲线SPL绘制光滑曲线–––圆弧A圆C矩形REC正多边形POL–––填充H圆角F倒角CHA–––打断BR分解X合并J–––创建块B插入块I 功能快捷键描述移动M复制CO擦除E修剪TR延伸EX拉伸S镜像MI偏移…...

Spring6梳理12——依赖注入之注入Map集合类型属性

以上笔记来源&#xff1a; 尚硅谷Spring零基础入门到进阶&#xff0c;一套搞定spring6全套视频教程&#xff08;源码级讲解&#xff09;https://www.bilibili.com/video/BV1kR4y1b7Qc 12 依赖注入之注入Map集合类型属性 12.1 创建Student类和Teacher类 Student类中创建了run…...

基于SpringBoot校园失物招领系统设计与实现

文未可获取一份本项目的java源码和数据库参考。 本课题的作用、意义&#xff0c;在国内外的研究现状和发展趋势&#xff0c;尚待研究的问题 作用&#xff1a;本课题的目的是使失物招领信息管理清晰化&#xff0c;透明化&#xff0c;便于操作&#xff0c;易于管理。通过功能模…...

推荐4款2024年热门的PDF转ppt工具

有时候&#xff0c;我们为了方便&#xff0c;需要将PDF里面的内容直接转换的PPT的格式&#xff0c;既方便自己演示和讲解&#xff0c;也让我们可以更加灵活的进行文件的编辑和修改。如果大家不知道要如何进行操作的话&#xff0c;我可以为大家推荐几个比窘方便实用的PDF转换工具…...

[深度学习]卷积神经网络CNN

1 图像基础知识 import numpy as np import matplotlib.pyplot as plt # 图像数据 #imgnp.zeros((200,200,3)) imgnp.full((200,200,3),255) # 可视化 plt.imshow(img) plt.show() # 图像读取 imgplt.imread(img.jpg) plt.imshow(img) plt.show() 2 CNN概述 卷积层convrelu池…...

从零开始,Docker进阶之路(三):Docker镜像与命令

一、Docker核心名词 镜像文件、容器、仓库 镜像&#xff1a;简单理解为就是一个安装包&#xff0c;里面包含容器所需要运行的基础文件和配置信息&#xff0c;比如&#xff1a;redis镜像、mysql镜像等。 镜像的来源方式&#xff1a; 1.自己做镜像&#xff0c;比如自己开发微服…...

【计算机网络】网络层详解

文章目录 一、引言二、IP 基础知识1、IP 地址2、路由3、IP报文4、IP报文的分片与重组 三、IP 属于面向无连接型四、IP协议相关技术1、DNS2、ICMP3、NAT技术4、DHCP 一、引言 TCP/IP的心脏是网络层。这一层主要由 IP 和 ICMP 两个协议组成。网络层的主要作用是“实现终端节点之…...

个人做短视频网站/百度号码认证平台

...

企业网站推广方案设计毕业设计/如何有效的推广宣传

python中的json解释库有好几个&#xff0c;不同版本使用方法不同。常用有 json-py 与smiplejson 两个包其中&#xff0c;json-py 包含json.py外&#xff0c;还有一个minjson&#xff0c;两者用法上有差别&#xff1a;import一样import json # 都是如此import的。import minjs…...

安丘网站建设开发/seo外包收费

概要 本分步指南介绍了如何在 Windows XP 中使用 Windows 资源管理器命令行参数。 更多信息 使用命令行参数&#xff0c;您既可以自定义 Windows 资源管理器启动时使用的默认视图&#xff0c;也可以指定在从命令提示符启动时所看到的视图。 您可以在 Explorer.exe 命令中使…...

沈阳网站营销推广/b站视频推广的方法有哪些

如何新建PDF格式文件大多数人所接触到的PDF格式文件&#xff0c;大多是其他格式转换而来的&#xff0c;转换成PDF是为了它的安全、兼容、打英传输方便。也因为大多数软件可转换成PDF&#xff0c;如办公软件或各类设计软件。为现时印刷的主流文件格式。要建立一个新的PDF文件怎么…...

深圳网站建设最专业的/企业网站优化关键词

随着plog、vlog等视频形式的兴起&#xff0c;视频添加文字变得越来越流行。与其选择插入音频解说&#xff0c;还不如加文字来得生动有趣。那么&#xff0c;视频添加文字用什么软件&#xff1f;视频添加文字怎么弄&#xff1f;接下来&#xff0c;本文会教大家使用一款简单好用的…...

防邪办网站建设方案文档/windows优化大师好不好

转自&#xff1a;http://www.dearda.com/index.php/archives/380 之前我发布的《SharePoint备份与还原》一文初步探讨了使用SharePoint管理中心备份与还原站点的方法。但是在我实际部署的过程中发现用管理中心做还原并不可靠&#xff01;&#xff08;PS&#xff1a;微软的备份与…...