『 MySQL篇 』:MySQL表的CURD操作

news2024/9/23 1:22:02

📢 MySQL 系列专栏持续更新中 … MySQL专栏

目录

    • 目录
        • 一、SQL语句
          • - SQL通用语法
          • - 注释
          • - SQL语句分类
        • 二、 基础表操作
          • - 创建表
          • - 查看库中的表
          • - 查看表结构
          • - 删除表
          • - 重命名表
        • 三、MySQL 中的增删查改操作
          • - 增加(insert语句)
          • - 查询(select语句)
          • - 修改(update)
          • - 删除(delete)


一、SQL语句

操作关系型数据库的编程语言,定义了一套操作关系型数据库的统一标准,简称SQL。

- SQL通用语法

1 . SQL语句可以单行或多行书写,以分号结尾。

2 . SQL语句可以使用空格/缩进来增强语句的可读性。

​ 3 . MySQL数据库的SQL语句不区分大小写,关键字建议使用大写。

- 注释
  • 单行注释: – 注释内容 或者使用 # 注释内容 。
  • 多行注释:/* 注释内容 */
- SQL语句分类
分类说明
DDL(deifnition)数据定义语言(用来定义数据库对象,数据库,表,字段)
DML(manipulation)数据操纵语言(对数据库 表中的是数据进行增删改)
DQL(query)数据查询语言,用来查询数据库中表的记录
DCL(control)数据控制语言,用来创建数据库用户,控制数据库的访问权限

二、 基础表操作

- 创建表
  • 同一个数据库中,不能有两个表的名字相同,表名和列名不能和SQL的关键词重复。

  • 语法:

create table 表名(定义列1, 定义列2, .......);-> 变量名 数据类型
  • 举例:
mysql> create table if not exists book(
    ->   book_name varchar(32) comment '图书名称',
    ->   book_author varchar(32)comment  '图书作者' ,
    ->   book_price decimal(12,2) comment '图书价格',
    ->   book_category varchar(12) comment '图书分类',
    ->   publish_data timestamp
    -> )character set utf8mb4;
    
Query OK, 0 rows affected (0.04 sec)
- 查看库中的表
  • 语法:

    show tables;
    
  • 举例:

    mysql> show tables;
    +--------------------+
    | Tables_in_mytestdb |
    +--------------------+
    | book               |
    +--------------------+
    1 row in set (0.00 sec)
    
    
- 查看表结构
  • 语法:

    desc  表名;
    
  • 举例:
    image-20230104165942892

MySQL数据库中的表结构主要包含以下几种信息: 字段名称,字段类型,是否允许为空,索引类型。默认值,扩充信息

- 删除表
  • 语法:
drop table 表名
  • 举例 :
mysql> desc test1;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| name  | varchar(10) | YES  |     | NULL    |       |
| age   | int(11)     | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.02 sec)

mysql> drop table test1;
Query OK, 0 rows affected (0.04 sec)

mysql> desc test1;
ERROR 1146 (42S02): Table 'mytestdb.test1' doesn't exist
- 重命名表
  • 语法:

    rename table old_name to new_name;
    
  • 举例:

    mysql> rename table book to eBook;
    Query OK, 0 rows affected (0.05 sec)
    
    mysql> show tables;
    +--------------------+
    | Tables_in_mytestdb |
    +--------------------+
    | ebook              |
    +--------------------+
    1 row in set (0.00 sec)
    

三、MySQL 中的增删查改操作

CRUD 即增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)四个单词的首字母缩写

案例:

-- 创建一张图书表
mysql> create table if not exists book(
    ->   book_name varchar(32) comment '图书名称',
    ->   book_author varchar(32)comment  '图书作者' ,
    ->   book_price decimal(12,2) comment '图书价格',
    ->   book_category varchar(12) comment '图书分类',
    ->   publish_data timestamp
    -> )character set utf8mb4;
