从java到JDBC学习笔记

news2024/11/15 16:40:17

java编写代码入门

1. 简介

  • JDK : Java SE Development Kit Java开发工具

2.第一段代码

main快捷键 msvm加回车

控制台输出 sout+回车

删除一行 Ctrl+y

复制一行 Ctrl+d

空构造器 alt+insert

撤销快捷键 Ctrl+Z

首先输入psvm创建主程序,我们的代码在这里边编写。再输入sout创建输出模块,输出我们的hello java

3.简单基础

1.变量

2.循环

3.分支

4.数组

5.类和对象

1.创建类
2.构造器
3.封装 继承
4.方法重写

4.对比c++语法

不同c++java
主函数int mainpsvm
输出coutsout
数组int arr[]int[] arr
函数voidpublic static void
浮点3.143.14F
长整型..............L
创建类person p()
person p = new person()
继承:public personextends person
虚函数,重写virtual名字一样即可
基类指针取地址直接相等

java异常

Java异常处理是通过使用trycatchfinally, 和throw关键字来实现的。

  1. try

        将可能抛出异常的代码放在try块中。

  1. catch

        当try块中的代码抛出异常时,catch块捕获这个异常并处理。可以有多个catch块来捕获不同类型的异常。

  1. finally(可选):

        无论是否捕获或处理异常,finally块中的代码都会执行。通常用于关闭资源等清理操作。

  1. throw关键字:  

        用途throw关键字用于手动抛出一个异常实例。它通常用在方法体内,用来抛出一个具体的异常对象。

        语法throw后面跟着一个异常对象的实例。这个异常对象可以是Java标准库中的异常类型,也可以是自定义的异常类型。

public class ExceptionExample {
    public static void main(String[] args) {
        try {
            // 尝试执行的代码,可能会抛出异常
            int result = 10 / 0;
        } catch (ArithmeticException e) {
            // 处理特定类型的异常
            System.out.println("发生算术异常: " + e.getMessage());
        } catch (Exception e) {
            // 处理其他类型的异常
            System.out.println("发生异常: " + e.getMessage());
        } finally {
            // 无论是否发生异常,都会执行的代码
            System.out.println("finally块总是被执行。");
        }
        
        // 手动抛出异常
        try {
            throw new Exception("手动抛出的异常");
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }
}

集合

类似c++的stl

Java集合框架提供了一套性能优良、使用方便的接口和类,主要分为两大部分:Collection接口及其实现类和Map接口及其实现类。这些集合类存储的都是对象的引用。

Collection接口

Collection接口是最基本的集合接口,它有以下几个主要子接口:

  • List接口:一个有序的集合,可以包含重复的元素。主要实现类有ArrayListLinkedListVectorList接口的特点是可以精确控制每个元素插入的位置,可以通过索引来访问元素。

  • Set接口:一个不允许有重复元素的集合。主要实现类有HashSetLinkedHashSetTreeSetSet是通过元素的值来确定元素是否相同的,不像List那样通过元素的索引位置。

  • Queue接口:一种用于在处理前保持元素的集合。主要实现类有LinkedListPriorityQueue等。Queue接口支持常规队列的操作,如插入、移除和检查队列的头部元素。

Map接口

Map接口不是Collection的子接口,但它也是集合框架的一部分。Map存储键值对,每个键映射到一个值。

  • HashMap:存储键值对的数据结构,允许使用null值和null键。它不保证映射的顺序。

  • TreeMap:基于红黑树的NavigableMap实现。根据其键的自然顺序或者创建时所提供的Comparator进行排序。

  • LinkedHashMap:类似于HashMap,但它维护着一个运行于所有条目的双重链接列表。此链接列表定义了迭代顺序,通常是插入顺序。

  • Hashtable:和HashMap类似,但它是同步的。不允许null键或null值。

使用场景

  • List:当需要有序集合,可以包含重复元素时使用。
  • Set:当需要唯一元素集合,不允许重复时使用。
  • Queue:当需要支持元素的添加和按一定规则(如FIFO)移除时使用。
  • Map:当需要存储键值对,通过键快速检索数据时使用。

Java集合框架通过提供这些接口和类,极大地简化了集合的处理。

集合例子1

public class book {
    private int bno;
    private  String bname;
    private  String bauthor;

