javaSE知识点整理总结(下)、MySQL数据库

目录

一、异常

1.常见异常类型

2.异常体系结构

3.异常处理

(1)finally

(2)throws

二、JDBC

1.JDBC搭建

2.执行SQL语句两种方法

三、MySQL数据库

1.ddl

2.dml

3.dql

(1)字符函数

(2)逻辑处理

(3)数学函数

(4)日期函数

(5)分组函数

(6)条件查询、模糊查询

(7)排序

4.多表

5.关联查询

6.子查询


一、异常

程序在运行过程中出现的不正常现象称之为异常;

例如用户输入数据有问题,读写文件文件被强制删除了,网络传输过程中突然断网;

出现异常后,会导致jvm(虚拟机)停止运行,后续程序无法进行;

java默认异常处理机制:将出现的异常,按类型分类,为每种异常封装一个类来表达;

当出现某种类型异常情况,会抛出此类对象,然后终止虚拟机运行使用异常处理机制,对程序运行时出现的异常情况捕捉和处理。

注意:代码编写错误不算异常

1.常见异常类型

ArithmeticException  算术异常

ArrayIndexOutOfBoundsException   数组索引越界

StringIndexOutOfBoundsException   字符串索引越界

ClassCastException  类型转换异常

NumberFormatException  数字格式化异常

2.异常体系结构

Throwable

java.lang.Throwable类是Java程序执行过程中发生的异常事件对应的类的根父类。

Throwable中的常用方法:public void printStackTrace();打印异常的详细信息。

●Error:Java虚拟机无法解决的严重问题。如:JVM系统内部错误、资源耗尽等严重情况。一般不编写针对性的代码进行处理。

例如:StackOverflowError(栈内存溢出)和OutOfMemoryError(堆内存

溢出)。

●Exception: 其它因编程错误或偶然的外在因素导致的一般性问题,需要使用针对性的代码进行处理,使程序继续运行。否则一旦发生异常,程序也会挂掉。

3.异常处理

编码时,对可能出现问题的代码预先编译一些处理机制(通过时间经验自己积累)

格式为:

        try{

编码时可能出现异常的代码

         }catch(异常类型){

                 处理机制

         }

public class Demo2 {public static void main(String[] args) {int a = 10;int b = 0;try {int c = a/b;}catch (ArithmeticException a1){//算数异常a1.printStackTrace();//打印异常信息到控制台,一般在开发阶段使用,供开发人员定位异常信息System.out.println("异常处理");}System.out.println("结束");}
}

注:一个try后可以catch多个类型的异常,但如果其中有Exception类的异常,必须放在最后一个catch中。

(1)finally

        无论是否发生异常,代码总能执行

格式:

        try{

                可能会发生异常的代码

        }catch(异常类型 引用名){

                异常处理代码

        }finally{

                必须执行代码

        }

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;public class Demo3 {public static void main(String[] args) throws IOException {
//使用场景1:异常没有被捕捉到,后面代码无法执行,但是finally里代码可以运行try{int num = Integer.parseInt("as5");}catch (ArrayIndexOutOfBoundsException a){a.printStackTrace();System.out.println("sd");}finally {System.out.println("saddad");}FileInputStream f = null;
//使用场景2:存放必须要执行的代码try{f = new FileInputStream("D:/as.txt");//文件找不到就会出现异常while (f.read()!=-1){//进行读取操作}}catch (FileNotFoundException ff){ff.printStackTrace();System.out.println("文件找不到异常");}finally {if (f!=null)f.close();//这里我们希望,即使读文件操作异常也要把流对象关闭,而不是程序直接结束}int d = su(10,0);}public static int su(int a, int b){
//使用场景3:无论try还是catch执行return,都要先执行finally里的代码才能returntry{return a/b;}catch (ArithmeticException sa){sa.printStackTrace();System.out.println("算术异常");return -1;}finally {System.out.println("关闭流");}}
}
(2)throws

throws 异常类型 —— 声明表示此方法可能出现给定的异常,且该方法不处理异常,抛给上一级,谁最终调用谁处理。

可以throws多个异常,每个异常用逗号连接,用以扩大范围

import java.io.UnsupportedEncodingException;public class Demo4 {public static void main(String[] args) {//main属于顶层方法了,此处再进行抛出,就给了虚拟机,但是虚拟机不会处理异常,因此必须在这里处理,再抛出就不合适了try {mta();} catch (UnsupportedEncodingException e) {e.printStackTrace();}System.out.println("异常");}public static void mta() throws UnsupportedEncodingException {mtb();System.out.println("mta");}//mtb()模拟一个底层方法,一般我们程序出现异常不会在子类里解决,不然父类还以为程序是正常进行的,一般抛到最高层再处理public static void mtb() throws UnsupportedEncodingException {//throws UnsupportedEncodingException表示此方法可能出现 UnsupportedEncodingException异常String s = "asd";s.getBytes("gbk-1");//根据一个编码表进行转换,System.out.println("mtb");}
}

注:throws用在方法声明部分,表示此方法可能出现的异常类型,该方法不做异常处理,谁调用谁处理

异常细分为:
   ①检查器异常:编译期间主动提示程序员需要进行处理的异常(编码不支持,文件找不到);
   ②运行期异常:编译期间不会提示程序员进行处理,程序运行时报出的异常(数组越界,算术异常,类型转换异常);
   区别在于异常类有没有继承RuntimeException()方法--ctrl+鼠标左键,点进异常类中进行查看

(3)throw

throw关键字用于显式抛出异常,抛出的时候是抛出的是一个异常类的实例化对象.

语法:throw new 异常类构造方法

(4)自定义异常

        现实生活中,根据具体业务创建出的java方法和语句,要想程序给出相应的异常提示,使用java现有的异常类型是远远不够的。

        这时候就需要自定义异常,来满足我们业务需求。在方法中使用throw抛出后,必须在方法中try-catchthrows抛出

/*例如这里我们自己规定,当输入的数字<0或>100时抛出要继承Exception/RuntimeException类自定义异常类中往往不写其他方法,只重载需要使用的构造方法即可*/
public class SizeException extends Exception{public SizeException(String message){super(message);}
}class Demo6 {public static void main(String[] args) {try {char c = level(101);}catch (SizeException ar){ar.printStackTrace();System.out.println(ar.getMessage());}System.out.println("结束");}public static char level(int size) throws SizeException {if (size<0||size>100){throw new SizeException("非法分数");}else if (size>0||size<=100){return 'A';}else {return 'B';}}
}

二、JDBC

        即java数据库连接。是一种用于执行SQL语句的Java API,可以为多种关系型数据库提供统一访问, 它由一组用Java语言编写的类和接口组成。

因为要连接数据库,因此就需要一些java以外的功能代码。这里放置了mysql官方开发实现的,具体连接数据库的功能代码,需要者自行下载。

提取码:1234

1.JDBC搭建

        创建一个新项目,与数据库连接交互具体过程如下:

import java.sql.*;public class Demo1 {public static void main(String[] args) throws ClassNotFoundException, SQLException {//2.加载驱动类(打开与数据库的通信通道)Class.forName("com.mysql.cj.jdbc.Driver");//3.建立与数据库的链接,获得连接对象//URL中是:ip(127.0.0.1):端口(3306)/数据库名?serverTimezone=Asia/Shanghai(这是服务时区,记住就行)String url = "jdbc:mysql://127.0.0.1:3306/test?serverTimezone=Asia/Shanghai";String user = "root";String password = "root";Connection connection = DriverManager.getConnection(url,user,password);//4.发生sql(这里我们对学生选课数据库的专业表进行修改)Statement st = connection.createStatement();st.executeUpdate("insert into major(name)value('数学')");//5.关闭数据库连接(关闭通道)st.close();connection.close();}
}

2.执行SQL语句两种方法

获得Satement执行sql语句

●Statement st = connection.createStatement();

Satement中的方法:

        Int executeUpdate(String sql) 用于执行ddl语句和dml(,,)语句,返回操作的行数

        用于执行ddl语句返回0

        用于执行dml语句返回操作的行数

        ResultSet executeQuery(String sql); 用于执行查询语句 返回一个ResultSet 集合

获得PrepareStatement执行sql语句

sql语句中参数位置使用占位符,使用setXX方法向sql中设置参数

● PrepareStatement ps = connection.prepareStatement(sql);

PrepareStatement中的方法:

        Int executeUpdate() 用于执行ddl语句和dml(,,)语句 返回操作的行数

        用于执行ddl语句返回0

        用于执行dml语句返回操作的行数

        ResultSet executeQuery(); 用于执行查询语句 返回一个ResultSet 集合

注:PrepareStatement执行sql语句可以进行预先编译----(? 是占位符,表示此处需要接受一个参数)

PreparedStatement ps = connection.prepareCall("insert into student(name,gender,birthday,tel,address,majorid)"+
        "values(?,?,?,?,?,?)");

三、MySQL数据库

1.ddl

-- 创建数据库(CREATE DATABASE 数据库名),设置字符集编码(CHARSET 基字符集)
CREATE DATABASE IF NOT EXISTS test CHARSET utf8
-- 删除数据库
DROP DATABASE test;
-- 修改字符集
ALTER DATABASE test CHARSET gbk;

        创建数据库表内容

表 表名

列 特定信息 如:姓名,年龄

行 数据 如:张三,19

        列的数据类型

字符串型:

        char(n)长度为n的定长字符串,设n=5,存入两个字符,其长度还是5,剩下三位会补空格一般存储定长数据

        varchar(n)长度为n的变长字符串,设n=5,存入两个字符,长度就为2

日期类型:

        date 年月日

        datetime 年月日 时分秒

整数型:

        TINYINT 字节1

        SMALLINT 字节2

        MEDIUMINT 字节3

        INT 字节4

        BIGINT 字节8

浮点型:

        decimal(M,D)

        M:精度,数据的总长度

        D:标度,小数点后的长度

        为列添加约束

例如学号,唯一,不能为空,只能有一个学号:

为学号添加主键(PRIMARY KEY)约束(唯一不能重复,不能为空,一个表只能有一个列设置主键)

        PRIMARY KEY 主键,在一张表中代表唯一的一条记录,不能为空,不能重复

        AUTO_INCREMENT 设置主键列自动增长,只能修饰主键列,而且主键列类型为整形

        NOT NULL 不为空

        UNIQUE 唯一约束,约束的列不能出现重复数据,可以添加到多个列

        CHECK 约束,如设置身高项不超过2.13,height DECIMAL(3,2) check(height<2.13),年龄不小于18岁,age varchar(3) check(age>18),超过的数据不录入数据库

        comment'注释' 字段注释

        DEFAULT 设置默认值

        如下是一个学生表

CREATE TABLE student (num INT PRIMARY KEY AUTO_INCREMENT COMMENT '学号 主键',NAME VARCHAR (10) NOT NULL COMMENT '姓名',gender CHAR (1) NOT NULL DEFAULT '男' COMMENT '性别',birthday DATE,tel CHAR (11) NOT NULL UNIQUE,address VARCHAR (30),height DECIMAL (3, 2) CHECK (height < 2.13),reg_time DATETIME
)

2.dml

插入数据:

        方式1: INSERT INTO 表名(列1,列2......,列n) VALUES(值1,值2.....,值n);

        方式2: INSERT INTO 表名 set 列名1=值1,..列名n=值n;

        方式3: INSERT INTO 表名(列1,列2......,列n) VALUES(值1,值2.....,值n),(值1,值2.....,值n);

        方式4:INSERT INTO 表名(列1,列2......,列n) 查询语句(查询的列数与插入列数匹配)

INSERT INTO student (NAME,gender,tel,address,height,reg_time) VALUES('张三','女','12345678212','汉中',1.86,NOW());
INSERT INTO student SET NAME = '李四',gender = '男',tel = '12345678989',height = 1.88;
INSERT INTO student (NAME,gender,birthday,tel,address,height,reg_time) VALUES('王五','男','2003-4-5','12374859632','西安',1.75,NOW()),('赵六','男','2003-4-5','12374857732','西安',1.60,NOW());

修改语句:(注意条件,即where之后的

        UPDATE 表名 SET 列名 = '值' WHERE 列名 = 值 

删除语句:

       DELETE FROM student -- 没有条件,删除所有语句

       DELETE FROM student WHERE num = 51

3.dql

 基础查询:

         select 查询列表 from 表名

         select * from 表名(查询表中所有信息)

查询时可能会出现两行查询结果相同,利用distinct消除其中一行:

         select distinct 列名 from 表名

        注:sql中 + - * / 只做算术运算,不能当做连接符

(1)字符函数
-- length():获取参数值的字节个数
SELECT NAME,LENGTH(NAME)AS NAME,gender FROM student      
-- char_length()获取参数值的字符个数
SELECT NAME,CHAR_LENGTH(NAME)AS NAME FROM student
-- concat(str1,str2,.....):拼接字符串
SELECT num,CONCAT(NAME,':',gender)AS NAME FROM student
-- upper()/lower():将字符串变成大写/小写
SELECT UPPER(NAME),LOWER(NAME) FROM student
-- substring(str,pos,length):截取字符串   位置从1开始
SELECT SUBSTRING(NAME,1,1) FROM student
-- instr(str,指定字符):返回子串第一次出现的索引,如果找不到返回0
SELECT INSTR(NAME,'张') FROM student
-- trim(str):去掉字符串前后的空格或子串,trim(指定子串 from 字符串)
SELECT NAME,CHAR_LENGTH(TRIM(NAME)) FROM student
-- lpad(str,length,填充字符):用指定的字符实现左填充将str填充为指定长度
SELECT LPAD(NAME,5,'a') FROM student       
-- rpad(str,length,填充字符):用指定的字符实现右填充将str填充为指定长度
SELECT RPAD(NAME,5,'b') FROM student
-- replace(str,old,new):替换,替换所有的子串
SELECT REPLACE(NAME,'张','找')FROM student
(2)逻辑处理
-- case  when   条件  then    结果1   else  结果2  end;  可以有多个when
SELECT height,(CASE WHEN height>=1.80 THEN '高个子' WHEN height>=1.75 THEN '正常身高'  ELSE '矮个子' END)AS height FROM student
-- ifnull(被检测值,默认值)函数检测是否为null,如果为null,则返回指定的值,否则返回原本的值
SELECT NAME,IFNULL(address,'暂未录入')AS adddress FROM student
-- if函数:if else的 效果    if(条件,结果1,结果2
SELECT NAME,IF(height>=1.80,'高个子','正常身高')FROM student
(3)数学函数
-- round(数值):四舍五入
SELECT NAME,ROUND(height)FROM student
-- ceil(数值):向上取整,返回>=该参数的最小整数
SELECT NAME,CEIL(height)FROM student
-- floor(数值):向下取整,返回<=该参数的最大整数
SELECT NAME,FLOOR(height)FROM student
-- truncate(数值,保留小数的位数):截断,小数点后截断到几位
SELECT NAME,TRUNCATE(height,1)FROM student
-- mod(被除数,除数):取余,被除数为正,则为正;被除数为负,则为负
SELECT NAME,MOD(num,3)FROM student
-- rand():获取随机数,返回0-1之间的小数
SELECT NAME,RAND()FROM student
(4)日期函数
-- now()
SELECT NAME,NOW(),CURDATE(),CURTIME() FROM student
-- 日期格式化
SELECT NAME,YEAR(reg_time),MONTH(reg_time),DAY(reg_time)FROM student
-- 字符串格式化为日期类型
-- 将日期格式化为指定字符串
SELECT DATE_FORMAT(birthday,'%Y-%m')FROM student
-- 计算两日期间相差天数
SELECT DATEDIFF(NOW(),birthday)FROM student
(5)分组函数
-- sum 求和、avg 平均值、max 最大值、min 最小值、count 计数(非空)
-- sum,avg一般用于处理数值型max,min,count可以处理任何类型
SELECT SUM(num)FROM student
SELECT AVG(num) FROM student
SELECT MAX(height)FROM student
SELECT MIN(height)FROM student
-- count函数的一般使用count(*)用作统计行数
SELECT COUNT(*)FROM student
-- 以上分组函数都忽略null值
(6)条件查询、模糊查询
-- select <结果> from <表名> where <条件>
-- and 所有条件均要满足
SELECT * FROM student WHERE height >= 1.80 AND address = '汉中' AND num <= 46
-- or 满足一个即可
SELECT *FROM student WHERE height >=1.70 OR height >=1.80
-- 不等于
SELECT *FROM student WHERE address != '汉中'
SELECT *FROM student WHERE address <> '汉中'
-- 模糊查询 like %字符%,要查字符串第几个字,其余字就要用%填充     通配符:%
SELECT *FROM student WHERE NAME LIKE '张%'
-- between and(两者之间,包含临界值) 相当于 条件一 and 条件二
SELECT *FROM student WHERE height >=1.70 AND height <=1.80
-- 查身高  in 判断某字段的值是否属于in列表中的某一项 相当于height = 1.75 or height = 1.86 or height = 1.88
SELECT *FROM student WHERE height IN(1.75,1.86,1.88)
(7)排序
-- 排序 默认升序(ASC)
SELECT *FROM student ORDER BY height
-- DESC降序
SELECT *FROM student ORDER BY height DESC
-- 多个排序条件,依次执行
SELECT *FROM student ORDER BY birthday DESC,height ASC
-- 什么排序都没有,默认主键升序
SELECT *FROM student

(8)数量限制、分组查询

-- 数量限制 limit子句:对查询的显示结果限制数目  (sql语句最末尾位置)
-- limit 开始位置(开始位置为0),查询的数量
-- 用于网页物品分页,一次查询一部分数据,提高效率
SELECT *FROM student LIMIT 0,2 -- n 表示当前页码
-- 分组查询
-- group by 分组条件(列名)出现在sql语句末尾
SELECT COUNT(*),gender FROM student GROUP BY gender
-- 分组统计名字数量,查询重复名字
-- where是对原始表中数据过滤
-- HAVING 在 group by 后使用,为分组的数据添加过滤条件
SELECT COUNT(*)AS n,NAME FROM student GROUP BY NAME HAVING COUNT(*)>1

4.多表

        第一范式:确保每列保持原子性,即数据库表中的所有字段值都是不可分解的原子值

        第二范式:要有主键,其他字段依赖于主键。因此也就成为唯一的了

        第三范式:确保每列都和主键列直接相关,而不是间接相关,要求一个数据库表中不包含已在其它表中包含的非主关键字信息。即一个表关联另一个表的主键即可,没必要再关联另一个表其余的冗余信息。因为通过那个主键,就可直接查询到另一个表的所有其他信息

        外键

-- majorid称为外键,外键必须与另一个表主键关联,类型一致 
-- 例如,学生表与专业表关系:多对一关系
-- 添加外键约束,不添加约束就会随意操作数据,致使数据极不安全
-- 为外键加约束,保证数据完整性
ALTER TABLE student ADD CONSTRAINT fk_student_major_on_majorid FOREIGN KEY(majorid ) REFERENCES major(id)

5.关联查询

        关联查询会引起笛卡尔积现象

-- 笛卡尔乘积现象:表1有m行,表2有n行,结果=m*n      
-- 发生原因:没有有效的连接条件      
-- 如何避免:添加有效的连接条件
-- 语法:Select   结果   from  表1,表2  where  表1.column1 = 表2.column2

(1)内连接

-- 内关联 只筛选出满足条件的
SELECT 
s.num,
s.name,
s.gender,
m.name 
FROM student s INNER JOIN major m ON s.majorid = m.id

(2)外连接

-- 外连接 左外连接 显示表一所有部分,表一表二相交部分
-- select  结果  from   表1  left join  表2  on    表1.column1 = 表2.column2
SELECT *FROM student s LEFT JOIN major m ON s.majorid = m.id
-- 右外连接 表二所有部分,表一表二相交部分
SELECT* FROM student s RIGHT JOIN major m ON s.majorid = m.id
-- 统计每个专业人数
SELECT COUNT(s.num)COUNT,m.name
FROM student s RIGHT JOIN major m
ON s.majorid = m.id
GROUP BY m.name

6.子查询

        出现在其他语句中的select语句,称为子查询或内查询;外部的查询语句,称为主查询或外查询

        按子查询出现的位置分类:

-- from后面:支持表子查询(结果集一般为多行多列)
-- where:支持标量子查询(结果集只有一行一列),列子查询(结果集只有一列多行)

-- 查身高最高的(标量子查询)
SELECT * FROM student WHERE height = (SELECT MAX(height) FROM student)
-- 查身高等于165 和 175的学生(列子查询)
SELECT *FROM student WHERE height IN (SELECT height FROM student WHERE height = 1.65 OR height = 1.75)
-- 查重名的(表子查询)
SELECT *FROM (SELECT s.name,COUNT(*)c FROM student s GROUP BY s.name)sc WHERE sc.c>1

        javaSE和MySQL数据库的知识总结到这里就结束了,如有不同见解,欢迎在评论区探讨!

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

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

相关文章

Linux开发讲课22---I2C读写 EEPROM 实验(含代码)

EEPROM 是一种掉电后数据不丢失的存储器&#xff0c;常用来存储一些配置信息&#xff0c;以便系统重新上电的时候加载之。 EEPOM 芯片最常用的通讯方式就是 I2C 协议&#xff0c;本小节以 EEPROM的读写实 验为大家讲解 STM32 的 I2C 使用方法。实验中 STM32 的 I2C 外设采用主模…

Hadoop3:Yarn框架的三种调度算法

一、概述 目前&#xff0c;Hadoop作业调度器主要有三种&#xff1a;FIFO、容量&#xff08;Capacity Scheduler&#xff09;和公平&#xff08;Fair Scheduler&#xff09;。Apache Hadoop3.1.3默认的资源调度器是Capacity Scheduler。 CDH框架默认调度器是Fair Scheduler。 …

改机软件有哪些?实现一键新机、改串号、改IMEI和手机参数的需求 硬改手机软件,新机环境模拟 设备伪装,一键改机,一键复原

这次针对可以直接开端口修改参数的机型做一些工具解析 前面接触合作过很多工作室。其中很多工作室对于各自软件的跳验证有各自的需求。 一个机型各项参数一般有IMEI WiFi 蓝牙 sn psb ESN等等。 针对这些参数的修改首先要明白各自软件检测的具体是哪些参数来验证。 对于常用…

#HDC2024 心得分享#主题演讲学习-加入鸿蒙生态正当时

一、主题演讲学习心得 通过本次主题演讲的聆听与学习&#xff0c;我们在猜出中和不太确定的相关内容纷纷呈现。比如鸿蒙内核与HarmonyOS Next获得行业内最高等级的安全认证&#xff1b;盘古大模型、小艺智能体、意图理解与分发框架等构筑的AI、AIGC能力对HarmonyOS Next及原生…

MySQL高级-索引-使用规则-覆盖索引回表查询

文章目录 1、覆盖索引1.1、查看索引1.2、删除单列索引 idx_user_pro1.3、查询 profession软件工程 and age31 and status01.4、执行计划 profession软件工程 and age31 and status01.5、执行计划 select id,profession,age,status1.6、执行计划 select id,profession,age,statu…

JAVA高级进阶13单元测试、反射、注解

第十三天、单元测试、反射、注解 单元测试 介绍 单元测试 就是针对最小的功能单元(方法)&#xff0c;编写测试代码对其进行正确性测试 咱们之前是如何进行单元测试的&#xff1f; 有啥问题 &#xff1f; 只能在main方法编写测试代码&#xff0c;去调用其他方法进行测试。 …

页面开发感想

页面开发 1、 前端预览 2、一些思路 2.1、首页自定义element-plus的走马灯 :deep(.el-carousel__arrow){border-radius: 0%;height: 10vh; }需要使用:deep(标签)才能修改样式 或者 ::v-deep 标签 2.2、整体设计思路 <template><div class"card" style&…

【ChatBI】text2sql-不需要访问数据表-超轻量Python库Vanna快速上手,对接oneapi

oneapi 准备 首先确保你有oneapi &#xff0c;然后申请 kimi的api 需要去Moonshot AI - 开放平台 然后添加一个api key 然后打开oneapi的渠道界面&#xff0c;添加kimi。 然后点击 测试&#xff0c; 如果能生成响应时间&#xff0c;就是配置正确。 然后创建令牌 http:…

Linux shell编程学习笔记60:touch命令

0 前言 在csdn技能树Linux入门的练习题中&#xff0c;touch是最常见的一条命令。这次我们就来研究它的用法。 1 touch命令的功能、格式和选项说明 我们可以使用touch --help命令查看touch命令的帮助信息。 [purpleendurer bash ~ ]touch --help Usage: touch [OPTION]... …

MATLAB-NGO-CNN-SVM,基于NGO苍鹰优化算法优化卷积神经网络CNN结合支持向量机SVM数据分类(多特征输入多分类)

NGO-CNN-SVM&#xff0c;基于NGO苍鹰优化算法优化卷积神经网络CNN结合支持向量机SVM数据分类(多特征输入多分类) 1.数据均为Excel数据&#xff0c;直接替换数据就可以运行程序。 2.所有程序都经过验证&#xff0c;保证程序可以运行。 3.具有良好的编程习惯&#xff0c;程序均…

【Spring Boot】Java 的数据库连接模板:JDBCTemplate

Java 的数据库连接模板&#xff1a;JDBCTemplate 1.JDBCTemplate 初识1.1 JDBC1.2 JDBCTemplate 2.JDBCTemplate 实现数据的增加、删除、修改和查询2.1 配置基础依赖2.2 新建实体类2.3 操作数据2.3.1 创建数据表2.3.2 添加数据2.3.3 查询数据2.3.4 查询所有记录2.3.5 修改数据2…

【ai】tx2 nx:ubuntu18.04 yolov4-triton-tensorrt 成功部署server 运行

isarsoft / yolov4-triton-tensorrt运行发现插件未注册? 【ai】tx2 nx: jetson Triton Inference Server 部署YOLOv4 【ai】tx2 nx: jetson Triton Inference Server 运行YOLOv4 对main 进行了重新构建 【ai】tx2 nx :ubuntu查找NvInfer.h 路径及哪个包、查找符号【ai】tx2…

AES加密算法及AES-CMAC原理白话版系统解析

本文框架 前言1. AES加密理论1.1 不同AES算法区别1.2 加密过程介绍1.2.1 加密模式和填充方案选择1.2.2 密钥扩展1.2.3分组处理1.2.4多轮加密1.2.4.1字节替换1.2.4.2行移位1.2.4.3列混淆1.2.4.4轮密钥加1.3 加密模式1.3.1ECB模式1.3.2CBC模式1.3.3CTR模式1.3.4CFB模式1.3.5 OFB模…

redis 单节点数据如何平滑迁移到集群中

目的 如何把一个redis单节点的数据迁移到 redis集群中 方案&#xff1a; 使用命令redis-cli --cluster import 导入数据至集群 --cluster-from <arg>--cluster-from-user <arg> 数据源用户--cluster-from-pass <arg> 数据源密码--cluster-from-askpass--c…

驾校预约小程序系统的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;学员管理&#xff0c;教练管理&#xff0c;驾校信息管理&#xff0c;驾校车辆管理&#xff0c;教练预约管理&#xff0c;考试信息管理 微信端账号功能包括&#xff1a;系统首页&#xff0c;驾校信息&a…

基于docker安装redis服务

Redis是我们在项目中经常需要使用的缓存数据库&#xff0c;安装redis的方式也有很多&#xff0c;本文主要是给大家讲解如何基于docker进行redis服务的安装&#xff0c;主要介绍&#xff0c;如何拉取redis镜像、如何挂载redis的数据以及使用redis的配置文件和开启认证等功能&…

steam社区载入失败、加载不出来、打不开?

随着steam夏季大促的到来&#xff0c;最近steam在线用户越来越多了&#xff0c;很多玩家在自己喜欢的游戏社区里看最新的玩法、攻略和玩家的游戏心得。不过有不少玩家表示有时候会打不开游戏社区或是社区加载失败等问题。根据大家遇到的问题&#xff0c;这里总结了几种解决方法…

构建现代医疗:互联网医院系统源码与电子处方小程序开发教学

本篇文章&#xff0c;笔者将探讨互联网医院系统的源码结构和电子处方小程序的开发&#xff0c;帮助读者更好地理解和掌握这些前沿技术。 一、互联网医院系统源码结构 互联网医院系统通常由多个模块组成&#xff0c;每个模块负责不同的功能。以下是一个典型的互联网医院系统的主…

基于C语言的Jacobi迭代和Gauss-Seidel迭代的方程组求解实现

文章目录 Jacobi迭代方法介绍Gauss-Seidel迭代方法介绍具体代码实现示例题目实现效果 Jacobi迭代方法介绍 Jacobi迭代法是一种简单的迭代求解方法&#xff0c;适用于严格对角占优矩阵。其基本思想是利用当前迭代步的已知解来更新下一个迭代步的解。在C语言实现中&#xff0c;我…

Textual Learning2 -- 使用时的小问题

1、出现的问题&#xff1a; 在vscode里面直接运行函数会显示报错&#xff1a; 我尝试在vscode中含textual库的环境下运行&#xff0c;但仍然报错 2、解决方案&#xff1a; 在命令行中运行&#xff1a; 首先按winR&#xff0c;输入cmd打开命令行 或在已经安装的conda环境&a…