- 增加(insert语句)
  • 单行插入(全列)

    insert into 表名 values(对应列的参数列表); 
    -- 一次插入一行
    
  • 多行插入(全列)

    insert into 表名 values(对应列的实参列表), (对应列的参数列表), (对应列的参数列表);              
    -- 一次插入多行
    
  • 指定列插入

    • values 后面( )中的内容, 个数和类型要和表名后面( )中指定的结构匹配.
    • 未被指定的列会以默认值进行填充.
    insert into 表名 (需要插入的列) values(对应列的参数列表); 
    -- 一次插入一行
    insert into 表名 (需要插入的列) values(对应列的参数列表), (), ().... 
    -- 一次插入多行
    
  • 案例

    # 单行输入
    
    mysql> 
    insert into book values('计算机网络','谢希仁',45,'计算机类','2020-12-25 12:51:00');
    Query OK, 1 row affected (0.01 sec)
    
    #多行输入
    
    mysql> 
    insert into book values('计算机组成原理','王峰',45,'硬件类','2020-12-12 12:00:00'),
        -> ('微机原理','李华',97,'硬件类','2000-12-19 20:00:00');
        
    Query OK, 2 rows affected (0.04 sec)
    Records: 2  Duplicates: 0  Warnings: 0
    
    #指定列插入
    
    mysql>
    insert into book(book_name,book_author,publish_data) values ('软件工程','张三','2020-05-06 12:00:00');
    Query OK, 1 row affected (0.02 sec)
    
  • 插入数据后的表如图所示:

    image-20230104214245702

在MySQL当中 , 多条记录逐次插入的效率是要低于一次把多条纪录一起插入的 ,原因如下:

  • 网络请求和响应时间开销 , 每次插入都会有一定的时间开销.
  • 数据库服务器是把数据保存在硬盘上的 , IO操作时,操作的次数带来的影响大于数据量.
  • 每一次sql操作,内部开启的事务也会占据一定的开销.
- 查询(select语句)
  • 全列查询

语法

select * from 表名

--  * 表示通配符, 可以匹配表中的所有列.

企业级别的数据库中慎用, 容易把I/O或者网络带宽吃满,如果有外边的用户客户端要通过宽带访问服务器时,服务器就无法做出正确的响应.

示例

select * from book;

image-20230106171654355

  • 指定列查询
select 列名...  from  表名
  • 示例
)mysql> select book_name from book;
+----------------+
| book_name      |
+----------------+
| 计算机网络     |
| 计算机组成原理 |
| 微机原理       |
| 软件工程       |
+----------------+
4 rows in set (0.01 sec)

mysql> select book_author,book_price from book;
+-------------+------------+
| book_author | book_price |
+-------------+------------+
| 谢希仁      |      45.00 |
| 王峰        |      45.00 |
| 李华        |      97.00 |
| 张三        |       NULL |
+-------------+------------+
4 rows in set (0.00 sec)                  
  • 查询你字段为表达式
select 字段或表达式, 字段或表达式... from 表名;
  • 示例
-- 查询图书涨价10元后所有图书的名称作者和价格
mysql> select book_name ,book_author,book_price + 10 from book;
+----------------+-------------+-----------------+
| book_name      | book_author | book_price + 10 |
+----------------+-------------+-----------------+
| 计算机网络     | 谢希仁      |           55.00 |
| 计算机组成原理 | 王峰        |           55.00 |
| 微机原理       | 李华        |          107.00 |
| 软件工程       | 张三        |            NULL |
+----------------+-------------+-----------------+
4 rows in set (0.00 sec)

  • 将表达式或者字段指定别名查询

mysql中支持给所查询的表达式取一个别名 , 使用 as 可以使查询结果更加直观 , 代码的可读性也会更强.

select 列名或表达式 as 别名, ... from 表名;
  • 示例
-- 将涨价20元后的图书价格取为别名newprice
mysql> select book_name,book_author,book_price + 20 as newprice from book;
+----------------+-------------+----------+
| book_name      | book_author | newprice |
+----------------+-------------+----------+
| 计算机网络     | 谢希仁      |    65.00 |
| 计算机组成原理 | 王峰        |    65.00 |
| 微机原理       | 李华        |   117.00 |
| 软件工程       | 张三        |     NULL |
+----------------+-------------+----------+
4 rows in set (0.00 sec)
  • 去重查询
select distinct 列名 from 表名
  • 示例
--book 表中插入一条重复的book_name数据

mysql> insert into book values('计算机网络','张华',89,'计算机类','2020-11-23 11:00:00');
Query OK, 1 row affected (0.00 sec)

mysql> select book_name from book;
+----------------+
| book_name      |
+----------------+
| 计算机网络     |
| 计算机组成原理 |
| 微机原理       |
| 软件工程       |
| 计算机网络     |
+----------------+
5 rows in set (0.00 sec)

