SpringBoot整合JPA

一·        运行效果如下

二        项目结构图

三        代码

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>
    <groupId>com.example</groupId>
    <artifactId>Chapter03</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>Chapter03</name>
    <description>Chapter03</description>
    <properties>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <spring-boot.version>2.6.13</spring-boot.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <scope>runtime</scope>
        </dependency>

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

    </dependencies>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>${spring-boot.version}</version>
                <configuration>
                    <mainClass>com.example.chapter03.Chapter03Application</mainClass>
                    <skip>true</skip>
                </configuration>
                <executions>
                    <execution>
                        <id>repackage</id>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

</project>

application.properties


server.port=8080

 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

spring.datasource.name=defaultDataSource

spring.datasource.url=jdbc:mysql://localhost:3306/data?serverTimezone=UTC&characterEncoding=utf-8&useSSL=false

spring.datasource.username=root
spring.datasource.password=123456

#spring.jpa.open-in-view=false

spring.jpa.show-sql=true
spring.jpa.database=mysql
spring.jpa.hibernate.ddl-auto=update

我所使用的数据库是Mysql

以下是每个属性的含义:

server.port=8080:设置应用程序的端口号为8080。
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver:指定使用的数据库驱动程序类。
spring.datasource.name=defaultDataSource:设置数据源的名称。
spring.datasource.url=jdbc:mysql://localhost:3306/data?serverTimezone=UTC&characterEncoding=utf-8&useSSL=false:指定数据库连接URL,这里使用的是MySQL数据库。
spring.datasource.username=root:指定数据库用户名。
spring.datasource.password=123456:指定数据库密码。
spring.jpa.show-sql=true:设置是否在控制台上显示SQL语句。
spring.jpa.database=mysql:指定使用的数据库类型。
spring.jpa.hibernate.ddl-auto=update:指定Hibernate在启动时对数据库进行DDL操作的策略。

总体而言,这些配置属性用于设置应用程序的端口号、数据库连接、数据库类型和Hibernate的DDL操作策略。您可以根据您的应用程序需要进行适当的配置。

Student类

package com.example.chapter03.Student;

import javax.persistence.*;
import java.time.LocalDate;
@Table(name="Student")
@Entity
public class student {
    public Integer getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

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

    public String getStu_number() {
        return stu_number;
    }

    public void setStu_number(String stu_number) {
        this.stu_number = stu_number;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public LocalDate getBirthday() {
        return birthday;
    }

    public void setBirthday(LocalDate birthday) {
        this.birthday = birthday;
    }

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name="id")
    private Integer id;

    @Column(name="name")
    private String name;

    @Column(name="stu_number")
    private String stu_number;

    @Column(name="age")
    private Integer age;

    @Override
    public String toString() {
        return "student{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", stu_number='" + stu_number + '\'' +
                ", age=" + age +
                ", birthday=" + birthday +
                '}';
    }

    @Column(name="birthday")
    private LocalDate birthday;

}

@Id注释简析

@Id是Java Persistence API (JPA) 中的一个注解,用于指定实体类中的属性作为数据库表的主键。它可以在实体类的属性上使用,用于标识该属性为主键。

@Id注解可以与@GeneratedValue注解结合使用,用于指定主键的生成策略。常见的主键生成策略包括自增长、UUID、序列等。通过使用@Id和@GeneratedValue注解,可以自动为主键生成唯一的值。

@Id注解的使用要求:

主键属性不能为null。
主键属性应该具有唯一性,不能重复。
主键属性的类型可以是基本数据类型(如int、long),也可以是字符串、日期等。

在持久化操作中,主键的作用非常重要。通过使用@Id注解,可以标识出实体类中的某个属性作为主键,并指定主键的生成策略。这样,JPA框架能够自动处理主键的生成和维护,简化了开发人员的工作。同时,主键的存在也在数据库层面保证了数据的完整性和唯一性。

@GenerateValue注释简析

@GenerateValue注释是一个自定义注解,它用于Java编程语言中的值生成。它用于标记在运行时动态生成值的方法或字段。该注解提供了一种方便和一致的方式来指示一个值不是硬编码的,而是以编程方式生成的。

