Part01 ☀️

YangeIT大约 16 分钟AIIOT物联网SpringBoot微信小程序华为云中州养老AIIOT版本JDKIdeaMavenMySQLSpringBootMybatisPlusHtml

Part01 ☀️

课程内容

  • 编程环境安装
    • JDK安装Java运行环境
    • Idea工具安装和配置编码工具
    • 安装Maven以及创建Maven入门工程(0-1工程)构建工具
    • Idea编程插件提高编码速度!
    • 微信小程序开发工具安装
  • Web前端知识
    • html、css、js 🍐
    • 导入微信小程序源代码 🍐
    • Http协议和端口 🍐
    • Tomcat服务器 🍐
  • SpringBoot入门案例和Mybatis入门案例 ✏️ ❤️
    • SpringBoot入门案例

1. 实训编码的环境1

实训编码的环境

image
image

链接:https://pan.baidu.com/s/1jPhvvaLTWATOxJKfqt-PSw?pwd=8848open in new window 提取码:8848 --来自百度网盘超级会员V9的分享

代码操作

🎯1. JDK

  1. JDK是 java 运行环境配置的工具包,能够是 java 程序运行更加方便顺畅,帮助用户进行编程开发时代码数据库调用,

  2. 安装 JDK 是学习 java 程序语言的第一步

  3. JDK 是整个 java 程序的核心,包含 java 运行环境、java 工具和 java 基础类库等,是 java 语言开发工作者必备的工具,让编程更加高效和简单。

  4. 安装和教程如下:

image
image

jdk-11.0.20_windows-x64_bin是JDK11的版本

jdk-8u162-windows-x64.exe是JDK8的版本

  1. 说明:
    • 安装 JDK 后,配置环境变量 JAVA_HOME,并且在cmd窗口中,输入java -version 提示如下图

      验证是否安装JDK,并且配置好环境变量
      验证是否安装JDK,并且配置好环境变量
Java版本列表
Java版本列表
  • Java 现在发布的版本很快,有很多版本,但是真正会被大规模使用的是 3 年一个的 LTS 版本。每 3 年发布一个 LTS(Long-Term Support),长期维护版本。意味着只有Java 8 ,Java 11, Java 17,Java 21 才可能被大规模使用。
  • 企业开发中主流都是使用 jdk8或者JDK11,JDK8的版本是 2014 年发布的,JDK11的版本是 2018 年发布的,JDK17的版本是 2021 年发布的
  • 本项目会使用AI大模型,因此需要安装JDK17以上的版本

🎯 2. Idea

  1. IDEA 全称 IntelliJ IDEA,是 java 编程语言的集成开发环境
  2. IntelliJ 在业界被公认为最好的 Java 开发工具,尤其在AI代码助手、代码自动提示、重构、JavaEE 支持、各类版本工具(git、svn 等)、JUnit(单元测试)、代码分析、 创新UI设计等方面的功能非常好用。
  3. IDEAJetBrains 公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。它的旗舰版还支持 HTML,CSS,PHP,MySQL,Python
image
image
image
image
  1. 安装和教程如下:
2023版本
2023版本

😃 安装任何一个版本都可以,编码都是一样的哦,无非就是新版本的支持的插件稍微多一些,皮肤跟好看一点

  1. 安装注意事项:
  • 安装 idea 后,会提示是否试用,可以选择试用(30 天)
  • 也可以使用免费版(社区版),但是免费版的功能有限

🎯 3. Maven

image
image

Maven 是专门用于管理和构建 Java 项目的工具Java开发几乎必用

官网:https://maven.apache.org/open in new window

安装教程:看焱哥在U盘或者网盘中对应的截图(只有三步哦)

🎯 4. MySQL

mysql的创始人Monty

Monty,是MySQL的CTO和联合创始人,撰写了MySQL95%的服务器端代码。在MySQL以10亿美元的价格被卖给SUN,SUN又被Oracle收购后,MySQL的所有权也落入Oracle的手中。为了保持MySQL的开源使用不受影响,Monty又在2009年创立了MariaDB。

MySQL 是一个关系型数据库管理系统open in new window,由瑞典 MySQL AB 公司开发,属于 Oracle 旗下产品。

  1. MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL 是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。

  2. 项目使用 MySQL5.7或Mysql8.0版本已经安装了,不需要重装

