当前位置: 首页 > news >正文

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数据库的知识总结到这里就结束了,如有不同见解,欢迎在评论区探讨!

相关文章:

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

目录 一、异常 1.常见异常类型 2.异常体系结构 3.异常处理 &#xff08;1&#xff09;finally &#xff08;2&#xff09;throws 二、JDBC 1.JDBC搭建 2.执行SQL语句两种方法 三、MySQL数据库 1.ddl 2.dml 3.dql &#xff08;1&#xff09;字符函数 &#xff08;…...

Perl入门学习

Perl是一种强大的脚本语言&#xff0c;以其灵活性和文本处理能力而闻名&#xff0c;常用于系统管理、Web开发、生物信息学以及数据处理等领域。以下是Perl语言入门学习的一些关键点&#xff1a; ### 1. Perl简介 - **起源与特点**&#xff1a;Perl由Larry Wall在1987年创建&am…...

2024年7月计划(ue5肉鸽视频完成)

试过重点放在独立游戏上&#xff0c;有个indienova独立游戏团队是全职的&#xff0c;由于他们干了几个月&#xff0c;节奏暂时跟不上&#xff0c;紧张焦虑了。五一时也有点自暴自弃了&#xff0c;实在没必要&#xff0c;按照自己的节奏走即可。精力和时间也有限&#xff0c;放在…...

恢复策略(上)-撤销事务(UNDO)、重做事务(REDO)

一、引言 利用前面所建立的冗余数据&#xff0c;即日志和数据库备份&#xff0c;要将数据库从一个不一致的错误状态恢复到一个一致性状态&#xff0c;还需要相关的恢复策略&#xff0c;不同DBMS的事务处理机制所采用的缓冲区管理策略可能不同&#xff0c;发生故障后的数据库不…...

【鸿蒙学习笔记】位置设置

官方文档&#xff1a;位置设置 目录标题 align&#xff1a;子元素的对齐方式direction&#xff1a;官方文档没懂&#xff0c;看图理解吧 align&#xff1a;子元素的对齐方式 Stack() {Text(TopStart)}.width(90%).height(50).backgroundColor(0xFFE4C4).align(Alignment.TopS…...

41.HOOK引擎设计原理

上一个内容&#xff1a;41.HOOK引擎设计原理 在一个游戏里通过hook来完成各种各样的功能&#xff0c;比如hook点是a、b、c&#xff0c;然后a点会有它自己所需要的hook逻辑&#xff0c;b、c也是有它们自己的hook逻辑&#xff08;hook逻辑指的是hook之后要做的事&#xff09;&am…...

STM32启动流程 和 map文件的作用

一&#xff0c;启动流程 1. 复位/上电 2. 根据 BOOT0/BOOT1 确定程序从哪个存储位置执行 3. 初始化 SP 及 PC 指针 将 0X08000000 位置的栈顶地址存放在 SP 指针中 将 0x08000004 位置存放的向量地址装入 PC 程序计数器 4. 初始化系统时钟 5. 初始化用户堆栈 6. 进入main函数 二…...

深度解析华为仓颉语言

什么是华为仓颉语言&#xff1f; 华为仓颉语言&#xff08;Huawei Cangjie Language&#xff0c;HCL&#xff09;是华为公司推出的一种新型编程语言&#xff0c;旨在解决大规模分布式系统开发中的复杂性问题。仓颉语言以高效、简洁和易用为设计目标&#xff0c;特别适用于云计…...

Android简介-历史、API等级与体系结构

1. Android简介 Android是一种基于Linux内核的自由及开放源代码的操作系统。最初是由安迪鲁宾(Andy Rubin)开发的一款相机操作系统。2005年8月被Google收购。2007年11月&#xff0c;Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。…...

SpringBoot:使用Spring Batch实现批处理任务

引言 在企业级应用中&#xff0c;批处理任务是不可或缺的一部分。它们通常用于处理大量数据&#xff0c;如数据迁移、数据清洗、生成报告等。Spring Batch是Spring框架的一部分&#xff0c;专为批处理任务设计&#xff0c;提供了简化的配置和强大的功能。本文将介绍如何使用Spr…...