当@GenerateValue应用于一个方法时,通常意味着该方法返回的是一个动态生成的值,而不是一个固定的值。这在需要基于某些条件或计算生成值的场景中非常有用。

例如,考虑一个名为generateRandomNumber()的方法,它生成一个指定范围内的随机数。通过将@GenerateValue应用于该方法,清楚地表明该方法返回的值不是常量,而是动态生成的。

同样,当@GenerateValue应用于一个字段时,意味着该字段的值不是固定的,而是在运行时生成的。这在需要根据其他变量或外部因素计算字段值的场景中非常有用。

总的来说,@GenerateValue注释通过明确表示一个值是动态生成的而不是硬编码的方式,有助于提高代码的可读性和可维护性。它还有助于理解被注解代码的目的和行为。

@Table注释简析

@Table是Java Persistence API (JPA) 中的一个注解,用于指定实体类与数据库表之间的映射关系。它可以在实体类上使用,用于定义该实体类在数据库中的表的特性。

@Table注解可用于指定数据库表的名称、模式、索引、唯一约束等属性。通过使用@Table注解,可以自定义实体类与数据库表之间的映射关系,从而实现持久化操作。

常用的@Table注解属性包括:

name:指定数据库表的名称,默认为实体类的名称。
schema:指定数据库表的模式,默认为空。
indexes:指定数据库表的索引,默认为空。
uniqueConstraints:指定数据库表的唯一约束,默认为空。

@Table注解在JPA中扮演着重要的角色,它定义了实体类与数据库表之间的映射关系,使得开发人员可以方便地进行对象持久化操作。同时,通过使用@Table注解,可以灵活地定义数据库表的结构,满足不同的业务需求。

@Override注释简析

@Override是Java中的一个注解,用来标识子类中的方法覆盖了父类中的方法。在面向对象的编程中,方法的覆盖是一种多态的实现方式,可以使子类根据自己的需求重新定义父类中的方法。

@column注释简析

@Column是Java Persistence API (JPA) 中的一个注解,用于指定实体类属性与数据库表中的列之间的映射关系。它可以在实体类的属性上使用,用于定义该属性在数据库表中的列的特性。

@Column注解可用于指定数据库表中的列的名称、数据类型、长度、是否允许为空、是否唯一等属性。通过使用@Column注解,可以自定义实体类属性与数据库表列之间的映射关系,从而实现持久化操作。

常用的@Column注解属性包括:

name:指定数据库表中列的名称,默认为属性名。
nullable:指定列是否允许为空,默认为true。
unique:指定列是否唯一,默认为false。
length:指定列数据类型的长度,默认为255。
precision:指定列的精度,用于数值类型,默认为0。
scale:指定列的小数位数,用于数值类型,默认为0。
columnDefinition:指定列的自定义数据库类型,例如可以指定为VARCHAR(100)。
updatable:指定列是否可更新,默认为true。
insertable:指定属性是否插入数据库,默认为true。

@Column注解在JPA中扮演着重要的角色,它定义了实体类属性与数据库表列之间的映射关系,使得开发人员可以方便地进行对象持久化操作。同时,通过使用@Column注解,可以灵活地定义数据库表的结构,满足不同的业务需求。

StudentRepository类

package com.example.chapter03.Student;

//import org.springframework.data.domain.Example;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

//import java.util.List;

@Repository
public interface StudentRepository extends JpaRepository<student,Integer> {
   // List<student>findByName(String name);
}

@Repository注释简析

@Repository注释是Spring框架的注解之一,它用于将一个类标记为数据访问层(DAO)组件。该注释的作用是将数据访问相关的异常自动转换为Spring的数据访问异常类型。

@Repository注释通常被应用于用于数据库操作的类上,比如与数据库交互的DAO类或Repository类。它与Spring的依赖注入和事务管理相关联,可以让Spring自动管理数据库操作的依赖和事务。

通过将@Repository注释应用于一个类,Spring框架会自动检测到该类,并将其注册为一个可被依赖注入的组件。这样,在其他需要使用该类的地方,可以通过依赖注入的方式获得该类的实例。