    public book(int bno, String bname, String bauthor) {
        this.bno = bno;
        this.bname = bname;
        this.bauthor = bauthor;
    }

    public book() {
        bno = 0;
        bname = "0";
        bauthor = "0";

    }

    public String getBauthor() {
        return bauthor;
    }

    public void setBauthor(String bauthor) {
        this.bauthor = bauthor;
    }

    public String getBname() {
        return bname;
    }

    public void setBname(String bname) {
        this.bname = bname;
    }

    public int getBno() {
        return bno;
    }

    public void setBno(int bno) {
        this.bno = bno;
    }
}
public class test {
    public static void main(String[] args) {
        ArrayList<book> list = new ArrayList();
        while (true) {//打印菜单
            System.out.println("------欢迎来到书城------");
            System.out.println("1.展示书籍");
            System.out.println("2.上新书籍");
            System.out.println("3.下架书籍");
            System.out.println("4.退出应用");
            //借助scanner类 扫描类
            Scanner sc = new Scanner(System.in);
            System.out.println("请录入你想要执行的功能的序号");
            int choice = sc.nextInt();
            if (choice == 1) {
                System.out.println("展示书籍功能");
                for (int i = 0; i < list.size(); ++i){
                    book b = (book) (list.get(i));
                    System.out.println(b.getBno() + "--" + b.getBname() + "--" + b.getBauthor());
                }
            } else if (choice == 2) {
                System.out.println("上新书籍功能");
                System.out.println("输入编号");
                int bno = sc.nextInt();
                System.out.println("输入书名");
                String bname = sc.next();
                System.out.println("输入作者");
                String bauthor = sc.next();
                book b = new book();
                b.setBno(bno);
                b.setBname(bname);
                b.setBauthor(bauthor);
                list.add(b);
            } else if (choice == 3) {
                System.out.println("下架书籍功能");
                System.out.println("输入下架书籍编号");
                int delete = sc.nextInt();
                for (int i = 0; i < list.size(); ++i){
                    book b = (book) (list.get(i));
                    if (b.getBno() == delete){
                        list.remove(b);
                        System.out.println("书籍下架成功");
                        break;
                    }
                }
            } else if (choice == 4) {
                System.out.println("退出应用功能");
                break;
            }
        }
    }
}

IO流

字节流
  • 输入流InputStream是所有字节输入流的抽象类,常用的实现类有FileInputStream(读取文件数据)、BufferedInputStream(提供缓冲区,提高读取效率)等。
  • 输出流OutputStream是所有字节输出流的抽象类,常用的实现类有FileOutputStream(写数据到文件)、BufferedOutputStream(提供缓冲区,提高写入效率)等。
字符流
  • 输入流Reader是所有字符输入流的抽象类,常用的实现类有FileReader(读取文件中的文本数据)、BufferedReader(提供缓冲区,支持按行读取,提高读取效率)等。
  • 输出流Writer是所有字符输出流的抽象类,常用的实现类有FileWriter(写文本数据到文件)、BufferedWriter(提供缓冲区,提高写入效率)等
输入流输出流

输入流和输出流是IO操作的基本概念。输入流用于从源读取数据,输出流用于向目标写数据。