用JQueryUI库在.net MVC中配置datepicker(时间日期控件)

原文参考&#xff1a;如何在MVC中添加jQuery Datepicker_mvc datepicker-CSDN博客 好文章被埋没了&#xff0c;可能和时间发的早有关。 1.首先我们引入JQuery和JQuery UI <!-- ... --> <link rel"stylesheet" href"https://code.jquery.com/ui/1.12…...

算法:链表

目录 链表的技巧和操作总结 常用技巧&#xff1a; 链表中的常用操作 题目一&#xff1a;反转一个单链表 题目二&#xff1a;链表的中间结点 题目三&#xff1a;返回倒数第k个结点 题目四&#xff1a;合并两个有序链表 题目五&#xff1a;移除链表元素 题目六&#xff…...

Redis基础教程(一):redis配置

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; &#x1f49d;&#x1f49…...

短视频矩阵系统:打造品牌影响力的新方式

一、短视频矩阵概念 短视频营销革命&#xff1a;一站式解决策略&#xff01;短视频矩阵系统是一款专为企业营销设计的高效工具&#xff0c;旨在通过整合和优化众多短视频平台资源&#xff0c;为企业呈现一个全面的短视频营销策略。该系统致力于协助企业以迅速且高效的方式制作…...

品牌推广的三个阶段与核心内容,一篇文章全掌握!

在竞争激烈的市场环境中&#xff0c;品牌推广是企业成功的关键。精心策划的推广策略能够帮助企业在消费者心中树立独特的品牌形象&#xff0c;进而促进销售增长。 作为一家手工酸奶品牌的创始人&#xff0c;目前全国也复制了100多家门店&#xff0c;我理解的品牌推广分为3个阶…...

队列与循环队列

目录 1. 前言&#xff1a; 2. 队列 2.1 队列的概念 2.2 队列的实现 2.3 队列的声明 2.4 队列的初始化 2.5 队列的入队 2.6 队列的出队 2.7 队列获取队头元素 2.8 队列获取队尾元素 2.9 队列获取有效数据个数 2.10 队列判断是否为空 2.11 打印队列 2.12 销毁队列 …...

python基础问题记录

文章目录 前言一、python中类的注意点二、模块与包1. 模块2. 包 总结 前言 本专栏主要记录python中一些语法问题。 一、python中类的注意点 类属性&#xff1a;在类中定义的属性 在类中直接写明的变量是类属性&#xff0c;属于公共属性。 访问&#xff1a;类属性可以通过类或…...

Qt之饼图(Pie Graph)

[TOC](Qt之饼图(Pie Graph)) 饼图名为Pie Graph&#xff0c;用于显示一个数据系列中各项的大小与各项总和的比例。本文基于QtCharts实现饼图的显示。 1.实现过程 1.1环境配置 &#xff08;1&#xff09;首先想要使用QtCharts模块&#xff0c;需要在安装qt时选择勾选安装QtCha…...

Java项目Git提交规范

在Java项目中&#xff0c;遵循良好的Git提交规范有助于提高代码的可维护性、可读性和团队协作效率。以下是一些常见的Git提交规范建议&#xff1a; 文章目录 提交信息格式提交信息示例提交频率分支管理代码审查工具和自动化提交前检查清单 提交信息格式 提交类型&#xff1a;使…...

flink-触发器Trigger和移除器Evictor

窗口原理与机制 图片链接&#xff1a;https://blog.csdn.net/qq_35590459/article/details/132177154 数据流进入算子前&#xff0c;被提交给WindowAssigner&#xff0c;决定元素被放到哪个或哪些窗口&#xff0c;同时可能会创建新窗口或者合并旧的窗口。每一个窗口都拥有一个…...

【力扣 28】找出字符串中第一个匹配项的下标 C++题解(字符串匹配)

给你两个字符串 haystack 和 needle &#xff0c;请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标&#xff08;下标从 0 开始&#xff09;。如果 needle 不是 haystack 的一部分&#xff0c;则返回 -1 。 示例 1&#xff1a; 输入&#xff1a;haystack “s…...

