Linux第三讲
目录
三、 磁盘和文件管理和使用检测和维护
3.1 磁盘目录
3.2 安装软件
3.2.1 rpm命令
3.2.2 克隆虚拟机
3.2.3 yum或压缩包方式安装jdk
3.2.4 使用虚拟机运行SpringBoot项目
3.2.5 安装mysql80(57)
3.2.6 运行web项目
3.2.7 安装tomcat
三、 磁盘和文件管理和使用检测和维护
3.1 磁盘目录
展示根目录:ls /
/bin (binaries) :该目录中存储的都是一些二进制文件,文件都是可以被运行的。
/dev (devices):该目录中主要存放的是外接设备,例如盘、其他的光盘等。在其中的外接设备是不能直接被使用的,需要挂载(类似windows下的分配盘符)。
/etc (etcetera):该目录主要存储一些配置文件。
/home :表示“家”,表示除了root用户以外其他用户的家目录,类似于windows下的User/用户目录。
/proc:process,表示进程,该目录中存储的是Linux运行时候的进程。
/root:该目录是root用户自己的家目录。
/sbin:全称super binary,该目录也是存储一些可以被执行的二进制文件,但是必须得有super权限的用户才能执行。
/tmp:表示“临时”的,当系统运行时候产生的临时文件会在这个目录存着。
/usr:存放的是用户自己安装的软件。类似于windows下的program files。
/var:存放的程序/系统的日志文件的目录。
/mnt:当外接设备需要挂载的时候,就需要挂载到mnt目录下。
/ 根目录root 超级用户目录
/lost+found 存放一些系统出错的检查结果
注:特殊权限:粘着位t
粘着位定义:当权限为777的目录被授予粘着位,用户只能在此目录下删除自己是所有者的文件
磁盘管理相关命令
1、查看磁盘分区信息
语法:fdisk -l
2、显示文件系统磁盘空间的使用情况
语法:#df -h
选项含义:-h表示以可读性较高的形式展示大小
3、显示指定的文件(目录)已使用的磁盘空间的总量
语法:#du -sh 目录路径
选项含义:-s:summaries,只显示汇总的大小-h:表示以高可读性的形式进行显示(human-readable)
案例:统计“/root”目录的实际大小du -sh /root4、显示当前内存和交换空间的使用情况
作用:查看内存使用情况
语法:#free -m
选项含义:-m表示以mb为单位查看
3.2 安装软件
3.2.1 rpm命令
rpm的作用类似于windows上的电脑管家中“软件管理”、安全卫士里面“软件管家”等产品,主要作用是对linux服务器上的软件包进行对应管理操作,管理分为:查询、卸载、安装。
①查询某个软件的安装情况
#rpm -qa|grep 关键词
选项:-q:查询,query-a:全部,all
②卸载某个软件
#rpm -e 软件的名称
当存在依赖关系的时候又不想去解决这个问题的时候可以:
#rpm -e 软件包名 --nodeps
③安装软件:
#rpm -ivh 软件包完整名称
选项:-i:install,安装-v:显示进度条-h:表示以“ # ”形式显示进度条-U:update升级
3.2.2 克隆虚拟机
虚拟机进行克隆之前需要先关机