  • 输入流:用于读取数据,数据源可以是文件、网络连接、内存区域等。
  • 输出流:用于写数据,目标可以是文件、网络连接、内存区域等

io例子 

public class test {
    public static void main(String[] args) throws IOException, ClassNotFoundException {
        Scanner sc = new Scanner(System.in);
        File f = new File("C:\\Users\\57746\\Desktop\\out.txt");
        ArrayList<book> list = new ArrayList();
        while (true) {//打印菜单

            System.out.println("------欢迎来到书城------");
            System.out.println("1.展示书籍");
            System.out.println("2.上新书籍");
            System.out.println("3.下架书籍");
            System.out.println("4.退出应用");
            //借助scanner类 扫描类
            System.out.println("请录入你想要执行的功能的序号");
            int choice = sc.nextInt();
            if (choice == 1) {
                System.out.println("展示书籍功能");

                if (f.exists() == true)
                {
                    FileInputStream fis = new FileInputStream(f);
                    ObjectInputStream ois = new ObjectInputStream(fis);
                    list = (ArrayList<book>) ois.readObject();
                    //读取集合
                    for (book b : list){
                        System.out.println(b.getBno() + "--" + b.getBname() + "--" + b.getBauthor());
                    }
                }
                else {
                    System.out.println("还未有新书籍");
                }
            } else if (choice == 2) {
                System.out.println("上新书籍功能");
                System.out.println("输入编号");
                int bno = sc.nextInt();
                System.out.println("输入书名");
                String bname = sc.next();
                System.out.println("输入作者");
                String bauthor = sc.next();
                book b = new book(bno,bname,bauthor);
                list.add(b);
                //管道
                FileOutputStream fos = new FileOutputStream(f);
                ObjectOutputStream oos = new ObjectOutputStream(fos);//序列化
                //写出
                oos.writeObject(list);
                oos.close();
                fos.close();
            } else if (choice == 3) {
                System.out.println("下架书籍功能");
                System.out.println("输入下架书籍编号");
                boolean found = false;
                int delete = sc.nextInt();
                for (int i = 0; i < list.size(); ++i){
                    book b = (book) (list.get(i));
                    if (b.getBno() == delete){
                        list.remove(b);
                        System.out.println("书籍下架成功");
                        found = true;
                        try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(f))) {
                            oos.writeObject(list);
                        } catch (IOException e) {
                            System.out.println("更新书籍列表失败:" + e.getMessage());
                        }
                        break;
                    }
                }
            } else if (choice == 4) {
                System.out.println("退出应用功能");
                break;
            }
        }
    }
}

多线程

继承Thread类和实现Runnable接口。以下是这两种方式的基本用法

1. 继承Thread

继承Thread类是创建线程的一种简单方式。你需要做的是创建一个新类,该类继承自Thread类,然后覆盖run方法。run方法的方法体就是线程执行的代码。创建这个类的实例并调用其start方法来启动线程。

2. 实现Runnable接口

实现Runnable接口是创建线程的另一种方式。这种方式更加灵活,因为Java不支持多重继承,如果你的类已经继承了另一个类,就不能再继承Thread类了。在这种情况下,你可以让你的类实现Runnable接口。

网络编程

在cmd输入ipconfig获取ip

套接字

  • 套接字是网络通信的端点。每个套接字都绑定到一个特定的端口号和IP地址上。
  • 在Java中,Socket类代表客户端套接字,而ServerSocket类代表服务器套接字。

客户端套接字

  • 客户端创建一个Socket实例,指定服务器的IP地址和端口号来建立连接。
  • 通过套接字的输入输出流进行数据的发送和接收。

服务器套接字

  • 服务器创建一个ServerSocket实例,指定一个端口号,并监听该端口的连接请求。
  • ServerSocket接受到一个连接请求时,它会创建一个新的Socket实例来与客户端进行通信

XML

基础

<!-- 这是注释格式 -->
<!-- version版本号
encoding编码消息
有且只有一个根元素:students
子元素:写里面student
子子元素:name,age,score
1 2为属性值,必须加""
-->

<students>
    <student id="1">
        <name>missno</name>
        <age>19</age>
        <sez>男</sez>
        <score>100</score>
    </student>
    <student id="2">
        <name>mt</name>
        <age>19</age>
        <sez>女</sez>
        <score>920</score>
    </student>
</students>

注解

  • 内置注解:Java提供了一些预定义的注解,如@Override@author@version等。
  • 元注解:用于注解其他注解的注解。Java中的元注解包括@Target@Retention@Inherited@Documented@Repeatable
  • 自定义注解:用户可以定义自己的注解来满足特定需求。

MySQL

使用图形客户端navicat连接MySQL

SQL

操作数据库的语言

步骤

1.新建数据库

2.新建查询

3.创建表SQL

4.ctrl+s保存到查询中

创建表
create table t_book(
	id int,
	name varchar(30),
	author varchar(10), 
	price double
)