软件构造 | Design Patterns for Reuse and Maintainability

Design Patterns for Reuse and Maintainability &#xff08;面向可复用性和可维护性的设计模式&#xff09; Open-Closed Principle (OCP) ——对扩展的开放&#xff0c;对修改已有代码的封 Why reusable design patterns A design… …enables flexibility to change …...

Python数据分析-股票分析和可视化(深证指数)

一、内容简介 股市指数作为衡量股市整体表现的重要工具&#xff0c;不仅反映了市场的即时状态&#xff0c;也提供了经济健康状况的关键信号。在全球经济体系中&#xff0c;股市指数被广泛用于预测经济活动&#xff0c;评估投资环境&#xff0c;以及制定财政和货币政策。在中国…...

Linux如何安装openjdk1.8

文章目录 Centosyum安装jdk和JRE配置全局环境变量验证ubuntu使用APT(适用于Ubuntu 16.04及以上版本)使用PPA(可选,适用于需要特定版本或旧版Ubuntu)Centos yum安装jdk和JRE yum install java-1.8.0-openjdk-devel.x86_64 安装后的目录 配置全局环境变量 vim /etc/pr…...

【LLVM】LTO学习

看这篇文章&#xff0c;文中的代码都是错的&#xff0c;给出的命令行也是错的。 真不如参考文献中也是华为的外国员工写的PPT。 但是&#xff0c;上述的文件中的指令也存在报错&#xff0c;还是官方文档看着舒服。...

事务的特性-原子性(Atomicity)、一致性(Consistency)、隔离性(Asolation)、持久性(Durability)

一、引言 1、数据库管理系统DBMS为保证定义的事务是一个逻辑工作单元&#xff0c;达到引入事务的目的&#xff0c;实现的事务机制要保证事务具有原子性、一致性、隔离性和持久性&#xff0c;事务的这四个特性也统称为事务的ACID特性 2、当事务保持了ACID特性&#xff0c;才能…...

redis哨兵模式(Redis Sentinel)

哨兵模式的背景 当主服务器宕机后&#xff0c;需要手动把一台从服务器切换为主服务器&#xff0c;这就需要人工干预&#xff0c;费事费力&#xff0c;还会造成一段时间内服务不可用。这不是一种推荐的方式。 为了解决单点故障和提高系统的可用性&#xff0c;需要一种自动化的监…...

【牛客】牛客小白月赛97 题解 A - E

文章目录 A - 三角形B - 好数组C - 前缀平方和序列D - 走一个大整数迷宫E - 前缀和前缀最大值 A - 三角形 map存一下每个数出现了多少次&#xff0c;再遍历map #include <bits/stdc.h>using namespace std;#define int long long using i64 long long;typedef pair<…...

Spring Boot中泛型参数的灵活运用:最佳实践与性能优化

泛型是Java中一种强大的特性&#xff0c;它提供了编写通用代码的能力&#xff0c;使得代码更加灵活和可复用。在Spring Boot应用程序中&#xff0c;泛型参数的灵活运用可以带来诸多好处&#xff0c;包括增强代码的可读性、提高系统的健壮性以及优化系统的性能。本文将深入探讨在…...

MySQL建表时的注意事项

以下是我对MySQL建表时的注意事项。其实&#xff0c;建表事项有很多&#xff0c;我的总结如下&#xff1a; 1 存储引擎的选择&#xff0c;一般做开发&#xff0c;都是要支持事务的&#xff0c;所以选择InnoDB 2 对字段类型的选择&#xff1a; ​ 对于日期类型如果要记录时分…...

Advanced RAG 09:『提示词压缩』技术综述

编者按&#xff1a; 如何最大限度地发挥 LLMs 的强大能力&#xff0c;同时还能控制其推理成本&#xff1f;这是当前业界研究的一个热点课题。 针对这一问题&#xff0c;本期精心选取了一篇关于"提示词压缩"(Prompt Compression)技术的综述文章。正如作者所说&#xf…...

(13)DroneCAN 适配器节点(二)