另外,@Repository注释还提供了一种异常转换机制。当在@Repository注释标记的类中发生数据访问相关的异常时,Spring会将这些异常转换为Spring框架自定义的数据访问异常类型(例如,DataAccessException)。这样,应用程序可以更好地处理和处理这些异常,并且可以与Spring的其他数据访问功能进行无缝集成。

总的来说,@Repository注释是Spring框架中用于标记数据访问层组件的注释,它实现了依赖注入和异常转换的功能,方便地将数据库操作的实现类纳入到Spring容器中,并提供了更好的异常处理和集成能力。

Chapter03ApplicationTests类

package com.example.chapter03;

import com.example.chapter03.Student.StudentRepository;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.domain.*;
import com.example.chapter03.Student.student;
import org.springframework.stereotype.Component;
import org.springframework.test.annotation.Rollback;
//import org.springframework.test.context.junit4.SpringRunner;

//import javax.persistence.criteria.CriteriaBuilder;
import javax.transaction.Transactional;
import java.time.LocalDate;
import java.util.List;
import java.util.Optional;

@Transactional
@Component
@SpringBootTest
class Chapter03ApplicationTests {

    @Autowired
    private StudentRepository studentRepository;

    @Test
    @Rollback(value = false)
    void testInsert() {
        student student = new student();
        student.setId(5);
        student.setAge(100);
        student.setBirthday(LocalDate.now());
        student.setName("Yangan");
        student.setStu_number("12345678");
        studentRepository.save(student);
    }

    @Rollback(value = false)
    @Test

    void testSelect(){
        Optional<student> optional = studentRepository.findById(1);
        if (optional.isPresent()) {
            student student = optional.get();
            System.out.println(student);
        } else {
        System.out.println("记录不存在"); } }

    @Rollback(value = false)
    @Test
    void testUpdate(){
        student student =new student();
        student.setId(2);
        student.setAge(2);
        student.setStu_number("12345678");
        student.setBirthday(LocalDate.now());
        studentRepository.save(student);
    }

    @Rollback(value = false)
    @Test
    void testDelete(){

        //studentRepository.deleteById(1);

        Optional<student> optional = studentRepository.findById(1);
        if (optional.isPresent()) {
            studentRepository.deleteById(1);
        } else {
            System.out.println("记录不存在");
        }
    }

    @Rollback(value = false)
    @Test
    void testPage(){
        PageRequest pageRequest= PageRequest.of(0,1);
        Page<student> studentPage=studentRepository.findAll(pageRequest);
        List<student>studentList=studentPage.getContent();
        System.out.println(studentList);
    }

    @Rollback(false)
    @Test
    void testExample(){
        student student =new student();
        student.setStu_number("12345678");
        Example<student> example=Example.of(student);
        List<student> studentList=studentRepository.findAll(example);
        System.out.println(studentList);

    }
}

@Transactional注释简析

@Transactional注释是Spring框架的注解之一,用于将一个方法或类标记为事务处理的区域。该注释的作用是告诉Spring框架在方法或类中启用事务管理,以保证在执行期间的数据一致性和事务的正确性。

@Transactional注释可以应用于方法级别和类级别。当应用于方法上时,表示该方法需要在事务的上下文中执行。当应用于类上时,表示该类的所有方法都需要在事务的上下文中执行。

使用@Transactional注释时,可以指定一些参数来配置事务的属性,例如事务的隔离级别、传播行为、只读性等。这些参数可以根据具体的业务需求来灵活配置,以实现不同的事务控制方案。

通过@Transactional注释,Spring框架会在运行时为被注释的方法或类创建一个代理对象,并在方法调用前后进行事务的开启、提交或回滚操作。这样,在方法执行过程中,如果发生异常,事务将会回滚,保证数据的一致性。

总的来说,@Transactional注释是Spring框架中用于标记事务处理的注释,它可以应用于方法和类上,通过提供参数配置来控制事务的属性。使用该注释,可以方便地实现对数据库操作的事务管理,确保数据的一致性和事务的正确性。

@Component注释简析

@Component注释是Spring框架的注解之一,用于标记一个类为Spring的组件。被@Component注释的类会被Spring框架扫描并注册为一个Bean,可以通过ApplicationContext或Autowired注释进行依赖注入和使用。