4.1 Mysql安装包

跳转到 顶部的环境、软件安装中下载资料中下载 image

mysql安装后验证
mysql安装后验证

还可以点击查看在线的mysql8.0详细安装教程 👈

🎯 6. 截图贴图软件

Snipaste 是一个简单但强大的贴图工具,同时也可以执行截屏、贴图、标注等功能。

你可以将代码的主要思路和语法,截图贴在屏幕的右上角上,方便你随时查看,提高编码效率

  • 安装方式:压缩包解压缩后,点击启动程序即可使用(右下角会出现图标),不需要安装。
image
image
  • 快捷键:
    • 截屏 :默认为 F1
    • 贴图 :默认为 F3

总结

课堂作业

  1. 参考上述讲义,完成软件和插件的安装!🎤

如果不清楚自己是否装了,可以举手问焱哥

2. 常用插件

常用插件

安装插件前,关闭电脑所有的防火墙

image
image

🎯 MavenHelper

Maven Helperimage 可以帮助我们在 IDEA 中更好地开发 maven 项目,主要功能包括:

  • 更方便地执行 maven 命令;
  • 分析和排除 Maven 冲突;
  • 自定义 Maven goals;
  • 在当前 Module 所在的路径中打开 Terminal;

很方便的调用maven的命令,而不需要点击右侧的栏目

点击查看MavenHelper安装图解open in new window 👈 👈


🎯 MybatisX

image
image

MybatisX 插件可以让我们更方便地使用 Mybatis, 主要功能包括:

  • 关联 Mapper 文件和 xml 文件,并且支持快速跳转;
  • 代码提示;

imageimage

点击查看MybatisX安装图解open in new window


🎯 Lombok

合理地使用 Lombokimage 可以极大程度地简化代码,让代码的可读性更强。 Lombok 插件让 IDEA 拥有兼容 Lombok 的能力。

  • @Slf4j酸辣粉日志注解:方便输出日志
  • @Data注解: 可以免除set和get方法 需要导入依赖:
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.20</version>
</dependency>

点击查看lombok安装图解open in new window

🎯 TongYi

通义灵码,你的智能编码助手。你可以问我关于编码相关的问题,我们一起更高效率、更高质量地完成编码工作

安装界面
安装界面
使用界面
使用界面
使用场景
使用场景

用过的,都说好!👍

🎯 自动导包的设置

导包场景
导包场景

可以这样设置👇

自动导包的设置图图解
自动导包的设置图图解

3. 网络协议、服务器 🍐

web网络知识

web网站的流程1: 👇

web网站的流程1
web网站的流程1
web网站的流程(含ip/协议/端口)
web网站的流程(含ip/协议/端口)


实操1:通过分析浏览器发送的请求,熟悉网络编程三要素 👇 👇

点击查看步骤
  1. 浏览器打开百度
  2. 按住F12或者在设置中,进入开发者工具模式 image
  3. 选择网络或者network tab栏目,然后刷新网站,观察
image
image

如果你找出对应的数据,说明你掌握了http中请求和响应的数据 🎉 🎉🎉🎉

总结

课堂作业

  1. 打开浏览器,访问boss直聘网站,点击F12 将网络编程三要素:协议、ip、端口 标出来,发群里,发的+1分,🎤

完成后,将练习代码截图提交到任务平台,直接作为实训分数!

3. 编程知识回顾

3.1 网页三剑客 🍐

网页三剑客

在学习网页开发之前,需要了解以下概念:

  1. 什么是网页
网页
网页
  1. 什么是HTML
HTML
HTML
  1. 网页的形成

网页是由网页元素组成的,这些元素是利用html标签描述出来的,然后通过浏览器显示给用户的

打开 https://www.bilibili.com/open in new window 观察哔哩哔哩首页的是由哪些元素组成的?依次找出下列标签

  1. a标签,超链接标签;
  2. img标签,图片标签
  3. div标签,布局标签
  4. h1-h3标签,标题标签
  1. CSS样式

HTML仅仅只是做数据的显示,CSS是对页面的修饰,如颜色和位置,背景图片等

  1. JavaScript