文章目录 前言 2 固件 2.1 基于F103 2.2 基于F303 2.3 基于F431 3 ArduPilot固件DroneCAN设置 3.1 f303-通用设置示例 4 DroneCAN适配器节点 前言 这些节点允许现有的 ArduPilot 支持的外围设备作为 DroneCAN 或 MSP 设备适应 CAN 总线。这也允许扩展自动驾驶仪硬件的…...

摸鱼大数据——Spark基础——Spark环境安装——Spark Local[*]搭建

一、虚拟机配置 查看每一台的虚拟机的IP地址和网关地址 查看路径: cat /etc/sysconfig/network-scripts/ifcfg-ens33 2.修改 VMware的网络地址: 使用VMnet8 3.修改windows的对应VMware的网卡地址 4.通过finalshell 或者其他的shell连接工具即可连接使用即可, 连接后, 测试一…...

函数内部结构分层浅析(从MVC分层架构联想)

函数内部结构分层浅析&#xff08;从MVC分层架构联想&#xff09; 分层架构:一种将软件代码按不同功能进行划分的架构模式。 优点包括&#xff1a; 可维护性&#xff1a;各层职责明确&#xff0c;易于单独修改维护。 可扩展性&#xff1a;方便添加或修改某一层&#xff0c;不…...

【three.js案例二】时空隧道

import * as THREE from ./build/three.module.js // 引入轨道控制器扩展库OrbitControls.js import { OrbitControls } from three/addons/controls/OrbitControls.js; // 引入dat.gui.js的一个类GUI import { GUI } from three/addons/libs/lil-gui.module.min.js;// 场景 co…...

动手学深度学习(Pytorch版)代码实践 -计算机视觉-48全连接卷积神经网络(FCN)

48全连接卷积神经网络&#xff08;FCN&#xff09; 1.构造函数 import torch import torchvision from torch import nn from torch.nn import functional as F import matplotlib.pyplot as plt import liliPytorch as lp from d2l import torch as d2l# 构造模型 pretrained…...

【Python游戏】猫和老鼠

本文收录于 《一起学Python趣味编程》专栏,从零基础开始,分享一些Python编程知识,欢迎关注,谢谢! 文章目录 一、前言二、代码示例三、知识点梳理四、总结一、前言 本文介绍如何使用Python的海龟画图工具turtle,开发猫和老鼠游戏。 什么是Python? Python是由荷兰人吉多范…...

【无标题】c# WEBAPI 读写表到Redis

//c# WEBAPI 读写表到Redis using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Http; using System.Web.Http; using Newtonsoft.Json; using StackExchange.Redis; using System.Data; using System.Web; namespace …...

【剑指Offer系列】53-0到n中缺失的数字(index)

给定一个包含 [0, n] 中 n 个数的数组 nums &#xff0c;找出 [0, n] 这个范围内没有出现在数组中的那个数。 示例 1&#xff1a; 输入&#xff1a;nums [3,0,1] 输出&#xff1a;2 解释&#xff1a;n 3&#xff0c;因为有 3 个数字&#xff0c;所以所有的数字都在范围 [0,3]…...

docker compose部署zabbix7.0官方方法快速搭建

环境介绍&#xff1a; 系统&#xff1a;centos7 官方文档&#xff1a;https://www.zabbix.com/documentation/current/zh/manual/installation/containers docker镜像加速 vi /etc/docker/daemon.json{"registry-mirrors": ["https://docker.1panel.live&quo…...

分库分表之后如何设计主键ID(分布式ID)?

文章目录 1、数据库的自增序列步长方案2、分表键结合自增序列3、UUID4、雪花算法5、redis的incr方案总结 在进行数据库的分库分表操作后&#xff0c;必然要面临的一个问题就是主键id如何生成&#xff0c;一定是需要一个全局的id来支持&#xff0c;所以分库分表之后&#xff0c;…...

秋招突击——6/28、6.29——复习{数位DP——度的数量}——新作{}

文章目录 引言复习数位DP——度的数量个人实现参考实现 总结 引言 头一次产生了那么强烈的动摇&#xff0c;对于未来没有任何的感觉的&#xff0c;不知道将会往哪里走&#xff0c;不知道怎么办。可能还是因为实习吧&#xff0c;再加上最近复习也没有什么进展&#xff0c;并不知…...