mysql> select distinct book_name from book;
+----------------+
| book_name      |
+----------------+
| 计算机网络     |
| 计算机组成原理 |
| 微机原理       |
| 软件工程       |
+----------------+
4 rows in set (0.00 sec)

查询结果当中,没有了重复的book _ name 元素,达到了去重效果.

  • 排序查询
select 列名 
from 表名 
order by 列名 asc(升序)/desc(降序); 
#  想要排序的列
  • 示例
# 按照书的价格升序进行排列
mysql> select book_name,book_price from book order by book_price asc;
+----------------+------------+
| book_name      | book_price |
+----------------+------------+
| 软件工程       |       NULL |
| 计算机网络     |      45.00 |
| 计算机组成原理 |      45.00 |
| 计算机网络     |      89.00 |
| 微机原理       |      97.00 |
+----------------+------------+
5 rows in set (0.00 sec)

#按照书的价格降序进行排列
mysql> select book_name,book_price from book order by book_price desc;
+----------------+------------+
| book_name      | book_price |
+----------------+------------+
| 微机原理       |      97.00 |
| 计算机网络     |      89.00 |
| 计算机网络     |      45.00 |
| 计算机组成原理 |      45.00 |
| 软件工程       |       NULL |
+----------------+------------+
5 rows in set (0.00 sec)
  • 使用排序查询时 , 升序查询 asc 可以省略, 即默认为升序排列, null值一定为其中最小的.
  • 可以对多个字段进行排序,优先级按照书写的顺序进行.
  • 示例
# 查询按照价格升序 ,年份降序
select name,price,age from book order by price asc,age desc;
#查询按照总成绩进行降序
select name,english+math+chinese as total from grade order by total desc;
  • 条件查询

当我们使用查询时, 通常具有各种各样的前提条件 , 此时就需要使用条件查询来完成.

select 列名.. from 表名..where + 条件

比较运算符

运算符说明
>, >=, <, <=大于,大于等于,小于,小于等于
=等于,null 不安全,例如 null = null 的结果是 null(false)
<=>等于,null 安全,例如 null <=> null 的结果是 true(1)
!=, <>不等于
between a0 and a1范围匹配,[a0, a1],如果 a0 <= value <= a1,返回 true(1)
in (option, …)如果是 option 中的任意一个,返回 true(1)
is null是 null
is not null不是 null
like模糊匹配; % 表示任意多个(包括 0 个)任意字符;_ 表示任意一个字符

逻辑运算符

运算符说明
and多个条件必须为 true , 结果才为true
or任意一个条件为true 结果才为true
not条件为true , 结果为false

  • WHERE条件可以使用表达式,但不能使用别名。

  • AND的优先级高于OR,在同时使用时,需要使用小括号()包裹优先执行的部分

  • 案例
-- 查询图书价格低于50的图书作者和图书名称
mysql> select book_name,book_author from book where book_price < 50;
+----------------+-------------+
| book_name      | book_author |
+----------------+-------------+
| 计算机网络     | 谢希仁      |
| 计算机组成原理 | 王峰        |
+----------------+-------------+
2 rows in set (0.05 sec)  
-- 查询图书价格等于97的图书作者
mysql> select book_name ,book_author from book where book_price = 97;
+-----------+-------------+
| book_name | book_author |
+-----------+-------------+
| 微机原理  | 李华        |
+-----------+-------------+
1 row in set (0.00 sec)
-- 查询图书价格在50 - 100 之间的图书名称
mysql> select book_name from book where book_price between 50 and 100;
+------------+
| book_name  |
+------------+
| 微机原理   |
| 计算机网络 |
+------------+
2 rows in set (0.02 sec)\
-- 查询图书价格在此范围内的图书名称
mysql> select book_name from book where book_price in (12,45);
+----------------+
| book_name      |
+----------------+
| 计算机网络     |
| 计算机组成原理 |
+----------------+
2 rows in set (0.00 sec)

模糊查询

  • % 匹配任意多个(包括 0 个)字符
  • _ 匹配严格的一个字符
#查询姓张的作者的书本价格书名.
mysql> select book_price,book_name,book_author from book where book_author like '张%';

+------------+------------+-------------+
| book_price | book_name  | book_author |
+------------+------------+-------------+
|       NULL | 软件工程   | 张三        |
|      89.00 | 计算机网络 | 张华        |
+------------+------------+-------------+
2 rows in set (0.00 sec)
# 查询前缀为'计算机'后缀为七个字的书籍名称
mysql> select book_name from book where book_name like '计算机____';
+----------------+
| book_name      |
+----------------+
| 计算机组成原理 |
+----------------+
#查询前缀为'计算机'的书籍名称并去重
mysql> select distinct book_name from book where book_name like '计算机%';
+----------------+
| book_name      |
+----------------+
| 计算机网络     |
| 计算机组成原理 |
+----------------+
2 rows in set (0.00 sec)
  • 分页查询