HTML仅仅只是做数据的显示,CSS是对页面的修饰,JavaScript控制页面的行为,如点击事件,加载数据,轮播图等

操作:👇

步骤

接下来,使用Idea写一个简单的网页!

  1. 在目录中创建demo.html文件,并使用idea软件打开
  2. 标签:输入常用标签 h1 和 img
  3. 样式:给h1标签的文字,设置为blue 蓝色
  4. 行为:3秒钟后,弹出对话框!内容为:黑马程序员
  1. 在目录中创建demo.html文件,并使用idea软件打开
image
image
定义html结构
定义html结构
  1. 标签:输入常用标签 h1 和 img 标签一般成对哦

注意:修改一处,就用刷新浏览器看看效果

图片地址:http://tuku.yangeit.cn:21012/i/2024/06/30/5619266419079257103.pngopen in new window

  1. 样式:给h1标签的文字,设置为blue 蓝色
  2. 行为:3秒钟后,弹出对话框!内容为:黑马程序员
效果
效果
源码
源码

总结

课堂作业

  1. 参考上述代码,编写一个简单的网页,

完成后,将练习代码截图提交到任务平台,直接作为实训分数!

3.2 面向对象语法回顾

面向对象语法回顾

在util包下创建JavaBasicsDemo类,来回顾面向对象的语法和Java编写常用的语法,具体如下: 0. 输出语句和main方法

  1. 字符串(长度,判断是否为空,包含某个字段,等于某个字符串)
  2. 逻辑判断(if,else)
  3. 集合(ArrayList,for循环)
  4. 面向对象(类,构造函数,方法,get和set方法)
  5. 集合装对象(ArrayList装对象,for循环遍历对象,get和set方法)
  6. 继承和实现

参考代码:👇

public class JavaBasicsDemo {
    public static void main(String[] args) {
        // 0. 输出语句
        System.out.println("Hello, Java Basics!");

        // 字符串操作
        String str = "Hello World";
        System.out.println("字符串长度: " + str.length());
        System.out.println("字符串是否为空: " + str.isEmpty());
        System.out.println("字符串是否包含 'World': " + str.contains("World"));
        System.out.println("字符串是否等于 'Hello World': " + str.equals("Hello World"));

        // 逻辑判断
        int num = 10;
        if (num > 0) {
            System.out.println(num + " 是正数");
        } else if (num < 0) {
            System.out.println(num + " 是负数");
        } else {
            System.out.println(num + " 是零");
        }

        // 集合(ArrayList)操作(存储简单数据类型示例,这里用字符串)
        ArrayList<String> stringList = new ArrayList<>();
        stringList.add("Apple");
        stringList.add("Banana");
        stringList.add("pear");
        System.out.println("遍历字符串集合:");
        for (int i = 0; i < stringList.size(); i++) {
            System.out.println(stringList.get(i));
        }

        // 面向对象 - 集合装对象(ArrayList装Person对象)
        ArrayList<Person> personList = new ArrayList<>();
        personList.add(new Person("Alice", 25));
        personList.add(new Person("Bob", 30));

        System.out.println("遍历Person对象集合:");
        for (int i = 0; i < personList.size(); i++) {
            Person person = personList.get(i);
            System.out.println("姓名: " + person.getName() + ", 年龄: " + person.getAge());
            // 可以尝试修改对象属性(通过set方法)
            person.setName("Tom" + i);
            person.setAge(person.getAge() + 1);
            System.out.println("修改后 - 姓名: " + person.getName() + ", 年龄: " + person.getAge());
        }
    }
}


// 定义一个简单的Java类,包含了属性、构造函数、get和set方法
class Person {
    private String name;
    private int age;

    // 构造函数
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // get方法
    public String getName() {
        return name;
    }

    // set方法
    public void setName(String name) {
        this.name = name;
    }

    // get方法
    public int getAge() {
        return age;
    }

    // set方法
    public void setAge(int age) {
        this.age = age;
    }
}

接着在util包下创建JavaBasicsDemo2类,来回顾继承和实现 等语法,具体如下:


public class JavaBasicsDemo2 {
    public static void main(String[] args) {
        Animal dog = new Dog();
        Animal cat = new Cat();

        dog.makeSound(); // 输出: Dog barks.
        cat.makeSound(); // 输出: Cat meows.

        // 调用从父类继承的方法
        ((Dog) dog).breathe(); // 输出: Mammal is breathing.
        ((Cat) cat).breathe(); // 输出: Mammal is breathing.
    }
}

