SpringBoot 集成 Mybatis

SpringBoot 集成 Mybatis 详细教程

(只有操作,没有理论,仅供参考学习)

一、操作部分

1. 准备数据库

1.1 数据库版本:

C:\WINDOWS\system32>mysql -V
mysql  Ver 8.0.25 for Win64 on x86_64 (MySQL Community Server - GPL)

1.2 启动 mysql 服务:

C:\WINDOWS\system32>net start mysql
The MySQL service is starting..
The MySQL service was started successfully.

1.3 新创建数据库 spring,并创建一个 user 表,user 表详情:

Column Name 		Datatype		PrimaryKey 		Unique
id     				  INT				√			  √
username			  VARCHAR(45)	
password			  VARCHAR(45)	

如下图:

在这里插入图片描述

2. 创建工程

2.1 使用 spring 官网页面创建工程(其他亦可),链接:Spring Initializr 创建 SpringBoot 工程,如下图:

在这里插入图片描述

2.2 用 IDEA 打开工程:

在这里插入图片描述

2.3 配置项目的 maven 环境:
File -> Setting... -> Maven

在这里插入图片描述
2.4 导入依赖 pom.xml 文件:

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.1</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
            <version>8.0.25</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>

注意点:由于我的项目运行有报错的原因,我把项目的版本调整了一下:
修正前:

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.13</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

修正后:

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.2</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

配置完成后完整的 pom.xml 文件

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.2</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.buzl</groupId>
    <artifactId>main</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>main</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.1</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
            <version>8.0.25</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

2.5 配置数据库连接文件 application.properties

注意点
第一行的数据库要修改为自己的数据库名称,我的数据库名称是 spring,根据实际需求更改
第二行和第三行是连接数据库的用户名和密码,根据实际需求更改
第四行是数据库的驱动,使用 com.mysql.cj.jdbc.Driver 还是 com.mysql.jdbc.Driver 按需更改
第五行是 mybatis mapper 文件路径,我的文件路径是:resources/mapper/UserMapper.xml,按需更改

spring.datasource.url=jdbc:mysql://localhost:3306/spring?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&useSSL=false
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
mybatis.mapper-locations=classpath:mapper/*.xml

2.6 创建 User.java 实体类

public class User {

    /**
     * 主键 id
     */
    private Integer id;

    private String username;

    private String password;
    
    public User(Integer id, String username, String password) {
        this.id = id;
        this.username = username;
        this.password = password;
    }

    /**
     * 重写 toString 方法
     * @return
     */
    @Override
    public String toString() {
        return "User{" +
                "id = " + id +
                "\t username = " + username +
                "\t password = " + password +
                "}";
    }
    // set and get method ...
}

2.7 创建 UserMapper 接口

@Mapper // 表示这是一个 Mybatis 的 mapper 类
@Repository
public interface UserMapper {

    @Autowired
    int insertUser(User user);
    
    @Autowired
    int deleteByPrimaryKey(Integer id);
    
    @Autowired
    User selectByPrimaryKey(Integer id);
    
    @Autowired
    int updateUserByPrimaryKey(User user);
    
    @Autowired
    List<User> selectAll();
    
}

2.8 创建 UserMapper 控制器

@RestController
@RequestMapping("/mybatis")
public class UserConroller {

    @Resource
    private UserMapper userMapper;

    @GetMapping("/selectAll")
    public List<User> selectAll() {
        List<User> userList = userMapper.selectAll();
        return userList;
    }

    @GetMapping("/selectByPrimaryKey")
    public User selectByPrimaryKey() {
        User user = userMapper.selectByPrimaryKey(111);
        return user;
    }

    @GetMapping("/insertSelective")
    public String insertUser() {
        User user = new User(123, "梅花", "pwd123");
        userMapper.insertUser(user);
        return "insert data to database success!";
    }

    @GetMapping("/updateByPrimaryKeySelective")
    public String updateUserByPrimaryKey() {
        Integer id = 123;
        User user = new User(id, "刘备", "pwd666");
        userMapper.updateUserByPrimaryKey(user);
        return "database updated success!";
    }

    @GetMapping("/deleteByPrimaryKey")
    public String deleteByPrimaryKey() {
        Integer id = 123;
        userMapper.deleteByPrimaryKey(id);
        return "delete database success!";
    }

}