@Component注释可以用于任何类,包括普通的Java类、控制器、服务类和数据访问对象等。通过使用@Component注释,可以将这些类纳入到Spring的上下文管理中,方便进行管理和使用。

@Component注释有一些特殊的派生注释,例如@Repository、@Service和@Controller。这些注释是@Component的扩展,用于更细粒度地标记不同类型的组件,以便在代码中更好地区分它们的角色和功能。

被@Component注释的类在Spring容器中被创建为单例对象,并可以通过@Autowired注释或其他注释进行依赖注入。Spring会在启动时扫描被@Component注释的类,并将它们实例化并管理起来,使得可以在应用程序的不同部分中共享和使用这些组件。

总的来说,@Component注释是Spring框架中用于标记一个类为Spring组件的注释。被@Component注释的类会被Spring扫描并注册为Bean,可以进行依赖注入和使用。通过使用@Component注释,可以将类纳入到Spring的上下文管理中,方便进行管理和使用。

@SpringBootTest注释简析

@SpringBootTest注释是Spring Boot框架的注释之一,用于测试类上,表示这是一个Spring Boot的集成测试类。被@SpringBootTest注释的类可以使用Spring Boot的自动配置和依赖注入等功能,以实现对应用程序的整体测试。

@SpringBootTest注释会启动Spring Boot应用程序的完整上下文,包括所有的配置和Bean。它会自动加载应用程序的主配置类,并根据配置创建一个模拟的应用程序环境。这个环境与实际应用程序的环境类似,但更加适合测试。

@SpringBootTest注释提供了一组方便的工具和功能,用于编写集成测试。例如,可以使用@AutoConfigureMockMvc注释来自动配置并注入一个MockMvc实例,用于模拟HTTP请求并进行测试。还可以使用@MockBean注释来模拟依赖的Bean,并定义它们的行为。

被@SpringBootTest注释的测试类可以使用Spring Boot的自动配置和依赖注入等功能,因此可以方便地进行集成测试。可以通过注入依赖的Bean,调用其方法并断言其返回值,以验证应用程序的行为是否正确。

总的来说,@SpringBootTest注释是Spring Boot框架中用于标记一个集成测试类的注释。被@SpringBootTest注释的测试类可以使用Spring Boot的自动配置和依赖注入等功能,方便进行集成测试。它提供了一组方便的工具和功能,用于编写和执行集成测试。

@Test注释简析

@Test注释是JUnit测试框架中的一个注释,用于标识一个测试方法。当一个方法使用@Test注释进行标记时,JUnit将会将其识别为一个测试用例,并执行该方法。简而言之,@Test注释用于定义一个单元测试方法。

使用@Test注释的方法应满足以下条件:
1. 方法必须是公共的(public)。
2. 方法不能返回任何值,并且不能接受任何参数。
3. 方法必须使用void关键字进行声明。

除了上述条件外,@Test注释还可以使用一些可选的属性来定制测试行为。一些常用的属性包括:
timeout:指定测试方法的超时时间,单位为毫秒。如果方法执行时间超过指定的超时时间,则测试将被认为失败。
expected:指定方法抛出的异常类型。如果方法抛出了指定的异常,则测试将被认为成功,否则将被认为失败。

使用@Test注释可以帮助开发人员编写可靠的单元测试并提供测试结果的可视化反馈。

@Rollback注释简析

@Rollback注释是Spring测试框架中的一个注释,用于控制测试方法在数据库事务中的回滚行为。当一个测试方法被标记为@Rollback(true)时,测试框架将在测试方法结束后回滚数据库操作,即撤销对数据库的更改。相反,当一个测试方法被标记为@Rollback(false)时,测试框架将不会回滚数据库操作,即保留对数据库的更改。

默认情况下,Spring测试框架会自动开启事务并在测试方法结束后回滚数据库操作,以确保每个测试方法都在一个干净的数据库环境中运行。这样做的好处是,每个测试方法都是独立的,不会受其他测试方法的影响。

使用@Rollback注释可以控制是否在测试方法结束后回滚数据库操作,从而实现一些特殊的测试需求。例如,当需要验证一些数据库操作是否正确时,可以标记@Rollback(false),以便在测试方法结束后查看数据库的实际更改情况。