克隆虚拟机之后可以优先更改一下克隆机的ip地址
更改IP地址之后重启网络:service network restart
3.2.3 yum或压缩包方式安装jdk
安装最小版本的Centos需要自己安装jdk,如果安装的是标准版的Centos,它会自带jdk
1、使用yum安装jdk
① 先检查jdk是否已经安装
(java -version)
② 查看yum中关于java的文件
yum list|grep java
③ 安装 java-1.8.0-openjdk-devel.x86_64
在查询出来的文件中找到 java-1.8.0-openjdk-devel.x86_64
执行安装指令 yum -y install java-1.8.0-openjdk-devel.x86_64
文件的默认安装位置是:/usr/lib/jvm
④ 配置环境变量
所有的环境变量都在/etc/profile文件中
使用vim 进入文件 vim /etc/profile
定义环境变量
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.362.b08-1.el7_9.x86_64
export JRE_HOME=$JAVA_HOME
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin/$JAVA_HOME:$PATH
⑤ 使配置文件生效
source /etc/profile
2、使用压缩包进行的安装jdk
① 先检查jdk是否已经安装
rpm -qa|grep java
javapackages-tools-3.4.1-11.el7.noarch
tzdata-java-2022g-1.el7.noarch
python-javapackages-3.4.1-11.el7.noarch
java-1.8.0-openjdk-headless-1.8.0.362.b08-1.el7_9.x86_64
java-1.8.0-openjdk-devel-1.8.0.362.b08-1.el7_9.x86_64
java-1.8.0-openjdk-1.8.0.362.b08-1.el7_9.x86_64
② 卸载已经安装的jdk
删除后面三个文件
rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.362.b08-1.el7_9.x86_64 java-1.8.0-openjdk-devel-1.8.0.362.b08-1.el7_9.x86_64 java-1.8.0-openjdk-1.8.0.362.b08-1.el7_9.x86_64
③ 利用ftxp将jdk的压缩包传到 /usr/lwlpro2目录中,在usr中可以自己定义目录
④ 解压这个tar包
解压指令:tar -zxvf jdk-8u144-linux-x64.tar.gz
⑤配置环境变量
使用vim /etc/profile 命令进入配置文件中
export JAVA_HOME=/usr/lwlpro2/jdk1.8.0_144
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin/$JAVA_HOME:$PATH
⑥ 重新配置一下文件
source /etc/profile
3.2.4 使用虚拟机运行SpringBoot项目
因为SpringBoot项目自带tomcat,所以在外面运行时只需要jdk即可
通过本机访问项目 要求本机和linux能够相互通信的 所以需要linux关闭防火墙
① 配置打包信息并更改路由信息
在pom文件中配置打包信息<!-- 如果不写packaging,那么打包时默认打成jar包,可以不写 --><packaging>jar</packaging>
在application.properties文件中修改数据库url中的localhost为本机ip地址
本机IP地址可以在dos中获取win+r打开dos输入ipconfig 查看IPv4地址
因为这里使用的是本机的mysql,所以这里需要连击本机的数据库
然后更改:
spring.datasource.url=jdbc:mysql://192.168.0.136:3306/vuetest?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8
② 打包项目
使用maven工具的声明周期中的package功能对项目进行打包
打包前可以先把target缓存删掉
③ 打包测试
测试打包好的文件是否能正常使用
首先将打包好的文件放到一个文件夹中
然后cmd进入dos
执行 java -jar 包名.jar
利用浏览器访问项目中的路径,可以正常获取结果就代表正常
访问时正常使用localhost即可
( http://198.168.0.136:3306/路径
或者是http://localhost:3306/路径 )
访问时产生异常:null, message from server: "Host 'LAPTOP-LLLFPADD' is not allowed to connect to this MySQL server"
这个异常是数据库只允许localhost或127.0.0.1访问,不允许远程访问,使用本机IP(IPv4地址)都不行。
解决方案:修改访问权限即可
1、打开cmd 登录 mysqlmysql -uroot -p2、use mysql;4、select host,user from user;可以看到 host 为 localhost,表示mysql只允许本机访问。将这个值改为 % 即可。5、update user set host ='%' where user ='root';6、执行刷新权限:flush privileges; 即可
④将jar包放到虚拟机中
一般 /usr 中是存放项目有关的东西的
可以建立一个lwlpro目录,将jar包存到/usr/lwlpro中(传输时,使用Xftp进行上传)
⑤在虚拟机运行项目
运行命令: java -jar 包名.jar
在浏览器或者postman对路由进行访问,访问时路由地址使用的是虚拟机的ip地址(198.168.111.127)
http://198.168.111.127:3306/路径
看到正常查询结果即可
⑥问题:当使用命令 java -jar 包名.jar 运行SpringBoot项目时,如果关闭远程连接客户端,或者在远程客户端进行别的操作,那么在本地访问时,就会无法连接,所以执行时可以使用nohup命令
一直运行jar文件并指定端口号为多少 当然也可以不指定端口号
nohup java -jar MulTableQuery.jar --server.port=8888 &
这条命令在哪里执行,就会在哪里生成一个 nohup.out 文件夹
可以查看一下这个文件的内容
tail -1000 nohup.out
会发现该项目已经在运行中
推荐使用nohup指令运行项目
3.2.5 安装mysql80(57)
如果是使用的桌面版(不是最小版)安装的centos,虽然系统不自带mysql,但是会带一个简化版的mysql,名为 mariadb,如果有mariadb就无法安装mysql
所以这里留下查询是否安装mariadb和卸载的方法
1、查询是否安装mariadb
rpm -qa | grep mariadb
2、卸载mariadb
rpm -e --nodeps 查询的mariadb名字
linux使用最小安装的时候缺少一些东西,所以需要我们手动的导入
安装mysql80或者是mysql57,只有在第二、三步安装mysql时不同
1、导入:
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
2、配置安装源
配置mysql80安装源
rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
配置mysql57安装源:
rpm -ivh http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
配置过程:
Retrieving https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
warning: /var/tmp/rpm-tmp.KhBs1K: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Preparing... ################################# [100%]
Updating / installing...1:mysql80-community-release-el7-3 ################################# [100%]
3、安装mysql
安装mysql80:
yum --enablerepo=mysql80-community install mysql-community-server
安装mysql57:
yum --enablerepo=mysql57-community install mysql-community-server
Install 3 Packages (+4 Dependent packages)
Upgrade ( 1 Dependent package)
Total download size: 90 M
Is this ok [y/d/N]: 在此输入y,确认下载插件
Replaced:mariadb-libs.x86_64 1:5.5.60-1.el7_5
Complete!
安装成功
4、启动mysql
centos6查看mysqld服务状态:
service mysqld status
centos7查看mysqld服务状态
systemctl status mysqld
● mysqld.service - MySQL ServerLoaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)Active: inactive (dead)Docs: man:mysqld(8)http://dev.mysql.com/doc/refman/en/using-systemd.html
系统文件存放地址:/usr/lib/systemd/system
centos6的语法在centos7中是可以使用的,而centos7中的语法在6中有的不可以使用
centos6语法:
service mysqld start
centos7语法:
systemctl start mysqld
启动成功查询状态
● mysqld.service - MySQL ServerLoaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)Active: active (running) since Thu 2023-02-09 14:30:55 CST; 11s agoDocs: man:mysqld(8)http://dev.mysql.com/doc/refman/en/using-systemd.htmlProcess: 7691 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)Main PID: 7758 (mysqld)Status: "Server is operational"CGroup: /system.slice/mysqld.service└─7758 /usr/sbin/mysqld
Feb 09 14:30:50 localhost.localdomain systemd[1]: Starting MySQL Server...
Feb 09 14:30:55 localhost.localdomain systemd[1]: Started MySQL Server.
5、查看安装mysql时生成的临时密码
grep password /var/log/mysqld.log
或者是
grep A temporary password /var/log/mysqld.log
[root@localhost ~]# grep password /var/log/mysqld.log
2023-02-09T06:30:52.337535Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: /rDso-=s2EVe
6、登录mysql
①输入:mysql -uroot -p
②在Enter password:后面输入临时密码
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> 出现这种图标代表登陆成功
退出时输入 exit; 即可退出mysql
③修改密码
mysql> alter user 'root'@'localhost' identified with mysql_native_password by 'Abc123...';
Query OK, 0 rows affected (0.00 sec)
因为最初mysql是有着一套自己的密码验证规则的,登陆成功之后需要先修改一次密码,才可以修改密码验证规则
最初规则:密码至少有8位数,包含大小写,数字和特殊符号
7、修改密码规则
修改完密码以后查看并设置密码规则
show variables like 'validate_password%';
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password.check_user_name | ON |
| validate_password.dictionary_file | |
| validate_password.length | 8 |
| validate_password.mixed_case_count | 1 |
| validate_password.number_count | 1 |
| validate_password.policy | MEDIUM |
| validate_password.special_char_count | 1 |
+--------------------------------------+--------+
策略说明validate_password.length 是密码的最小长度,默认是8,我们把它改成4mysql80输入:set global validate_password.length=4;mysql57输入:set global validate_password_length=4;validate_password.policy 验证密码的复杂程度,我们把它改成0mysql80输入:set global validate_password.policy=0;mysql57输入:set global validate_password_policy=0;validate_password.check_user_name 用户名检查,用户名和密码不能相同,我们也把它关掉mysql80输入:set global validate_password.check_user_name=off;mysql57输入:set global validate_password_check_user_name=off;
8、再次修改密码
alter user 'root'@'localhost' identified with mysql_native_password by '密码';
Query OK, 0 rows affected (0.00 sec) //修改成功
9、配置远程访问
1、切换数据库
mysql> use mysql;
2、查看管理用户权限
mysql> select host, user, authentication_string, plugin from user;
mysql> select host,user from user;
+-----------+------------------+
| host | user |
+-----------+------------------+
| localhost | mysql.infoschema |
| localhost | mysql.session |
| localhost | mysql.sys |
| localhost | root |
+-----------+------------------+
3、修改一下user为root的host为% 可以进行远程连接
mysql> update user set host = '%' where user ='root';
4、刷新权限
mysql> flush privileges;
可以再次查看是否修改成功
----------------------------输入 exit; 即可退出mysql---------------------
10、使用本机navicat连接远端linux中的mysql
新建连接