点击运行已选择的 

ctrl+s保存到查询中

select * from t_book;选中点击运行已选择的 为查询操作

--加上空格为注释
增删改查
增
向t_book表中插入一条新记录:

INSERT INTO t_book (id, name, author, price) VALUES (1, '书名', '作者', 100.00);

-----------------------

删
从t_book表中删除一条记录,这里以id作为删除条件:

DELETE FROM t_book WHERE id = 1;

------------------------

改
更新t_book表中的一条记录,这里以id作为更新条件:

UPDATE t_book SET name = '新书名', author = '新作者', price = 120.00 WHERE id = 1;

------------------------

查
查询t_book表中的所有记录:

SELECT * FROM t_book;

-----------------------



-- 查询全部数据
select * from t_book;

-- 增加
insert into t_book (id,name,author,price) values(1,'项目','hj', 66.6);
insert into t_book (id,name,author,price) values(2,'活着','余华', 100);

-- 删除
delete from t_book where id=1;

-- 修改
update t_book set price=36.6 where id=2;

-- 查看
select name,author from t_book; -- 看部分数据
select * from t_book where price > 40; -- 限制查看价格
where用法

比较操作符:可以使用比较操作符,如=、<、>、<=、>=、<>(不等于)。
SELECT * FROM t_book WHERE price > 50;

逻辑操作符:可以使用逻辑操作符AND、OR和NOT来组合多个条件。
SELECT * FROM t_book WHERE price >= 50 AND author = 'hj';

IN操作符:用于指定某个字段的值匹配列表中任意一个值。
SELECT * FROM t_book WHERE id IN (1, 2, 3);

LIKE操作符:用于模糊匹配,通常与通配符一起使用
SELECT * FROM t_book WHERE name LIKE '%项目%';

BETWEEN操作符:用于匹配一个范围内的值。
SELECT * FROM t_book WHERE price BETWEEN 50 AND 100;

IS NULL操作符:用于检查字段值是否为NULL。
SELECT * FROM t_book WHERE author IS NULL;

JDBC

java-数据库连接 让java代码能跟数据库里的资料连接

首先安装驱动mysql-connector-java-8.0.11.jar 然后放进包里运行

增删

import java.sql.*;

public class test2 {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        //加载驱动
        Class.forName("com.mysql.cj.jdbc.Driver");

        //获取连接
        String url = "jdbc:mysql://127.0.0.1:3306/test1?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true";
        String username = "root";//用户名
        String password = "root";//密码
        Connection conn = DriverManager.getConnection(url, username, password);

        //创建会话
        Statement sta = conn.createStatement();
        //发送sql
        ResultSet rs = sta.executeQuery("select * from t_book");//rs为结果集合-结果集 可以用where限制

        //处理结果
        while (rs.next()) {
            System.out.println(rs.getInt("id") + "---" + rs.getString("name") + "---" + rs.getString("author") + "---" + rs.getDouble("price"));
        }

        //关闭数据库资源

        sta.close();
        conn.close();
    }
}


DriverManager.getConnection获取连接
conn.createStatement();创建对话

public class test2 {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        //加载驱动
        Class.forName("com.mysql.cj.jdbc.Driver");

        //获取连接
        String url = "jdbc:mysql://127.0.0.1:3306/test1?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true";
        String username = "root";//用户名
        String password = "root";//密码
        Connection conn = DriverManager.getConnection(url, username, password);

        //创建会话
        Statement sta = conn.createStatement();
        //发送sql
        ResultSet rs = sta.executeQuery("select * from t_book");//rs为结果集合-结果集 可以用where限制

        //处理结果
        while (rs.next()) {
            System.out.println(rs.getInt("id") + "---" + rs.getString("name") + "---" + rs.getString("author") + "---" + rs.getDouble("price"));
        }

        //关闭数据库资源

        sta.close();
        conn.close();
    }
}

数据库例子

book的定义和上文一致

import java.sql.*;
import java.util.ArrayList;
import java.util.Scanner;