Spring Boot中使用Thymeleaf进行页面渲染

Spring Boot中使用Thymeleaf进行页面渲染 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们将探讨如何在Spring Boot应用中使用Thymeleaf模板引擎进行页面…...

恢复策略(下)-事务故障后的数据库恢复、系统故障后的数据库恢复(检查点技术)、介质故障后的数据库恢复

一、数据库恢复-事务故障 系统通过对事物进行UNDO操作和REDO操作可实现故障后的数据库状态恢复 1、对于发生事务故障后的数据库恢复 恢复机制在不影响其他事务运行的情况下&#xff0c;强行回滚夭折事务&#xff0c;对该事务进行UNDO操作&#xff0c;来撤销该事务已对数据库…...

如何知道docker谁占用的显卡的显存?

文章目录 python环境安装nvidia-htop查看pid加一个追踪总结一下【找到容器创建时间】使用说明示例 再总结一下【用PID找到容器创建时间&#xff0c;从而找到谁创建的】使用说明示例 python环境安装nvidia-htop nvidia-htop是一个看详细的工具。 pip3 install nvidia-htop查看…...

wps linux node.js 加载项开发,和离线部署方案

环境准备 windwos 安装node.js 安装VSCode 安装wps linux 安装node.js 安装VSCode 安装wps 通过npm 安装wpsjs SDK 使用npm安装wpsjs npm install -g wpsjs 创建一个项目 wpsjs create WPS-Addin-PPT 创建项目会让你选择2个东西&#xff1a; 1&#xff1a;选择你的文…...

红队内网攻防渗透:内网渗透之内网对抗:横向移动篇Kerberos委派安全非约束系约束系RBCD资源系Spooler利用

红队内网攻防渗透 1. 内网横向移动1.1 委派安全知识点1.1.1 域委派分类1.1.2 非约束委派1.1.2.1 利用场景1.1.2.2 复现配置:1.1.2.3 利用思路1:诱使域管理员访问机器1.1.2.3.1 利用过程:主动通讯1.1.2.3.2 利用过程:钓鱼1.1.2.4 利用思路2:强制结合打印机漏洞1.1.2.5 利用…...

nginx上传文件限制

默认限制 Nginx 限制文件大小可以通过 client_max_body_size 指令来设置&#xff0c;该指令通常在 http、server 或 location 块中设置&#xff0c;如果不设置&#xff0c;默认上传大小为1M。 修改上传文件限制 要修改Nginx的文件上传大小限制&#xff0c;你需要编辑Nginx的配…...

76. 最小覆盖子串(困难)

76. 最小覆盖子串 1. 题目描述2.详细题解3.代码实现3.1 Python3.2 Java 1. 题目描述 题目中转&#xff1a;76. 最小覆盖子串 2.详细题解 在s中寻找一个最短的子串&#xff0c;使之包含t中的所有字符&#xff0c;t中可能存在多个相同字符&#xff0c;寻找的子串也应至少含有…...

K8S 集群节点扩容

环境说明&#xff1a; 主机名IP地址CPU/内存角色K8S版本Docker版本k8s231192.168.99.2312C4Gmaster1.23.1720.10.24k8s232192.168.99.2322C4Gwoker1.23.1720.10.24k8s233&#xff08;需上线&#xff09;192.168.99.2332C4Gwoker1.23.1720.10.24 当现有集群中的节点资源不够用&…...

pytest-yaml-sanmu(七):使用fixture返回值

fixture 是 pytest 中非常重要的功能&#xff0c;大部分项目都可能会用到 fixture。 pytest 的内置标记 usefixtures 可以帮助用例自动的使用 fixture 1. 创建 fixture pytest 中的 fixtures 大致有两个用途 在用例执行之前、执行之后&#xff0c;自动的执行 通过 fixture …...

如何在Spring Boot中使用AOP

如何在Spring Boot中使用AOP 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们来探讨在Spring Boot中如何利用AOP&#xff08;Aspect-Oriented Programmi…...