2.6 UserMapper.xml 文件

注意点id 的值要和 UserMapper 接口的函数名称对应上
如:

 xml 文件 id 的值 selectAll 名字和 UserMapper 接口中的函数名一一对应
xml 文件:
<select id="selectAll" resultType="com.buzl.main.entity.User">

UserMapper 接口函数:
@Autowired
List<User> selectAll();
<?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.buzl.main.mapper.UserMapper">

    <!--共通属性抽出-->
    <sql id="Base_Column_List">
        id,username,password
    </sql>

    <!--查询数据库中所有的数据-->
    <select id="selectAll" resultType="com.buzl.main.entity.User">
        <!--select * from spring.user-->
        select <include refid="Base_Column_List" /> from spring.user
    </select>

    <!--通过 id 查询数据-->
    <select id="selectByPrimaryKey" resultType="com.buzl.main.entity.User">
        select <include refid="Base_Column_List" /> from spring.user where id=#{id}
    </select>

    <!--向数据库中插入数据-->
    <insert id="insertUser" parameterType="com.buzl.main.entity.User">
        insert into spring.user(<include refid="Base_Column_List" />) values(#{id},#{username},#{password})
    </insert>

    <!--更新数据库中的数据-->
    <update id="updateUserByPrimaryKey" parameterType="com.buzl.main.entity.User">
        update spring.user set username=#{username},password=#{password} where id=#{id}
    </update>

    <!--通过 id 删除数据-->
    <delete id="deleteByPrimaryKey" parameterType="Integer">
        delete from spring.user where id=#{id}
    </delete>

</mapper>

二、代码部分

1. 项目目录结构:

在这里插入图片描述

2. User 实体类

package com.buzl.main.entity;

/**
 * 实体类
 *
 * @author buzenglai@gmail.com
 * @data 2023-07-10
 */
public class User {

    /**
     * 主键 id
     */
    private Integer id;

    private String username;

    private String password;

    public Integer getId() {
        return id;
    }

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

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public User(Integer id, String username, String password) {
        this.id = id;
        this.username = username;
        this.password = password;
    }

    /**
     * 重写 toString 方法
     * @return
     */
    @Override
    public String toString() {
        return "User{" +
                "id = " + id +
                "\t username = " + username +
                "\t password = " + password +
                "}";
    }

}

3. UserController 控制器类

package com.buzl.main.controller;

import com.buzl.main.mapper.UserMapper;
import com.buzl.main.entity.User;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import java.util.List;

/**
 * controller 实现
 *
 * @author buzenglai@gmail.com
 * @data 2023-07-10
 */
@RestController
@RequestMapping("/mybatis")
public class UserConroller {

    @Resource
    private UserMapper userMapper;

    /**
     * 查询数据操作
     *
     * @return
     */
    @GetMapping("/selectAll")
    public List<User> selectAll() {
        List<User> userList = userMapper.selectAll();
        System.out.println("数据库中所有的 user 数据 :" + userList);
        return userList;
    }

    /**
     * 通过 id 查询操作
     *
     * @return
     */
    @GetMapping("/selectByPrimaryKey")
    public User selectByPrimaryKey() {
        User user = userMapper.selectByPrimaryKey(111);
        System.out.println("通过 id 查询出来的 user : " + user);
        return user;
    }

    /**
     * 插入数据
     *
     * @return
     */
    @GetMapping("/insertSelective")
    public String insertUser() {
        User user = new User(123, "梅花", "pwd123");
        userMapper.insertUser(user);
        System.out.println("user :" + user + " 被成功插入数据库");
        return "insert data to database success!";
    }

    /**
     * 更新数据
     *
     * @return
     */
    @GetMapping("/updateByPrimaryKeySelective")
    public String updateUserByPrimaryKey() {
        Integer id = 123;
        User user = new User(id, "刘备", "pwd666");
        userMapper.updateUserByPrimaryKey(user);
        System.out.println("数据库中 id = " + id + " 的数据已经被更新了");
        return "database updated success!";
    }

    /**
     * 删除数据
     *
     * @return
     */
    @GetMapping("/deleteByPrimaryKey")
    public String deleteByPrimaryKey() {
        Integer id = 123;
        userMapper.deleteByPrimaryKey(id);
        System.out.println("数据库中 id = " + id + " 的 user 数据已经被删除了");
        return "delete database success!";
    }

}

4. UserMapper 接口

package com.buzl.main.mapper;

import com.buzl.main.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 接口类
 *
 * @author buzenglai@gmail.com
 * @data 2023-07-10
 */
@Mapper // 表示这是一个 Mybatis 的 mapper 类
@Repository
public interface UserMapper {

    /**
     * 向数据库中插入一条数据
     *
     * @param user
     * @return
     */
    @Autowired
    int insertUser(User user);

    /**
     * 通过主键 id 删除数据
     *
     * @param id
     * @return
     */
    @Autowired
    int deleteByPrimaryKey(Integer id);

    /**
     * 通过主键 id 删除数据库中的数据
     *
     * @param id
     * @return
     */
    @Autowired
    User selectByPrimaryKey(Integer id);

    /**
     * 通过主键 id 更新数据库中的数据
     *
     * @param user
     * @return
     */
    @Autowired
    int updateUserByPrimaryKey(User user);

    /**
     * 查询数据库中所有的数据
     *
     * @return
     */
    @Autowired
    List<User> selectAll();

}

5. UserMapper.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.buzl.main.mapper.UserMapper">

    <!--共通属性抽出-->
    <sql id="Base_Column_List">
        id,username,password
    </sql>

    <!--查询数据库中所有的数据-->
    <select id="selectAll" resultType="com.buzl.main.entity.User">
        <!--select * from spring.user-->
        select <include refid="Base_Column_List" /> from spring.user
    </select>

    <!--通过 id 查询数据-->
    <select id="selectByPrimaryKey" resultType="com.buzl.main.entity.User">
        select <include refid="Base_Column_List" /> from spring.user where id=#{id}
    </select>

    <!--向数据库中插入数据-->
    <insert id="insertUser" parameterType="com.buzl.main.entity.User">
        insert into spring.user(<include refid="Base_Column_List" />) values(#{id},#{username},#{password})
    </insert>

    <!--更新数据库中的数据-->
    <update id="updateUserByPrimaryKey" parameterType="com.buzl.main.entity.User">
        update spring.user set username=#{username},password=#{password} where id=#{id}
    </update>

    <!--通过 id 删除数据-->
    <delete id="deleteByPrimaryKey" parameterType="Integer">
        delete from spring.user where id=#{id}
    </delete>

</mapper>

6. 数据库连接配置文件:

spring.datasource.url=jdbc:mysql://localhost:3306/spring?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&useSSL=false
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
mybatis.mapper-locations=classpath:mapper/*.xml

7. pom.xml 文件:

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.2</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.buzl</groupId>
    <artifactId>main</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>main</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <!--springboot 集成 mybatis,导入依赖-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.1</version>
        </dependency>
        <!--mysql 驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
            <version>8.0.25</version>
        </dependency>
        <!--jdbc连接数据库-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

三、测试

使用 ApiFox 工具进行测试(用浏览器也是一样)

  1. 查询数据库中所有的数据:

在这里插入图片描述

  1. 通过 id 查询数据库中的数据:

在这里插入图片描述

  1. 向数据库中插入数据:

在这里插入图片描述

在这里插入图片描述

  1. 通过 id 更改数据库中的数据

在这里插入图片描述

在这里插入图片描述

  1. 通过 id 删除数据库的数据
    在这里插入图片描述
    在这里插入图片描述
  2. 控制台打印信息:
数据库中所有的 user 数据 :[User{id = 111	 username = 张三	 password = pwd111}, User{id = 222	 username = 李四	 password = pwd222}]
数据库中所有的 user 数据 :[User{id = 111	 username = 张三	 password = pwd111}, User{id = 222	 username = 李四	 password = pwd222}]
通过 id 查询出来的 user : User{id = 111	 username = 张三	 password = pwd111}
user :User{id = 123	 username = 梅花	 password = pwd123} 被成功插入数据库
数据库中所有的 user 数据 :[User{id = 111	 username = 张三	 password = pwd111}, User{id = 123	 username = 梅花	 password = pwd123}, User{id = 222	 username = 李四	 password = pwd222}]
数据库中 id = 123 的数据已经被更新了
数据库中所有的 user 数据 :[User{id = 111	 username = 张三	 password = pwd111}, User{id = 123	 username = 刘备	 password = pwd666}, User{id = 222	 username = 李四	 password = pwd222}]
数据库中 id = 123 的 user 数据已经被删除了
数据库中所有的 user 数据 :[User{id = 111	 username = 张三	 password = pwd111}, User{id = 222	 username = 李四	 password = pwd222}]

这是结束标志,结束了 ~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/37669.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PyTorch深度学习实战(5)——计算机视觉

PyTorch深度学习实战&#xff08;5&#xff09;——计算机视觉 0. 前言1. 图像表示2. 将图像转换为结构化数组2.1 灰度图像表示2.2 彩色图像表示 3 利用神经网络进行图像分析的优势小结系列链接 0. 前言 计算机视觉是指通过计算机系统对图像和视频进行处理和分析&#xff0c;利…

笔记本电脑清灰换硅脂

文章目录 一、完整过程0.准备工具1.拆笔记本后盖2.洗手擦干断电3.清理部件浮尘4.拆风扇5.拆散热模具6.换硅脂7.装回去 二、图片 一、完整过程 0.准备工具 拆机螺丝刀、硅脂、撬片/撬棒、毛刷、气吹、卫生纸。 正常电脑是十字螺丝&#xff0c;推荐刀头使用 PH00 或 PH0。 1.拆…

基于单片机的智能太阳能手机充电器的设计与实现

功能介绍 以STM32/51单片机作为主控系统&#xff1b;LCD1602液晶显示当前电压值&#xff1b;太阳能电池板采集当前光照转换为电能&#xff0c;然后TP4056锂电池充放电模块给锂电池进行充电&#xff0c;充完后自动断电&#xff0c;防过充&#xff1b;通过CE8301模块对锂电池电压…

1-4 架构师所需要具备的技术栈与能力

架构师所需要具备的技术栈与能力 全局图解 全局图解

CSS整段文字缩进(一段多行文字中首列位置相对应)

<style>p {text-align: justify;padding-left: 2em;} </style>

学习系统编程No.28【多线程概念实战】

引言&#xff1a; 北京时间&#xff1a;2023/6/29/15:33&#xff0c;刚刚更新完博客&#xff0c;目前没什么状态&#xff0c;不好趁热打铁&#xff0c;需要去睡一会会&#xff0c;昨天睡的有点迟&#xff0c;然后忘记把7点到8点30之间的4个闹钟关掉了&#xff0c;恶心了我自己…

基于单片机智能饮水机加热系统的设计与实现

功能介绍 以51单片机作为主控系统&#xff1b;LCD1602液晶显示当前水温&#xff0c;定时提醒&#xff0c;水量变化DS18B20检测当前水体温度&#xff1b;水位传感器检测当前水位&#xff1b;继电器驱动加热片进行水温加热&#xff1b;定时提醒喝水&#xff0c;蜂鸣器报警&#x…

Java-通过IP获取真实地址

文章目录 前言功能实现测试 前言 最近写了一个日志系统&#xff0c;需要通过访问的 IP 地址来获取真实的地址&#xff0c;并且存到数据库中&#xff0c;我也是在网上看了一些文章&#xff0c;遂即整理了一下供大家参考。 功能实现 这个是获取正确 IP 地址的方法&#xff0c;可…

【css】用css样式快速写右上角badge徽标,颜色设置为渐变色

先看效果展示&#xff0c;已公开显示在图片卡片的右上角。 首先是dom代码&#xff1a;需要两个view或者div&#xff0c;public-badge是“已公开”那个矩形&#xff0c;show-signal是右边那个下三角&#xff0c;也就是阴影部分&#xff0c;这样看起来比较有立体感。 <view…

LabVIEW-实现波形发生器

一、题目 用两种方法实现一种多类型信号波形发生器&#xff08;至少包括&#xff1a;正弦波、三角波、方波等&#xff09;&#xff0c;可以调节信号频率、幅度、相位等参数&#xff0c;可以图形化显示信号波形。 需要给出产生信号波形的基本方法、程序设计基本方法以及程序实现…

云计算的学习(二)

二、计算虚拟化 1.计算虚拟化的介绍 1.1虚拟化简介 a.什么是虚拟化 将物理设备逻辑化&#xff0c;转化成文件或者文件夹&#xff0c;这个文件或文件夹一定包含两个部分&#xff1a;一部分用于记录设备配置信息&#xff0c;另一部分记录用户数据。 虚拟机摆脱了服务器的禁锢…

性能测试工具 Jmeter 测试 JMS (Java Message Service)/ActiveMQ 性能

目录 前言 ActiveMQ 介绍 准备工作 编写jndi.properties添加到ApacheJMeter.jar 中 下载 ActiveMQ 配置 Jmeter 进行测试 点对点 (Queues 队列) 配置 Jmeter 进行测试 发布/订阅 (Topic 队列) 配置发布 Publisher 配置订阅 Subscriber 总结 前言 JMeter是一个功能强大…

全方位对比 Postgres 和 MySQL (2023 版)

根据 2023 年 Stack Overflow 调研&#xff0c;Postgres 已经取代 MySQL 成为最受敬仰和渴望的数据库。 随着 Postgres 的发展势头愈发强劲&#xff0c;在 Postgres 和 MySQL 之间做选择变得更难了。 如果看安装数量&#xff0c;MySQL 可能仍是全球最大的开源数据库。 Postgre…

Windows环境下安装Nacos

文章目录 一、什么是Nacos1. 主要特点&#xff1a;1.1 服务发现和注册&#xff1a;1.2 配置管理&#xff1a;1.3 服务管理&#xff1a;1.4 多语言支持&#xff1a;1.5 高可用性和扩展性&#xff1a; 二、Windows下安装单机版Nacos1. 安装包下载&#xff1a;2. 目录文件说明&…

冒泡排序模拟实现qsort()函数

冒泡排序模拟实现qsort函数 前言1. 分析2. 解决一&#xff0c;如何接受不同数据3. 解决二&#xff0c;如何实现不同数据的比较4. 解决三&#xff0c;如何实现不同数据交换5. 模拟bubble_sort&#xff08;&#xff09;函数排序整型所有代码实现6. 结构体排序实现7. 结尾 前言 要…

Android Studio无法打开问题解决记录

目录 1 问题起因2 发现问题3 解决问题 1 问题起因 问题的起因是我为了运行一个Kotlin项目&#xff0c;但是报了一个错误&#xff1a; Kotlin报错The binary version of its metadata is 1.5.1, expected version is 1.1.16 然后我就上百度去搜了以下&#xff0c;一篇博客让禁用…

http-server 的安装与使用

文章目录 问题背景http-server简介安装nodejs安装http-server开启http服务http-server参数 问题背景 打开一个文档默认使用file协议打开&#xff0c;不能发送ajax请求&#xff0c;只能使用http协议才能请求资源&#xff0c;所以此时我们需要在本地建立一个http服务&#xff0c…

低代码在边缘计算工业软件中的应用

近年来&#xff0c;边缘计算给工业现场带来了许多新的变化。由于计算、储存能力的大幅提升&#xff0c;边缘计算时代的新设备往往能够胜任多个复杂任务。另外&#xff0c;随着网络能力的提升&#xff0c;边缘设备与设备之间、边缘设备与工业互联网云平台之间的通讯延迟与带宽都…

Android手写占位式插件化框架之Activity通信、Service通信和BroadcastReceiver通信

前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下"通俗易懂&#xff0c;风趣幽默"&#xff0c;感觉非常有意思,忍不住分享一下给大家。 &#x1f449;点击跳转到教程 前言&#xff1a; 1、什么是插件化&#xff1f; 能运行的宿主APP去加载没有下载的APK文件…

SAP从放弃到入门系列之生产订单拆分

文章目录 一、概述二、订单拆分功能前世今生三、订单拆分不同版本的差异3.1 版本 603 以下的订单拆分3.2 自604 起版本的订单拆分 四、订单拆分实例4.1 数据准备4.2 拆分操作-到仓库的分解&#xff08;SPLT_OS&#xff09;4.2 拆分操作-到其他物料的分解&#xff08;SPLT_DP&am…