分页查询即将查询出的结果 , 按页进行呈现,并不是一次性展现出来,这种模式就是分页查询, mysql当中使用limit来实现分页查询.

  • limit 子句当中接受一个或者两个参数 , 这两个参数的值为0 或者正整数

两个参数的limit子句的用法

select 元素1,元素2  from 表名  limit offset,count;

#offset参数指定要返回的第一行的偏移量。第一行的偏移量为0,而不是1。
#count指定要返回的最大行数。

img

示例:

mysql> select book_author from book limit 2, 3;
+-------------+
| book_author |
+-------------+
| 李华        |
| 张三        |
| 张华        |
+-------------+
3 rows in set (0.02 sec)

#表示获取列表当中偏移量为2(表示从第3行开始), 最大行数为3的作者名称

带有一个参数的limit子句的用法

select 列名1.列名2 from 表名 limit count;
#  表示从结果集的开头返回的最大行数为count;
#  获取前count行的记录

等同于

select 列名1 ,列名2 from 表名 limit 0 , count;
# 第一行的偏移量为0

示例

mysql> select book_price from book limit 5;
+------------+
| book_price |
+------------+
|      45.00 |
|      45.00 |
|      97.00 |
|       NULL |
|      89.00 |
+------------+
5 rows in set (0.00 sec)

# 获取表中前五行的图书价格 , 最大行数为5
  • limit 结合 order by 语句 和其他条件可以获取n个最大或者最小值

    select book_name,book_price from book order by book_price desc limit 3; 
    #获取价格前三高的图书名称和图书价格
    mysql> select book_price,book_name from book order by book_price desc limit 3;
    +------------+------------+
    | book_price | book_name  |
    +------------+------------+
    |      97.00 | 微机原理   |
    |      89.00 | 计算机网络 |
    |      45.00 | 计算机网络 |
    +------------+------------+
    3 rows in set (0.01 sec)
    
  • 使用limit 获取第n高个最大值

偏移量从0开始,所以要指定从n - 1 开始,然后取一行记录

#示例:获取价格第二高的图书名称
 mysql> select book_name from book order by book_price desc limit 1,1;
+------------+
| book_name  |
+------------+
| 计算机网络 |
+------------+
1 row in set (0.00 sec)
- 修改(update)

MySQL当中使用update关键字来对数据进行修改 , 既可以修改单列又可以修改多列.

update 表名 set 列名1 =, 列名2 =... where 限制条件下修改
  • SET子句指定要修改的列和新值。要更新多个列,请使用以逗号分隔的列表。以字面值,表达式或子查询的形式在每列的赋值中来提供要设置的值。
  • 第三,使用WHERE子句中的条件指定要更新的行。WHERE子句是可选的。 如果省略WHERE子句,则UPDATE语句将更新表中的所有行。

示例:

#将书名为'软件工程'的图书价格修改为66元
mysql> update book set book_price = 66 where book_name = '软件工程';
Query OK, 1 row affected (0.05 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select book_price from book where book_name = '软件工程';
+------------
| book_price |
+------------+
|      66.00 |
+------------+
1 row in set (0.00 sec)

#将所有的图书价格修改为原来的二倍
mysql> update book set book_price = 2 * book_price;
Query OK, 5 rows affected (0.02 sec)
Rows matched: 5  Changed: 5  Warnings: 0
#更新成功
mysql> select book_price from book;
+------------+
| book_price |
+------------+
|      90.00 |
|      90.00 |
|     194.00 |
|     132.00 |
|     178.00 |
+------------+
5 rows in set (0.00 sec)
- 删除(delete)

要从表中删除数据,需要使用delete 语句, delete 语句的 用法如下

delete from 表名 where + 条件

首先指定需要删除数据的表,其次使用条件指定where子句中删除的行记录, 如果行匹配条件,这些行记录将会删除.

WHERE子句是可选的。如果省略WHERE子句,DELETE语句将删除表中的所有行 , 请注意,一旦删除数据,它就会永远消失。因此,在执行DELETE语句之前,应该先备份数据库,以防万一要找回删除过的数据。

示例

#删除图书表中图书单价大于150的图书记录
mysql> delete from book where book_price > 150;
Query OK, 2 rows affected (0.01 sec)

mysql> select book_price from book;
+------------+
| book_price |
+------------+
|      90.00 |
|      90.00 |
|     132.00 |
+------------+
3 rows in set (0.00 sec)

MySQL中delete 语句也可以结合limit语句 和 order by 语句来控制删除的数量和条件

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

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

相关文章

CSS 使用 @font-face 引入外部字体

CSS 使用 font-face 引入外部字体下载所需字体到本地把下载字体文件放入font文件夹里定义字体引用字体结果&#x1f62c;没有退路时&#xff0c;潜能就发挥出来了 CSS 中使用开源字体 得意黑 得意黑的字体是真的好看 ✨推荐使用 下载所需字体到本地 这里介绍一款不错的中文字…

Shiro:核心组件、配置类、多Realm场景、自定义拦截器、实战场景

目录Shiro 的核心组件Shiro 认证流程Shiro 授权流程单 RealmShiro 登陆认证 SimpleAuthenticationInfo 对象多 RealmShiroConfigShiro过滤器配置 ShiroFilterFactoryBeanShiro自定义过滤器Shiro 过滤器执行链路梳理代码自取层级结构Login.javaBearerTokenRealm.javaShiroRealm.…

桶排序详细说明及实现-python

前言&#xff1a; 说到桶排序&#xff0c;那必定要有桶&#xff0c;那么桶的作用是什么呢&#xff1f;桶的作用就是将序列分为若干份放到桶中&#xff0c;每个桶中能装入的数量范围是一定的&#xff0c;只有最后一个桶可以设置装入很多。这是因为当分的桶一定时&#xff0c;前面…

SpringMVC-基础入门

文章目录SpringMVC1&#xff0c;SpringMVC概述2&#xff0c;SpringMVC入门案例2.1 需求分析2.2 案例制作步骤1:创建Maven项目步骤2:补全目录结构步骤3:导入jar包步骤4:创建配置类步骤5:创建Controller类步骤6:使用配置类替换web.xml步骤7:配置Tomcat环境步骤8:启动运行项目步骤…

【软考】系统集成项目管理工程师(十五)项目采购管理

一、项目采购管理概述二、项目采购管理子过程1. 编制采购管理计划2. 实施采购3. 控制采购4. 结束采购三、招投标1. 招标人的权利和义务2. 招标代理机构的权利和义务3. 招标方式和招投标程序4. 相关的法律责任一、项目采购管理概述 采购意味着从外界来源获得商品或服务,采购一…

Vue3组件初始化流程分析

本文主要来分析 vue3 组件的初始化(基于runtime-core(核心运行时)包)&#xff0c;将从createApp、mount 等常用 API 入手来分析组件的挂载、普通元素的挂载流程。 createApp 1、创建一个应用实例。使用方式如下: import { createApp } from vue import App from ./App.vueco…

进制转换(二进制、八进制、十进制、十六进制)超详细版

今天来总结一下各种进制转换问题&#xff0c;详细齐全易于理解&#xff0c;希望对你有帮助哦&#xff01; 各种进制之间的相互转换 先从我们最熟悉的十进制入手吧&#xff0c;其他进制与十进制的转换方法都是一样的。 整型有4种进制形式&#xff1a; 1.十进制&#xff1a; …

[ChatGPT]

最近hatGPT火爆全宇宙&#xff0c;几乎所有圈内人都在谈论这个美国人工智能公司OpenAI发布免费机器人对话模型ChatGPT&#xff08;GPT-3.5系列&#xff09;&#xff0c;模型中首次采用RLHF&#xff08;从人类反馈中强化学习&#xff09;方式。模型目前处于测试阶段&#xff0c;…

Windows 服务器刷题(2)(带答案)

作者简介&#xff1a;一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;网络豆的主页​​​​​​ 目录 前言 一.刷题 前言 本章将会讲解Windows服务器刷题&#xff08;2&#xff09; 一…

新年礼物已收到!2022 Apache IoTDB Commits 数量排名 3/351!

社区喜报&#xff01;据 The Apache Software Foundation 官方 Projects Statistics&#xff08;项目信息统计网站&#xff09;的实时数据显示&#xff0c;Apache IoTDB 在过去 12 个月&#xff08;即 2022 年度&#xff09;共发表 6829 Commits&#xff0c;排名 2022 年度 Apa…

C++ Primer笔记——默认移动操作、移动迭代器、左右值引用成员函数、标准库仿函数、function包装器

目录 一.P476 合成的移动操作 二.P480 移动迭代器 三.P483 右值和左值引用成员函数 四.P510 标准库定义的仿函数 五.P512 标准库function类型&#xff08;包装器&#xff09; 一.P476 合成的移动操作 什么时候会有默认的移动构造和移动赋值函数&#xff0c;需满足以下几点…

Java设计模式-中介者模式Mediator

介绍 中介者模式&#xff08;Mediator Pattern&#xff09;&#xff0c;用一个中介对象来封装一系列的对象交互。中介者使各个对象不需要显式地相互引用&#xff0c;从而使其耦合松散&#xff0c;而且可以独立地改变它们之间的交互。中介者模式属于行为型模式&#xff0c;使代…

linux搭建webapp实战

首先介绍下linux&#xff0c;linux因其开源&#xff0c;定制化高&#xff0c;安全等原因&#xff0c;成为了目前web应用部署首选的操作系统&#xff0c;linux操作系统有很多版本&#xff0c;常见的有centos&#xff0c;debian&#xff0c;RHLE&#xff0c;redhat&#xff0c;乌…

【Linux】gcc/g++编译器、make/Makefile自动化构建工具

作者&#xff1a;小卢 专栏&#xff1a;《Linux》 喜欢的话&#xff1a;世间因为少年的挺身而出&#xff0c;而更加瑰丽。 ——《人民日报》 目录 1.gcc/c的概念&#xff1a; 2.程序编译过程详解&#xff1a; 2.1程序编译过程&#xff1a; 2.…

微电网(风、光、储能、需求响应)【Simulink 仿真实现】

目录 1 展现 2 典型几个介绍 2.1 采用PR的三相逆变器电压控制 2.2 太阳能直流微电网系统 2.3 主电网故障时的交流微电网性能 2.4 混合光伏、双馈发电和电池能源的微电网集成 3 写在后面 4 完整资源 1 展现 随便打开一个&#xff0c;就以第一个&#xff08;采用PID的三…

【GD32F427开发板试用】macOS/Linux系统开发环境搭建(开发、编译、烧录、调试)

本篇文章来自极术社区与兆易创新组织的GD32F427开发板评测活动&#xff0c;更多开发板试用活动请关注极术社区网站。作者&#xff1a;HonestQiao 我日常的工作环境使用的是macOS系统或者Linux系统&#xff0c;万不得已才使用Windows。 GD32官方提供了Keil MDK-ARM和IAR两款工具…

如何使用Dx命令将jar打包成Dex,需要使用D8命令

使用dx打包的完整命令&#xff0c;将D:\ssh1.0.jar打包成MyClass.dex&#xff0c;MyClass.dex将会输出在当前CMD命令窗口的目录下。dx --dex --no-strict --min-sdk-version26 --outputMyClass.dex D:\ssh1.0.jar运行结果&#xff1a;不要使用dx命令&#xff0c;打出来的dex可以…

NestJS 项目实战 技术选型 (文末附视频)

前言 通过上一章的学习&#xff0c;我们了解了网关系统&#xff0c;并且针对要做的功能做了项目架构设计与需求拆解。 那在一个项目正式开发之前&#xff0c;我们还需要做一个技术调研&#xff0c;从开发框架、使用的工具、数据库等等进行一系列的预研&#xff0c;避免在业务…

嘿~ 基于分布式架构的技术交流社区(WhiteHoleV0.7)即将竣工!

文章目录前言项目介绍WhiteHole期望立项作者功能/模块简介用户模块问答模块社区模块博文模块Next前言 拖更&#xff0c;拖延了这么久&#xff0c;耗时超过3个月的项目&#xff0c;WhiteHoleV0.7 版本即将迎来最后的收尾工作。当然考虑到服务成本&#xff0c;和开发进度&#x…

【以太网硬件十九】SGMII到底能不能直接出光模块?

SGMII接口到底能不能直接出光模块&#xff1f;先说结论&#xff1a;我认为可以&#xff0c;但是有限制&#xff0c;此时的光口只支持强制模式&#xff0c;不支持自协商。如果对端是1000base-X接口&#xff0c;对端也需要把自协商关闭才能与SGMII直出的光口建立连接。为什么SGMI…