使用@Rollback注释可以灵活控制测试方法对数据库的影响,同时确保测试方法的独立性。

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

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

相关文章

2024 年(第 12 届)“泰迪杯”数据挖掘挑战赛——A 题:生产线的故障自动识别与人员配置具体思路以及源代码分析

一、问题背景 随着新兴信息技术的大规模应用&#xff0c;工业生产线的智能化控制技术日益成熟。自动生产线 可以自动完成物品传送、物料填装、产品包装和质量检测等过程&#xff0c;极大地提高了生产效率和 产品质量&#xff0c;减少了生产成本。自动生产线融入故障智能报警…

【Spring Boot 源码学习】深入应用上下文初始化器实现

《Spring Boot 源码学习系列》 深入应用上下文初始化器实现 一、引言二、往期内容三、主要内容3.1 spring-boot 子模块中内置的实现类3.1.1 ConfigurationWarningsApplicationContextInitializer3.1.2 ContextIdApplicationContextInitializer3.1.3 DelegatingApplicationConte…

FFmpeg-aac、h264封装flv及时间转换

文章目录 时间概念流程api核心代码 时间概念 dts: 解码时间戳, 表示压缩帧的解码时间 pts: 显示时间戳, 表示将压缩帧解码后得到的原始帧的显示时间 时间基: time_base &#xff0c; 通常以ms为单位 时间戳: timestamp , 多少个时间基 真实时间&#xff1a;time_base * timest…

email + celery+django 异步发送邮件功能的实现

主要流程&#xff1a; django通过发件服务器到收件服务器&#xff0c;最后到收件人 邮件配置设置需要打开SMTP/IMAP并获的授权码&#xff0c;完成授权功能实现发送给收件人 邮件配置请参考另一博客https://blog.csdn.net/qq_44238024/article/details/136277821 项目结构树…

mac下Appuim环境安装

参考资料 Mac安装Appium_mac电脑安装appium-CSDN博客 安卓测试工具&#xff1a;Appium 环境安装&#xff08;mac版本&#xff09;_安卓自动化测试mac环境搭建-CSDN博客 1. 基本环境依赖 1 node.js 2 JDK&#xff08;Java JDK&#xff09; 3 Android SDK 4 Appium&#x…

数据分析 | Matplotlib

Matplotlib 是 Python 中常用的 2D 绘图库&#xff0c;它能轻松地将数据进行可视化&#xff0c;作出精美的图表。 绘制折线图&#xff1a; import matplotlib.pyplot as plt #时间 x[周一,周二,周三,周四,周五,周六,周日] #能量值 y[61,72,66,79,80,88,85] # 用来设置字体样式…

Linux进程管理:(六)SMP负载均衡

文章说明&#xff1a; Linux内核版本&#xff1a;5.0 架构&#xff1a;ARM64 参考资料及图片来源&#xff1a;《奔跑吧Linux内核》 Linux 5.0内核源码注释仓库地址&#xff1a; zhangzihengya/LinuxSourceCode_v5.0_study (github.com) 1. 前置知识 1.1 CPU管理位图 内核…

如何用Selenium通过Xpath,精准定位到“多个相同属性值以及多个相同元素”中的目标属性值

前言 本文是该专栏的第21篇,后面会持续分享python爬虫干货知识,记得关注。 相信很多同学,都有使用selenium来写爬虫项目或者自动化页面操作项目。同样,也相信很多同学在使用selenium来定位目标元素的时候,或多或少遇见到这样的情况,就是用Xpath定位目标元素的时候,页面…

Mysql主从之keepalive+MySQL高可用

一、Keepalived概述 keepalived 是集群管理中保证集群高可用的一个服务软件&#xff0c;用来防止单点故障。 keepalived 是以VRRP 协议为实现基础的&#xff0c;VRRP 全称VirtualRouter Redundancy Protocol&#xff0c;即虚拟路由冗余协议。虚拟路由冗余协议&#xff0c;可以…

launchctl及其配置、使用、示例

文章目录 launchctl 是什么Unix / Linux类似的工具有什么哪个更常用配置使用常用子命令示例加载一个 launch agent:卸载一个 launch daemon:列出所有已加载的服务:启动一个服务:停止一个服务:禁用一个服务:启用一个服务: 附com.example.myagent.plist内容有趣的例子参考 launch…