基于图像处理的滑块验证码匹配技术

滑块验证码是一种常见的验证码形式&#xff0c;通过拖动滑块与背景图像中的缺口进行匹配&#xff0c;验证用户是否为真人。本文将详细介绍基于图像处理的滑块验证码匹配技术&#xff0c;并提供优化代码以提高滑块位置偏移量的准确度&#xff0c;尤其是在背景图滑块阴影较浅的情…...

Python脚本:将Word文档转换为Excel文件

引言 在文档处理中&#xff0c;我们经常需要将Word文档中的内容转换成其他格式&#xff0c;如Excel&#xff0c;以便更好地进行数据分析和报告。针对这一需求&#xff0c;我编写了一个Python脚本&#xff0c;能够批量处理指定目录下的Word文档&#xff0c;将其内容结构化并转换…...

如何在Java中实现数据备份与恢复方案

如何在Java中实现数据备份与恢复方案 大家好&#xff0c;我是微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 在软件开发和运维过程中&#xff0c;数据备份与恢复是保障数据安全和系统可靠性的重要手段。无论是意外数据丢失…...

光伏电站数据采集方案(基于工业路由器部署)

​ 一、方案概述 本方案采用星创易联SR500工业路由器作为核心网关设备&#xff0c;实现对光伏电站现场数据的实时采集、安全传输和远程监控。SR500具备多接口、多功能、高可靠性等特点&#xff0c;能够满足光伏电站数据采集的各种需求。&#xff08;key-iot.com/iotlist/sr500…...

L3规模化落地加速自动驾驶迎来发展新机遇

近日,工信部网站发布《四部门有序开展智能网联汽车准入和上路通行试点》通知,公布了9家首批智能网联汽车准入和上路通行试点联合体,即汽车生产企业+使用主体成对出现。其中,车企负责产品生产,测试则由相关平台提供。从发放L3自动驾驶测试牌照,到此次《通知》发布,不仅表…...

马斯克:若苹果在操作系统层面集成OpenAI,我将禁止苹果设备进入我的公

文|编辑部整理 编辑|大风马斯克:若苹果在操作系统层面集成OpenAI,我将禁止苹果设备进入我的公司马斯克表示,如果苹果与OpenAI合作,在操作系统层面整合ChatGPT,我将禁止那些携带苹果设备的人来访。届时,访客将需要在公司大门口接受针对苹果设备的设备检查。马斯克提及,“…...

Facebook:社交世界的接口

在当今数字时代&#xff0c;社交媒体已经成为了人们生活中不可或缺的一部分&#xff0c;而Facebook作为其中的巨头之一&#xff0c;扮演着至关重要的角色。本文将带您深入探索Facebook这张社交世界的画卷&#xff0c;全面了解这个令人着迷的平台。 起源与历程 Facebook的故事始…...

Open3D-Geometry-2:Mesh网格的一些基础操作示例

0. 引言 Open3D 有一个名为 的 3D 三角形网格数据结构TriangleMesh。下面的代码显示了如何从ply文件中读取三角形网格并打印其顶点和三角形。 import open3d as o3d import numpy as npprint("Testing mesh in Open3D...") armadillo_mesh = o3d.data.ArmadilloMes…...

Linux驱动开发笔记(二) 基于字符设备驱动的I/O操作

文章目录 前言一、设备驱动的作用与本质1. 驱动的作用2. 有无操作系统的区别 二、内存管理单元MMU三、相关函数1. ioremap( )2. iounmap( )3. class_create( )4. class_destroy( ) 四、GPIO的基本知识1. GPIO的寄存器进行读写操作流程2. 引脚复用2. 定义GPIO寄存器物理地址 五、…...

7. 核心功能(Core Features)

7. 核心功能&#xff08;Core Features&#xff09; 本章节深入介绍 Spring Boot 的详细信息。在这里&#xff0c;你可以了解想要使用的和自定义的主要功能。如果您还没有阅读 “Getting Started” 和 “Developing with Spring Boot” 这两节内容&#xff0c;不放先去阅读这两…...