//接口是一种规范,它定义了一组行为但不提供具体的实现。类可以实现接口,并根据需要来具体实现这些行为。
interface Animal {
    void makeSound(); // 动物发出声音的方法
}

class Mammal {
    public void breathe() {
        System.out.println("Mammal is breathing.");
    }
}
//继承允许一个类(子类)基于另一个类(父类)来构建,子类可以复用父类的属性和方法,并可以重写或扩展功能。
// 子类 Dog 实现接口并继承父类 Mammal
class Dog extends Mammal implements Animal {
    @Override
    public void makeSound() {
        System.out.println("Dog barks.");
    }
}

// 子类 Cat 实现接口并继承父类 Mammal
class Cat extends Mammal implements Animal {
    @Override
    public void makeSound() {
        System.out.println("Cat meows.");
    }
}


接下来完成Stream流操作练习,下面我将演示Java 8 Stream API的各种操作,包括过滤、映射、跳过、限制等常见操作。

  1. 准备工作:创建测试数据 首先创建一个包含学生对象的集合:
class Student {
    private String name;
    private int age;
    private double score;
    private String department;

    public Student(String name, int age, double score, String department) {
        this.name = name;
        this.age = age;
        this.score = score;
        this.department = department;
    }

    // Getters and toString
    public String getName() { return name; }
    public int getAge() { return age; }
    public double getScore() { return score; }
    public String getDepartment() { return department; }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", score=" + score +
                ", department='" + department + '\'' +
                '}';
    }
}

public class StreamPractice {
    public static void main(String[] args) {
        List<Student> students = Arrays.asList(
            new Student("张三", 20, 85.5, "计算机"),
            new Student("李四", 22, 90.0, "数学"),
            new Student("王五", 21, 78.5, "计算机"),
            new Student("赵六", 23, 92.5, "物理"),
            new Student("钱七", 19, 88.0, "数学"),
            new Student("孙八", 20, 76.0, "物理"),
            new Student("周九", 22, 95.0, "计算机"),
            new Student("吴十", 21, 89.5, "数学")
        );
        
        // 下面开始各种Stream操作练习
    }
}

  1. 过滤操作(filter)

filter操作用于筛选集合中的元素,根据指定的条件进行过滤。

// 1. 过滤出计算机系的学生
List<Student> csStudents = students.stream()
    .filter(s -> "计算机".equals(s.getDepartment()))
    .collect(Collectors.toList());
System.out.println("计算机系学生: " + csStudents);

// 2. 过滤出成绩大于85分的学生
List<Student> goodStudents = students.stream()
    .filter(s -> s.getScore() > 85)
    .collect(Collectors.toList());
System.out.println("成绩>85的学生: " + goodStudents);

// 3. 过滤出年龄大于20且成绩大于80的学生
List<Student> age20Score80 = students.stream()
    .filter(s -> s.getAge() > 20 && s.getScore() > 80)
    .collect(Collectors.toList());
System.out.println("年龄>20且成绩>80的学生: " + age20Score80);
  1. 映射操作(map)

map操作用于将一种类型的值转换成另一种类型。

// 1. 提取所有学生姓名
List<String> names = students.stream()
    .map(Student::getName)
    .collect(Collectors.toList());
System.out.println("所有学生姓名: " + names);

// 2. 提取计算机系学生姓名
List<String> csNames = students.stream()
    .filter(s -> "计算机".equals(s.getDepartment()))
    .map(Student::getName)
    .collect(Collectors.toList());
System.out.println("计算机系学生姓名: " + csNames);

// 3. 将学生转换为姓名-成绩字符串
List<String> nameScorePairs = students.stream()
    .map(s -> s.getName() + ": " + s.getScore())
    .collect(Collectors.toList());
System.out.println("姓名-成绩对: " + nameScorePairs);

总结

课堂作业

  1. 参考上述讲义,完成面向对象语法回顾练习,熟悉对象和集合 和Stream流操作!🎤

完成后,将练习代码截图提交到任务平台,直接作为实训分数!