力扣L15--- 67.二进制求和(JAVA版)-2024年3月17日

1.题目描述 2.知识点 注1&#xff1a; 二进制用 %2 /2 3.思路和例子 采用竖位相加的方法 4.代码实现 class Solution {public String addBinary(String a, String b) {StringBuilder sbnew StringBuilder();int ia.length()-1;int jb.length()-1;int jinwei0;int digit1,d…

快速排序(数据结构)

1. 前言&#xff1a; 这两种排序经常使用&#xff0c;且在算法题中经常遇见。 这里我们简单分析讨论一下。 1. 快速排序 平均时间复杂度&#xff1a;O&#xff08;nlogn&#xff09; 最坏时间复杂度&#xff1a; O&#xff08;n^2&#xff09; 1.1. 左右向中遍历: 取最右侧4…

Multiplicity - 用一个键盘和鼠标控制多台电脑

Multiplicity 是一款用于多台电脑间控制的软件。通过这个工具&#xff0c;用户可以轻松地在多个计算机之间共享剪贴板、鼠标、键盘和显示屏幕。这样&#xff0c;无需每台电脑之间频繁切换&#xff0c;工作效率也会大大提高。 特征 远程PC访问 无缝控制过渡 兼容所有显示类型…

【Linux杂货铺】进程的基本概念

目录 &#x1f308;前言&#x1f308; &#x1f4c1;进程的概念 &#x1f4c2;描述进程-PCB &#x1f4c2; 查看进程 &#x1f4c2; 查看正在运行的程序 &#x1f4c2;杀死进程 &#x1f4c2;通过系统调用获取进程标识符 &#x1f4c2;通过系统调用创建进程 &#x1f…

万界星空科技商业开源MES,技术支持+项目合作

商业开源的一套超有价值的JAVA制造执行MES系统源码 亲测 带本地部署搭建教程 教你如何在本地运行运行起来。 开发环境&#xff1a;jdk11tomcatmysql8springbootmaven 可以免费使用&#xff0c;需要源码价格便宜&#xff0c;私信我获取。 一、系统概述&#xff1a; MES制造执…

机器学习(26)回顾gan+文献阅读

文章目录 摘要Abstract一、李宏毅机器学习——GAN1. Introduce1.1 Network as Generator1.2 Why distribution 2. Generative Adversarial Network2.1 Unconditional generation2.2 Basic idea of GAN 二、文献阅读1. 题目2. abstract3. 网络架构3.1 Theoretical Results 4. 文…

学习数据结构和算法的第16天

单链表的实现 链表的基本结构 #pragma once #include<stdio.h> #include<stlib.h> typedf int SLTDataType; typedy struct SListNode {SLTDataType data;struct SListNode*next; }SLTNode;void Slisprint(SLTNode*phead); void SListPushBack(SLTNode**pphead,S…

使用 VS Code + Github 搭建个人博客

搭建个人博客的方案 现在&#xff0c;搭建个人博客的方式有很多&#xff0c;门槛也很低。 可以选择已有平台&#xff1a; 掘金语雀知乎简书博客园SegmentFault… 也可以选择一些主流的博客框架&#xff0c;自行搭建。 HexoGitBookVuePressdumi… 如何选择&#xff1f; 我…

每日五道java面试题之mybatis篇(三)

目录&#xff1a; 第一题. MyBatis的框架架构设计是怎么样的?第二题. 为什么需要预编译?第三题. Mybatis都有哪些Executor执行器&#xff1f;它们之间的区别是什么&#xff1f;第四题. Mybatis中如何指定使用哪一种Executor执行器&#xff1f;第五题. Mybatis是否支持延迟加载…

如何学习一个大型分布式Java项目

前言 很多同学在没有实习经验的时候看到一个多模块分布式项目总是有一种老虎吃天的无力感&#xff0c;就像我刚毕业去到公司接触项目的时候一样&#xff0c;模块多的夸张&#xff0c;想学都不知道从哪开始学&#xff0c;那么我们拿到一份代码后如何从头开始学习一个新项目呢。…