11、数据库测试
本次数据传输的数据库是上面的SpringBoot项目用到的数据库,可以利用上面的springboot项目再次进行测试
1、测试时可以删除application.properties文件中url中的本地ip地址和数据库表
2、测试时修改用户名和密码对应到linux系统中的mysql数据库的用户名和密码
3、执行jar包时,如果没有别的错误,但是依然报500,可以尝试切换端口号
然后再次打包测试
3.2.6 运行web项目
使用war包将对应的项目直接存到tomcat的webapp下面即可tomcat运行时会自动解压项目
3.2.7 安装tomcat
1.上传压缩包
2.解压
3.设置配置文件 /etc/profile
#set tomcat 环境
4。启动tomcat
cd apache-tomcat-8.5.37/bin
./startup.sh
运行tomcat
http://192.168.109.34:8080/
出现logo即为成功
相关文章:
Linux第三讲
目录 三、 磁盘和文件管理和使用检测和维护 3.1 磁盘目录 3.2 安装软件 3.2.1 rpm命令 3.2.2 克隆虚拟机 3.2.3 yum或压缩包方式安装jdk 3.2.4 使用虚拟机运行SpringBoot项目 3.2.5 安装mysql80(57) 3.2.6 运行web项目 3.2.7 安装tomcat 三、 …...
SpringBoot07:SpringSecurity
Security是什么? 是一个安全框架。可以用来做认证和授权 官网:Spring Security SpringSecurity环境搭建 1、创建一个新的project 2、导入thymeleaf依赖 <dependency><groupId>org.thymeleaf</groupId><artifactId>thymeleaf…...
C++ 浅谈之 STL Vector
C 浅谈之 STL Vector HELLO,各位博友好,我是阿呆 🙈🙈🙈 这里是 C 浅谈系列,收录在专栏 C 语言中 😜😜😜 本系列阿呆将记录一些 C 语言重要的语法特性 🏃&…...
【个人作品】非侵入式智能开关
一、产品简介 一款可以通过网络实现语音、APP、小程序控制,实现模拟手动操作各种开关的非侵入式智能开关作品。 非侵入式,指的是不需要对现有的电路和开关做任何改动,只需要将此设备使用魔术无痕胶带固定在旁边即可。 以下为 ABS 材质的渲…...
数据存储技术复习(三)未完
module4智能存储系统是功能丰富且可提供高度优化的I/o处理能力的RAID阵列。请绘制智能存储系统架构,并说明其各个关键组件的主要功能。前端缓存后端物理磁盘2.智能存储系统中,使用缓存进行的写入操作与直接写入到磁盘相比,可以带来…...
ThinkPHP数据库迁移工具
安装 composer require topthink/think-migration 创建迁移工具文件 //执行命令,创建一个操作文件,一定要用大驼峰写法,如下 php think migrate:create AnyClassNameYouWant //执行完成后,会在项目根目录多一个database目录,这里面存放类库操作文件 //文件名类似/database/m…...
代理模式(Proxy Pattern)
代理模式定义: 提供了对目标对象另外的访问方式;即通过代理对象访问目标对象。举个例子:猪八戒去找高翠兰结果是孙悟空变的,可以这样理解:把高翠兰的外貌抽象出来,高翠兰和孙悟空都实现了这个接口ÿ…...
Elasticesearch内存详解
1.ES基本概念 为了更好的理解内存,我们先看一下ES的基本概念。 1.1 cluster 集群 多个节点组合在一起就形成了一个集群,在每个ES节点中,我们可以通过配置集群的名称来使各个节点组合在一起,成为一个集群。当某些节点的集群名称一样,ES会自动根据配置文件中的地址找到这些…...
SpringCloud之断路器聚合监控
一、Hystrix Turbine简介 看单个的Hystrix Dashboard的数据并没有什么多大的价值,要想看这个系统的Hystrix Dashboard数据就需要用到Hystrix Turbine。Hystrix Turbine将每个服务Hystrix Dashboard数据进行了整合。Hystrix Turbine的使用非常简单,只需要…...
凭借这份《2022测试八股文》候选者逆袭面试官,offer拿到手软
《2023测试面试八股文》800 道软件测试面试真题,高清打印版打包带走,横扫软件测试面试高频问题,涵盖测试理论、Linux、MySQL、Web 测试、接口测试、App 测试、Python、Selenium、性能测试、LordRunner、计算机网络、数据结构与算法、逻辑思维…...
【i2c协议介绍】
文章目录协议简单介绍五种速度模式master/slave和transmitter/receiver关系第一种情况:master作为transmitter,slave作为receiver第二种情况:当master作为receiver,slave作为transmitteri2c基本信号start产生stop信号数据传输有效…...
167. 两数之和 II - 输入有序数组
给你一个下标从 1 开始的整数数组 numbers ,该数组已按 非递减顺序排列 ,请你从数组中找出满足相加之和等于目标数 target 的两个数。如果设这两个数分别是 numbers[index1] 和 numbers[index2] ,则 1 < index1 < index2 < numbers…...
编译与链接------《程序员的自我修养》
本篇整理于《程序员的自我修养》一书中编译与链接相关知识,整理的目的是为了更加深入的了解编译于链接的更多底层知识,面对程序运行时种种性能瓶颈我们束手无策。我们看到的是这些问题的现象,但是却很难看清本质,所有这些问题的本质就是软件运…...
5分钟搞懂 强缓存与协商缓存
Ⅰ、http缓存 HTTP 缓存策略 分为 > 「强制缓存」 和 「协商缓存」 为什么需要 HTTP 缓存 呢 ? 👇 直接使用缓存速度 >> 远比重新请求快 缓存对象有那些呢 ?👇 「图片」 「JS文件」 「CSS文件」 等等 文章目录Ⅰ、http缓存Ⅱ…...
Ts笔记第一天
文章目录安装 ts运行环境 nodeTS类型数字 、字符串 和布尔类型字面量any 和unknown类型断言void和neverobjectArraytuple 元组enum 枚举安装 ts运行环境 node node-v看版本号 2. 安装ts -g全局安装 npm i -g typescript // 这里全局安装 -s安装无法使用tsc 创建一个01.ts文…...
Android 12 Activity启动流程
Android 12 Activity启动过程 参考文献: startActivity启动过程分析 Activity启动流程(Android 12) 概述 Activity启动发起后,是通过Binder最终交由system进程中的AMS来完成。 一、启动流程 frameworks/base/core/java/android/app/Activity.java f…...
VCS®/VCSi™User Guide
VCS是一种高性能、高容量的Verilog模拟器,它将先进的高级抽象验证技术集成到一个开放的本地平台中。VCS是一个编译代码模拟器。它使您能够分析、编译和模拟Verilog、SystemVerilog、OpenVera和SystemC设计描述。它还为您提供了一组模拟和调试功能,以验证…...
MongoDB简介及SpringBoot整合
一、概述MongoDB中的记录是一个文档,它是一个数据结构组成 字段和值对。MongoDB文档类似于JSON。对象。字段的值可能包括其他文档、数组、 和文档数组:数据库(Database):和关系型数据库一样,每个数据库中有…...
读书思考:步步惊心的《技术陷阱》
《技术陷阱》这本书450页,43万字之巨,信息量密密麻麻,采集的资料极其丰富,复习了一遍大停滞、大分流、大平衡、大逆转时代,并展望未来。看完了有很多想法,随手写了下来,希望不是蹭热点。&#x…...
求你了,不要再在对外接口中使用枚举类型了!
最近,我们的线上环境出现了一个问题,线上代码在执行过程中抛出了一个IllegalArgumentException,分析堆栈后,发现最根本的的异常是以下内容: java.lang.IllegalArgumentException: No enum constant com.a.b.f.m.a.c.A…...
未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...
C++:std::is_convertible
C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...
深入理解JavaScript设计模式之单例模式
目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...
高等数学(下)题型笔记(八)空间解析几何与向量代数
目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...
Nginx server_name 配置说明
Nginx 是一个高性能的反向代理和负载均衡服务器,其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机(Virtual Host)。 1. 简介 Nginx 使用 server_name 指令来确定…...
Rust 开发环境搭建
环境搭建 1、开发工具RustRover 或者vs code 2、Cygwin64 安装 https://cygwin.com/install.html 在工具终端执行: rustup toolchain install stable-x86_64-pc-windows-gnu rustup default stable-x86_64-pc-windows-gnu 2、Hello World fn main() { println…...
【Post-process】【VBA】ETABS VBA FrameObj.GetNameList and write to EXCEL
ETABS API实战:导出框架元素数据到Excel 在结构工程师的日常工作中,经常需要从ETABS模型中提取框架元素信息进行后续分析。手动复制粘贴不仅耗时,还容易出错。今天我们来用简单的VBA代码实现自动化导出。 🎯 我们要实现什么? 一键点击,就能将ETABS中所有框架元素的基…...
jdbc查询mysql数据库时,出现id顺序错误的情况
我在repository中的查询语句如下所示,即传入一个List<intager>的数据,返回这些id的问题列表。但是由于数据库查询时ID列表的顺序与预期不一致,会导致返回的id是从小到大排列的,但我不希望这样。 Query("SELECT NEW com…...
快速排序算法改进:随机快排-荷兰国旗划分详解
随机快速排序-荷兰国旗划分算法详解 一、基础知识回顾1.1 快速排序简介1.2 荷兰国旗问题 二、随机快排 - 荷兰国旗划分原理2.1 随机化枢轴选择2.2 荷兰国旗划分过程2.3 结合随机快排与荷兰国旗划分 三、代码实现3.1 Python实现3.2 Java实现3.3 C实现 四、性能分析4.1 时间复杂度…...
何谓AI编程【02】AI编程官网以优雅草星云智控为例建设实践-完善顶部-建立各项子页-调整排版-优雅草卓伊凡
何谓AI编程【02】AI编程官网以优雅草星云智控为例建设实践-完善顶部-建立各项子页-调整排版-优雅草卓伊凡 背景 我们以建设星云智控官网来做AI编程实践,很多人以为AI已经强大到不需要程序员了,其实不是,AI更加需要程序员,普通人…...