public class test {
    //  编号 名称 作者
    public static class 数据库书城 {
        public static void main(String[] args) throws SQLException, ClassNotFoundException {
            ArrayList<book> list = new ArrayList();
            while (true) {//打印菜单
                System.out.println("------欢迎来到书城------");
                System.out.println("1.根据书籍编号查询书籍消息");
                System.out.println("2.查询所有书籍的消息");
                System.out.println("3.下架指定编号的书籍");
                System.out.println("4.退出应用");
                //借助scanner类 扫描类
                Scanner sc = new Scanner(System.in);
                System.out.println("请录入你想要执行的功能的序号");
                int choice = sc.nextInt();
                if (choice == 1)
                {
                    //录入编号
                    System.out.println("录入要查询的书籍编号");
                    int ino = sc.nextInt();
                    //根据编号查询相应的书籍
                    book b = findBookByBno(ino);
                    if (b == null)
                    {
                        System.out.println("书籍未查询到");
                    }
                    else
                    {
                        System.out.println(b.getBname());
                    }
                }
                else if (choice == 2)
                {
                    findBook();
                }
                else if (choice == 3)
                {
                    System.out.println("输入要删除的书籍的编号");
                    int ino = sc.nextInt();
                    int i = deleteBookByBno(ino);
                    if (i <= 0)
                    {
                        System.out.println("删除失败");
                    }
                    else
                    {
                        System.out.println("删除成功");
                    }
                }
                else if (choice == 4)
                {
                    System.out.println("退出应用功能");
                    break;
                }
            }
        }
    }
    //根据编号查询相应的书籍
    public static book findBookByBno(int bno) throws ClassNotFoundException, SQLException {
        book b = null;

        //加载驱动
        Class.forName("com.mysql.cj.jdbc.Driver");

        //获取连接
        String url = "jdbc:mysql://127.0.0.1:3306/test1?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true";
        String username = "root";//用户名
        String password = "root";//密码
        Connection conn = DriverManager.getConnection(url, username, password);

        //创建会话
        Statement sta = conn.createStatement();

        //发送sql
        ResultSet rs = sta.executeQuery("select * from t_book where id = " + bno);//rs为结果集合-结果集 可以用where限制

        //处理结果
        if (rs.next()) {
            b = new book();
            int id = rs.getInt("id");
            String name = rs.getString("name");
            String author = rs.getString("author");
            double price = rs.getDouble("price");
            b.setBno(id);
            b.setBname(name);
            b.setBauthor(author);
            b.setPrice(price);
        }

        //关闭数据库资源

        sta.close();
        conn.close();
        return b;
    }
    public static void findBook() throws ClassNotFoundException, SQLException {
        book b = null;

        //加载驱动
        Class.forName("com.mysql.cj.jdbc.Driver");

        //获取连接
        String url = "jdbc:mysql://127.0.0.1:3306/test1?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true";
        String username = "root";//用户名
        String password = "root";//密码
        Connection conn = DriverManager.getConnection(url, username, password);

        //创建会话
        Statement sta = conn.createStatement();

        //发送sql
        ResultSet rs = sta.executeQuery("select * from t_book");//rs为结果集合-结果集 可以用where限制

        //处理结果
        while (rs.next()) {
            b = new book();
            int id = rs.getInt("id");
            String name = rs.getString("name");
            String author = rs.getString("author");
            double price = rs.getDouble("price");
            b.setBno(id);
            b.setBname(name);
            b.setBauthor(author);
            b.setPrice(price);
            System.out.println(b.getBname());
        }

        //关闭数据库资源

        sta.close();
        conn.close();
    }
    //删除对应书籍
    public static int deleteBookByBno(int bno) throws ClassNotFoundException, SQLException {
        //加载驱动
        Class.forName("com.mysql.cj.jdbc.Driver");

        //获取连接
        String url = "jdbc:mysql://127.0.0.1:3306/test1?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true";
        String username = "root";//用户名
        String password = "root";//密码
        Connection conn = DriverManager.getConnection(url, username, password);

        //创建会话
        Statement sta = conn.createStatement();

        //发送sql
        int n = sta.executeUpdate("delete from t_book where id =" + bno);//rs为结果集合-结果集 可以用where限制

        //关闭数据库资源

        sta.close();
        conn.close();
        return n;
    }
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java面向对象进阶进阶篇--《抽象类和抽象方法》

个人主页VON 所属专栏java从入门到起飞 目录 个人主页​编辑我的主页​编辑 一、简介 抽象方法&#xff1a; 抽象类&#xff1a; 概述&#xff1a; 二、抽象类 特点和用途 示例&#xff1a; Animal类 Dog类 Flog类 Sheep类 Text类 结果展示&#xff1a; 三、抽象方…

鸿蒙OpenHarmony Native API【raw_dir.h与raw_file.h】 头文件

raw_dir.h Overview Related Modules: [Rawfile] Description: 提供rawfile目录相关功能 功能包括遍历和关闭rawfile目录 Since: 8 Version: 1.0 Summary Typedefs Typedef NameDescription[RawDir]typedef struct [RawDir] 提供对rawfile目录的访问 Functions Fun…

Centos7下安装配置最新版本Jenkins

1、基础环境配置 1.1 服务器下载Jenkins安装包 下载地址&#xff1a;Download and deploy 下载命令&#xff1a;wget https://get.jenkins.io/war-stable/2.452.3/jenkins.war 1.2 服务器安装配置JDK Jenkins 是基于 Java 语言开发的&#xff0c;因此需要 Java 运行环境支…

【Mysql】Docker下Mysql8数据备份与恢复

[TOC] 【Mysql】Docker下Mysql8数据备份与恢复 1 创建Mysql容器 格式 docker run -d --name容器名称 -p 宿主端口号:3306 -e MYSQL_ROOT_PASSWORDmysql密码 -e MYSQL_PASSWORDmysql密码 -e TZAsia/Shanghai -v 宿主目录-数据:/var/lib/mysql -v 宿主目录-备份数据:/back…

在vue中优雅地异步引入(懒加载)腾讯地图API

背景 接到一个需求需要在网站首页显示使用腾讯地图展示公司所在地。一开始我直接全局引入了腾讯地图js&#xff0c;结果发现在用户打开登陆页面的时候首页比较缓慢&#xff0c;为了提高用户登陆的加载效率&#xff0c;需要优化为异步引入。 思路 根据官网的示例&#xff0c;…

2024世界技能大赛某省选拔赛“网络安全项目”B模块--操作系统取证解析

2024世界技能大赛某省选拔赛“网络安全项目”B模块--操作系统取证解析 任务一、操作系统取证解析:总结:任务一、操作系统取证解析: A 集团某电脑系统被恶意份子攻击并控制,怀疑其执行了破坏操作,窃取了集团内部的敏感信息,现请分析 A 集团提供的系统镜像和内存镜像,找到…

缓存穿透,缓存击穿,缓存雪崩

目录 介绍 缓存穿透 缓存击穿 缓存雪崩 原因 影响 解决方案 缓存穿透 防止缓存穿透->空值缓存案例 缓存击穿 使用互斥锁解决缓存击穿 介绍 缓存穿透 定义&#xff1a;缓存穿透是指用户查询数据&#xff0c;缓存和数据库中都不存在该数据&#xff08;一般是发起恶意…

Nginx笔记(一)

一、Nginx简介 Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器 [13]&#xff0c;同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔赛索耶夫为俄罗斯访问量第二的Rambler.ru站点&#xff08;俄文&#xff1a;Рамблер&#xff09;开发的&#xff0c;公开版本1.…

maven项目容器化运行之3-优雅的利用Jenkins和maven使用docker插件调用远程docker构建服务并在1Panel中运行

一.背景 在《maven项目容器化运行之1》中&#xff0c;我们开启了1Panel环境中docker构建服务给到了局域网。在《maven项目容器化运行之2》中&#xff0c;我们基本实现了maven工程创建、远程调用docker构建镜像、在1Panel选择镜像运行容器三大步骤。 但是&#xff0c;存在一个问…

影视剪辑(自媒体)工具下载地址

一、资源下载网址 片库&#xff08;资源较全&#xff09;&#xff1a; 中国大陆线路&#xff1a;https://www.btnull.nuhttps://www.btnull.nuhttps://www.btnull.inhttps://www.btnull.in 其他网址&#xff1a; https://www.btnull.comhttps://www.btnull.com…

Oracle export 时expdp 表顺序每次不同的

同样的expdp 200张表&#xff0c;expdp 的命令一样&#xff0c;但是export log出来的表顺序也是不同的。 expdp parallel 4 impdp parallel 8 也是可以 File Size&#xff08;MB&#xff09;Export ElapsedImport ElapsedAKA2865MB0:04:230:20:02imp disable constraint paral…

畅游时空|虚拟世界初体验,元宇宙游戏如何开发?

在元宇宙中&#xff0c;用户可以通过虚拟身份进行互动、社交、工作和娱乐&#xff0c;体验与现实世界平行的生活和活动。元宇宙不仅仅是一个虚拟空间&#xff0c;更是一个融合了虚拟和现实的生态系统&#xff0c;具有巨大的发展潜力和应用前景。 在不断发展的数字环境中&#x…

MySQL的账户管理

目录 1 密码策略 1.1 查看数据库当前密码策略&#xff1a; 1.2 查看密码设置策略 1.3 密码强度检查等级解释&#xff08;validate_password.policy&#xff09; 2 新建登录账户 3 账户授权 3.1 赋权原则 3.2 常见的用户权限 3.3 查看权限 3.4 赋权语法 4 实例 4.1 示例1&#x…

教学用MQTT工具的思考

前言 我在《智能物联网应用设计》课程中有个实验就是学习MQTT的使用&#xff0c;目前使用的是以下几个工具&#xff1a; 客户端使用MQTTX本地服务器使用的是mosquitto 云端服务器采用的巴法云协议分析软件采用的是Wireshark 这里Wireshark基本没有啥可以替代的&#xff0c;而…

【React】箭头函数:现代 JavaScript 的高效编程方式

文章目录 一、箭头函数的基本语法二、箭头函数的特性三、在 React 中的常见用法四、最佳实践 在现代 JavaScript 中&#xff0c;箭头函数&#xff08;Arrow Functions&#xff09;是一种简洁的函数表达方式&#xff0c;并且在 React 开发中非常常见。箭头函数不仅简化了函数的语…

Adobe国际认证详解-ae视频剪辑

AE视频剪辑&#xff0c;即After Effects视频剪辑&#xff0c;是数字媒体时代的一项重要技能。AE不仅提供了丰富的特效和动画功能&#xff0c;还让视频剪辑变得更加高效和有趣。对于想要在职场上脱颖而出、拓宽就业机遇的人来说&#xff0c;掌握AE视频剪辑技能无疑是一个明智的选…

添加动态云层

<template> <div class"topbox"> xx卫星管理 </div> <div class"selectbox"> <div class"title"> 卫星列表 </div> <el-table :data"tableData" style"width: 100%;height:230px;" …

基于 HTML+ECharts 实现的大数据可视化平台模板(含源码)

构建大数据可视化平台模板&#xff1a;基于 HTML 和 ECharts 的实现 大数据的可视化对于企业决策、市场分析和业务洞察至关重要。通过直观的数据展示&#xff0c;团队可以快速理解复杂的数据模式&#xff0c;发现潜在的业务机会。本文将详细介绍如何利用 HTML 和 ECharts 实现一…

配置SSH公钥互信

目录 第一台主机&#xff1a;servera&#xff08;172.25.250.101&#xff09; 第一步&#xff1a;查看 . ssh目录下面是否为空 第二步&#xff1a;输入命令ssh-keygen 第三步&#xff1a; 再看查看一下. ssh目录 第四步&#xff1a; 输入命令 ssh-copy-id root172.25.250…

KubeSphere核心实战_kubesphere全功能安装_启用kubesphere的热插拔插件---分布式云原生部署架构搭建037

然后我们开始安装kubesphere,首先进入官网点击kubernetes安装 可以看到对应的,条件说kubernetes要在1.20.x以上,我们的是 1.20.9,然后cpu硬件满足,然后,默认存储类型,上一节我们安装好了 然后就可以开始,去下载两个配置文件可以看到上面的两个配置文件 这两个文件,上面是直接…