主頁 > 後端開發 > 2020-11-2-MySQL筆記

2020-11-2-MySQL筆記

2020-11-07 16:48:16 後端開發

文章目錄

  • 基本概念
  • Mysql資料庫軟體
  • SQL
    • 什么是SQL?
    • SQL通用語法
    • DDL 操作資料庫,表
    • DML 增刪改表中資料
    • DQL 查表
      • 語法:
      • 基礎查詢
      • 條件查詢
      • 排序查詢
      • 聚合函式(列的縱向計算)
      • 分組查詢
      • 分頁查詢
      • 約束
      • 多表查詢
    • 資料庫的設計
      • 多表之間的關系
      • 事務
      • 資料庫三范式
    • DCL 用戶訪問授權
      • 用途:管理用戶,授權

基本概念

1.Datea Base 簡稱DB
2.是用于存盤和管理的倉庫
3.特點
	1.是持久化存盤資料的,其實資料庫就是一個檔案系統
	2.方便存盤和管理資料
	3.使用同一方法操作資料庫sql
4.常用資料庫
	Oracle,Mysql

Mysql資料庫軟體

1.安裝
	安裝教程:https://blog.csdn.net/y5946/article/details/78434525
2.卸載
	1.mysql的安裝目錄下找my.ini檔案
		*復制:datadir="C:ProgramData.Mysql/Mysql ....."
	2.卸載mysql
	3.洗掉datadir="C:ProgramData/Mysql"檔案
3.配置
	*Mysql服務啟動
		1.手動
			1.cmd--> services.msc 打開服務器視窗
			2.使用管理員身份打開cmd
				*net start mysql :啟動mysql服務
				*net stop mysql :關閉mysql服務
4.登錄
	1.
		cmd-->mysql -uroot -p333
		cmd-->mysql -root -p
			***
	2.cmd-->mysql -hip -uroot -p密碼
5.退出
	1.exit	
	2.quit
6.MySQL目錄結構
	1.安裝目錄
	2.資料目錄

SQL

什么是SQL?

	Structyred	Query Language :結構化查詢語言

SQL通用語法

	1.SQL 陳述句可以單行多行書寫,以分號結尾
	2.可以使用空格和縮進陳述句可讀性
	3.注釋
		單行注釋: --空格注釋內容
		多行注釋:/*注釋內容*/

DDL 操作資料庫,表

1.操作資料庫
	1.C增
		create database 資料庫名稱;
		create database if not exists 資料庫名稱;
		create database if not exists 資料庫名稱 character set gbk;
	2.R查
		*show databases;查詢所有資料庫名稱
		*show create database 資料庫名稱;-- 查看某個資料庫的創建陳述句
	3.U改
		*修改資料庫的字符集
			*alter database db3 character set utf8;
	4.D刪
		drop database 資料庫名稱;
		drop database if exists 資料庫名稱;
	5.用
		use 資料庫名稱;
		select database(); -- 查看當前使用資料庫名稱
2.操作表
	1.C增
		1.	create table 表名(
				列名1 資料型別1,
				列名2 資料型別2,
				列名3 資料型別3,
				列名4 資料型別4
			);-- 最后一列不要加逗號
			*資料型別
				1.int :整型
					* age int,
				2.double :浮點型
					*score double(5,2),
				3.date : 日期,只包含年月日,yyyy-MM-dd
				4.datatime:日期,還包含時秒分,yyyy-MM-dd HH:mm:ss
				5.timestamp:日期,還包含時秒分,yyyy-MM-dd HH:mm:ss 
					默認使用當前系統時間賦值
				6.varchar:字串
					*name varchar(20):姓名最大20個字符
					*zhangsan 8個字符 張三 2個字符
		2.create table if not exists stu like student;  -- 復制
	2.R查
		1.show tables;-- 查詢所有表
		2.decs 表名;-- 查詢表結構		
	3.U改
		1.修改表名
			alter table 表名 rename to 新表名;
		2.修改表的字符集   
			alter table 表名 character set utf8;
		3.添加一列
			alter table 表名 add 列名 資料型別;
		4.修改一列
			alter table 表名 change 列名 新列名 新資料型別;
			alter table 表名 modify 列名 新資料型別;
		3.洗掉一列
			alter table 表名 drop 列名;
	4.D刪
		1.drop table 表名;
		2.drop table if exists 表名;

DML 增刪改表中資料

1.添加資料
	1.insert into 表名(列1,列2,列3....,列n)values(值1,值2,值3  ....,值n);
	2.insert into 表名 values(所有值);//不需要寫列名,必須把所有列的資訊都寫上去
	3.除了數字型別和NULL其他值都要加引號(單雙都行)
2.修改資料
	update 表名 set 列名1=值1,列名2=值2,列名3=值3....[where 條件];
	-- 如果不加where會將表中資料全部修改!!! 
3.洗掉資料
	1.delete from 表名 where 條件;
	***注意
		一定要寫where!!!!!
	2.如果要洗掉所有記錄
			truncate table 表名;-- 先洗掉表,然后再創建一張一樣的表

DQL 查表

語法:

	select
		欄位串列
	from
		表名
	where
		條件串列
	group by
		分組欄位
	having
		分組之后的條件
	order by
		排序
	limit
		分頁限定

基礎查詢

1.多個欄位的查詢
		select 欄位名1,欄位名2.... from 表名;
		*注意
			*欄位名可以省略,表示查詢所有欄位
	2.去除重復
		在select后加distinct
	3.計算列
		*一般可以進行欄位之間的四則運算(一般只會進行數值的運算)
		*ifnull(運算式1,運算式2):null參與的運算,計算結果的都為null
			*運算式一:那個欄位需要判斷是否為null
			*如果該欄位為null后的替換值
	4.起別名
		在欄位后加 as 別名
		*as可以省略		

條件查詢

1.	where字句后邊跟條件	
2.	運算子
			* >,<,=,>=,<=,<>(不等于)
			* between...and
			* in(集合)-- 在集合之中
				where age in(1,2,3,4,5);
			* like模糊查詢
				占位符:
					%代表多個任意字符
					_代表任意一個字符
				select * from student  where name like '%德%';
			* and 或&&
			* or 或 ||
			* not 或 !

排序查詢

order by 排序欄位 排序方式(默認為asc升序),排序方式(默認為asc升序);
	*asc 升序,desc降序 
	*如果有多個排序條件,只有當前面排序條件數值一樣時,才會判斷后邊的條件

聚合函式(列的縱向計算)

1.count:計算個數
2.min:最小值
3.max:最大值
4.sum:總和
5.avg:平均值
*聚合函式會排除null
	解決方案:寫主鍵,用ifnull

分組查詢

group by 分組欄位名
*注意分組后查詢的欄位只能寫:分組的欄位,聚合函式,要不沒有意義

分頁查詢

limit 開始的頁數,每頁查詢的頁數; (mysql方言)
公式:開始的索引=(開始的頁碼-1)*每一頁顯示的條數;
limit是mysql的方言

約束

1.主鍵約束primary key
	*特點:唯一,非空,一個表只能有一個
	1.創建表時加主鍵
		在要加主鍵的欄位后加 primary key 即可
	2.創建表之后洗掉主鍵
		alter table 表名 drop primary key;
	3.創建表后加主鍵
		alter table 表名 modify 欄位名 資料型別 primary key;
	2.主鍵自增長
		在添加主鍵時在后面加 auto_increment就行了
		洗掉自增長:alter table 表名 int 資料型別;
2.非空約束not null
	1.創建表時加非空約束
		在要加約束的欄位后加 not null 即可
	2.創建表之后洗掉約束
		alter table 表名 欄位名 資料型別;
	3.創建表后加約束
		alter table 表名 modify 欄位名 資料型別 not null;
3.唯一約束unique(mysql中兩個null不屬于一樣的)
	1.創建表時加約束
		在要加逐漸的欄位后加 unique 即可
	2.創建表之后洗掉約束
		alter table 表名 drop index 欄位名; 
	3.創建表后加約束
		alter table 表名 modify 欄位名 資料型別 unique;
4.外鍵約束foreign key
	特點:
		*用于連接別的表,解決表內資料冗余的問題
		*這個表中對應資料不洗掉,連接的表對應數
	據不能洗掉,
	1.創建表的時候加外鍵約束
		constraint 外鍵名 foreign key(外鍵欄位)references 要鏈接的表的名稱(欄位名)
	2.創建表后洗掉外鍵
		alter table 表名 drop foreign key 外鍵名;
	3.創建表后添加外鍵
		alter table 表名 add constraint 外鍵名 foreign key(外鍵欄位)references 要
		鏈接的表名(欄位名);
	4.級聯操作
		1.添加級聯操作
			alter table 表名 add constraint 外鍵名稱 foreign key (欄位名稱) 
			references 主表名稱(主表欄位名稱) on update cascade on delete cascade
		2.分類:
			1.級聯更新:on update cascade
			2.級聯洗掉:on delete cascade

多表查詢

*查詢語法
	select 列名串列 from 表名 wherer 條件 group by  分組欄位名 having 條件 order by  欄位名
	順序 limit 數,數 ; 
*笛卡爾積:
	*有兩個集合A,B 取這兩個集合主所有組成情況,
	*要完成多表查詢,需要消除無用的資料
*多表查詢的分類
	1.內連接查詢
		1.隱式內連接:使用where條件消除無用資料
		2.顯示內連接:
			select 欄位串列 from 表名1 [inner] join 表名2 on 條件 ;
	2.外連接查詢
		1.左外連接查詢
			select 欄位串列 from 表名1 [outer] left  join 表名2 on 條件 ; -- 保留左表所有條件
		2.右外連接查詢
			select 欄位串列 from 表名1 [inner] right join 表名2 on 條件 ;--保留右表檔案
	1.子查詢
		* 概念:查詢中嵌套查詢,稱嵌套查詢為子查詢,
		*子查詢不同情況
		 	1.子查詢結果是單行單列的:
		 		*子查詢結果可以看作一個值,進行比較
		 		-- 查詢員工工資小于平均工資的人
				SELECT * FROM emp WHERE emp.salary < (SELECT AVG(salary) FROM emp);
		 	2.子查詢是多行單列的:
		 		*子查詢可看作一列數寫道in()里面
		 		-- 查詢'財務部'和'市場部'所有的員工資訊
				SELECT * FROM emp WHERE dept_id IN (SELECT id FROM dept WHERE NAME =
				 '財務部' OR NAME = '市場部');
		 	3.子查詢的多行多列的
		 		*子查詢可看成一個新的表虛擬表用于查詢
		 		-- 查詢員工入職日期是2011-11-11日之后的員工資訊和部門資訊
		 		SELECT * FROM dept t1 ,(SELECT * FROM emp WHERE emp.`join_date` >
		 		 '2011-11-11') t2 WHERE t1.id = t2.dept_id;

資料庫的設計

多表之間的關系

1.一對一(了解,開發很少存在):
	*如:人和身份證
	*分析:一個人只有一個身份證,一個身份證只能對應一個人
2.一對多(多對一):
	*如:員工和部門
	*分析:一個員工只對應一個部門,一個部門對應許多員工
3.多對多:
	*如:學生和課程
	*分析:一個學生可以對應多門課程,一門課程對應多個學生

事務

1.事務的基本介紹
	1.概念:
		* 如果一個包含多個步驟的操作,被事務管理,那么這些操作要么同時成功,要么同時失敗
	2.操作
		1.開啟事務:setart transaction;
		2.回滾事務:rollback;
		3.提交: commit;
	3.MySQL資料庫中事務默認自動提交
		*事務提交的兩種方式
			*自動提交
				*mysql就是自動提交的
				*一條dml(增刪改)陳述句提交一次
			*手動提交
				*oracle的資料庫是手動提交的
				*需要先開啟事務再提交
		*修改事務默認提交方式
			*查看事務的默認提交方式:select @@autocommit; -- 1代表自動提交,-- 0代表手動提交
			*更改事務的默認提交方式:set @@autocommit =1/0; 
2.事務的四大特征(面試經常有)
	1.原子性:是不可分割的最小操作單位,要么同時成功,要么同時失敗
	2.持久性:當事務提交或回滾后,資料庫會持久化的保存資料
	3.隔離性:多個事物之間,相互獨立,
	4.一致性:實務操作前后,資料總量不變 
3.事務的隔離級別(了解)
	*概念
		多個事物之間是隔離的,相互獨立的,但如果多個事務操作同一批資料,則會引發一些問題,設定不
		同的隔離級別就能解決這些問題,
	*存在問題:
		1.臟讀:一個事務讀到另一個事務中沒有提交的資料
		2.不可重復讀:在同一事務中,兩次讀到的資料不一樣
		3.幻讀:一個事務操作dml資料表中所有記錄,另一個事務添加了一條資料,則第一個事務查詢不到
		自己的修改
	*隔離級別
		1.read uncommitted:讀未提交
			出現問題:臟讀、不可重復讀、幻讀
		2.read committed:讀已提交(oracle)
			出現問題:不可重復讀、幻讀
		3.repeatable read:可重復的(mysql)
			出現問題:幻讀
		4.serializable:串行化
			沒有問題
		*級別越高,越安全,效率越低 
	*查詢/設定隔離級別
		select @@tx_isolation;-- 查詢
		set global transaction isolation level 級別字串; -- 更改

資料庫三范式

*概念:要遵循后邊的范式,必須先遵頊前邊的所有范式,
	設計關系資料庫時,遵從不同的規范要求,設計出合理的關系型資料庫,這些不同的規范要求
	被稱為不同的范式,各種范式呈遞次規范,越高的范式資料庫冗余越小,目前關系資料庫有六
	種范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)
	、第四范式(4NF)和第五范式(5NF,又稱完美范式),
	摘自百度百科:https://baike.baidu.com/item/資料庫范式/7309898
*三范式
	1.第一范式:
		每一列都是不可被分割的原子資料項
	2.第二范式:
		在第一范式的基礎上,非碼屬性必須完全依賴于碼(在范式一的基礎上消除非主屬性對
		主碼的部分函式依賴)
	3.第三范式:
		在第二范式的基礎上,任何非主屬性嗎不依賴于其他非主屬性(在范式二的基礎上消除
		傳遞依賴)
	*注意:只要滿足前三范式,資料庫結構基本就是很好的,
	*幾個概念
		1.函式依賴:A->B,如果通過A屬性:屬性組:的值,可以確定唯一B屬性的值,則稱B依賴于A
		2.完全依賴:A->B,如果A屬性組,B屬性要得以確定需要A族中所有屬性值
		3.部分函式依賴:A->,如果A是一個屬性組,B屬性值的以確定只需要依賴于A中某些值
		4.傳遞函式依賴:A-->B,B->C,B依賴于A,C依賴于B,則稱C傳遞函式依賴于A
		5.碼:如果在一張表中,一個屬性或屬性組,被所有其他屬性所完全依賴,則稱這個屬
			性或屬性組為這張表的碼

DCL 用戶訪問授權

用途:管理用戶,授權

1.管理用戶
	1.添加用戶:
		create user '用戶名' @ '主機名' identified by '密碼';
		create user '用戶名' @ '%' identified by '密碼';
	2.洗掉用戶:
		drop user '用戶名' @'主機名';
	3.修改用戶密碼:
		1.update user set password=password(密碼) where user='用戶名';
		2.set password for 'root'@'localhost'=password('123');
			*當忘記mysql中的密碼時:
				1.cmd --> net stop mysql 停止mysql服務
					*需要管理員運行cmd
				2.使用五驗證方式啟動mysql服務:mysqld --skip-grant-tables
				3.打開新的cmd視窗,直接輸入mysql命令,回車,就可以登陸
				4.use mysql;
				5.update user set password =password('新密碼') where user ='root';
				6.關閉兩個視窗
				7.打開任務管理器,手動節輸mysqld.exe 的行程
				8.啟動mysql服務
				9.使用新的密碼登錄
	4.查詢用戶:
		-- 1.切換到mysql資料庫
			use mysql;
		-- 2.查詢user表
			select * from user;
		%通配符:表示任意字符		
5.權限管理
	1.查詢權限
		show grants for '用戶名'@'主機名';
	2.授予權限
		1.grant 權限串列 on 資料庫名.表名 to '用戶名' @ '主機名’;
		2.grant all on *.* to '用戶名'@'主機名'; -- 給這個用戶所有權限
	3.識訓權限
		1.revoke 權限串列 on 資料庫名.表名from '用戶名'@'主機名';

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/205690.html

標籤:java

上一篇:SQL(Structured Query Language)結構化查詢語言

下一篇:關于使用JDBC讀取Apache Druid遇到的問題以及解決思路

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【C++】Microsoft C++、C 和匯編程式檔案

    ......

    uj5u.com 2020-09-10 00:57:23 more
  • 例外宣告

    相比于斷言適用于排除邏輯上不可能存在的狀態,例外通常是用于邏輯上可能發生的錯誤。 例外宣告 Item 1:當函式不可能拋出例外或不能接受拋出例外時,使用noexcept 理由 如果不打算拋出例外的話,程式就會認為無法處理這種錯誤,并且應當盡早終止,如此可以有效地阻止例外的傳播與擴散。 示例 //不可 ......

    uj5u.com 2020-09-10 00:57:27 more
  • Codeforces 1400E Clear the Multiset(貪心 + 分治)

    鏈接:https://codeforces.com/problemset/problem/1400/E 來源:Codeforces 思路:給你一個陣列,現在你可以進行兩種操作,操作1:將一段沒有 0 的區間進行減一的操作,操作2:將 i 位置上的元素歸零。最終問:將這個陣列的全部元素歸零后操作的最少 ......

    uj5u.com 2020-09-10 00:57:30 more
  • UVA11610 【Reverse Prime】

    本人看到此題沒有翻譯,就附帶了一個自己的翻譯版本 思考 這一題,它的第一個要求是找出所有 $7$ 位反向質數及其質因數的個數。 我們應該需要質數篩篩選1~$10^{7}$的所有數,這里就不慢慢介紹了。但是,重讀題,我們突然發現反向質數都是 $7$ 位,而將它反過來后的數字卻是 $6$ 位數,這就說明 ......

    uj5u.com 2020-09-10 00:57:36 more
  • 統計區間素數數量

    1 #pragma GCC optimize(2) 2 #include <bits/stdc++.h> 3 using namespace std; 4 bool isprime[1000000010]; 5 vector<int> prime; 6 inline int getlist(int ......

    uj5u.com 2020-09-10 00:57:47 more
  • C/C++編程筆記:C++中的 const 變數詳解,教你正確認識const用法

    1、C中的const 1、區域const變數存放在堆疊區中,會分配記憶體(也就是說可以通過地址間接修改變數的值)。測驗代碼如下: 運行結果: 2、全域const變數存放在只讀資料段(不能通過地址修改,會發生寫入錯誤), 默認為外部聯編,可以給其他源檔案使用(需要用extern關鍵字修飾) 運行結果: ......

    uj5u.com 2020-09-10 00:58:04 more
  • 【C++犯錯記錄】VS2019 MFC添加資源不懂如何修改資源宏ID

    1. 首先在資源視圖中,添加資源 2. 點擊新添加的資源,復制自動生成的ID 3. 在解決方案資源管理器中找到Resource.h檔案,編輯,使用整個專案搜索和替換的方式快速替換 宏宣告 4. Ctrl+Shift+F 全域搜索,點擊查找全部,然后逐個替換 5. 為什么使用搜索替換而不使用屬性視窗直 ......

    uj5u.com 2020-09-10 00:59:11 more
  • 【C++犯錯記錄】VS2019 MFC不懂的批量添加資源

    1. 打開資源頭檔案Resource.h,在其中預先定義好宏 ID(不清楚其實ID值應該設定多少,可以先新建一個相同的資源項,再在這個資源的ID值的基礎上遞增即可) 2. 在資源視圖中選中專案資源,按F7編輯資源檔案,按 ID 型別 相對路徑的形式添加 資源。(別忘了先把檔案拷貝到專案中的res檔案 ......

    uj5u.com 2020-09-10 01:00:19 more
  • C/C++編程筆記:關于C++的參考型別,專供新手入門使用

    今天要講的是C++中我最喜歡的一個用法——參考,也叫別名。 參考就是給一個變數名取一個變數名,方便我們間接地使用這個變數。我們可以給一個變數創建N個參考,這N + 1個變數共享了同一塊記憶體區域。(參考型別的變數會占用記憶體空間,占用的記憶體空間的大小和指標型別的大小是相同的。雖然參考是一個物件的別名,但 ......

    uj5u.com 2020-09-10 01:00:22 more
  • 【C/C++編程筆記】從頭開始學習C ++:初學者完整指南

    眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......

    uj5u.com 2020-09-10 01:00:41 more
最新发布
  • Rust中的智能指標:Box<T> Rc<T> Arc<T> Cell<T> RefCell<T> Weak

    Rust中的智能指標是什么 智能指標(smart pointers)是一類資料結構,是擁有資料所有權和額外功能的指標。是指標的進一步發展 指標(pointer)是一個包含記憶體地址的變數的通用概念。這個地址參考,或 ” 指向”(points at)一些其 他資料 。參考以 & 符號為標志并借用了他們所 ......

    uj5u.com 2023-04-20 07:24:10 more
  • Java的值傳遞和參考傳遞

    值傳遞不會改變本身,參考傳遞(如果傳遞的值需要實體化到堆里)如果發生修改了會改變本身。 1.基本資料型別都是值傳遞 package com.example.basic; public class Test { public static void main(String[] args) { int ......

    uj5u.com 2023-04-20 07:24:04 more
  • [2]SpinalHDL教程——Scala簡單入門

    第一個 Scala 程式 shell里面輸入 $ scala scala> 1 + 1 res0: Int = 2 scala> println("Hello World!") Hello World! 檔案形式 object HelloWorld { /* 這是我的第一個 Scala 程式 * 以 ......

    uj5u.com 2023-04-20 07:23:58 more
  • 理解函式指標和回呼函式

    理解 函式指標 指向函式的指標。比如: 理解函式指標的偽代碼 void (*p)(int type, char *data); // 定義一個函式指標p void func(int type, char *data); // 宣告一個函式func p = func; // 將指標p指向函式func ......

    uj5u.com 2023-04-20 07:23:52 more
  • Django筆記二十五之資料庫函式之日期函式

    本文首發于公眾號:Hunter后端 原文鏈接:Django筆記二十五之資料庫函式之日期函式 日期函式主要介紹兩個大類,Extract() 和 Trunc() Extract() 函式作用是提取日期,比如我們可以提取一個日期欄位的年份,月份,日等資料 Trunc() 的作用則是截取,比如 2022-0 ......

    uj5u.com 2023-04-20 07:23:45 more
  • 一天吃透JVM面試八股文

    什么是JVM? JVM,全稱Java Virtual Machine(Java虛擬機),是通過在實際的計算機上仿真模擬各種計算機功能來實作的。由一套位元組碼指令集、一組暫存器、一個堆疊、一個垃圾回收堆和一個存盤方法域等組成。JVM屏蔽了與作業系統平臺相關的資訊,使得Java程式只需要生成在Java虛擬機 ......

    uj5u.com 2023-04-20 07:23:31 more
  • 使用Java接入小程式訂閱訊息!

    更新完微信服務號的模板訊息之后,我又趕緊把微信小程式的訂閱訊息給實作了!之前我一直以為微信小程式也是要企業才能申請,沒想到小程式個人就能申請。 訊息推送平臺🔥推送下發【郵件】【短信】【微信服務號】【微信小程式】【企業微信】【釘釘】等訊息型別。 https://gitee.com/zhongfuch ......

    uj5u.com 2023-04-20 07:22:59 more
  • java -- 緩沖流、轉換流、序列化流

    緩沖流 緩沖流, 也叫高效流, 按照資料型別分類: 位元組緩沖流:BufferedInputStream,BufferedOutputStream 字符緩沖流:BufferedReader,BufferedWriter 緩沖流的基本原理,是在創建流物件時,會創建一個內置的默認大小的緩沖區陣列,通過緩沖 ......

    uj5u.com 2023-04-20 07:22:49 more
  • Java-SpringBoot-Range請求頭設定實作視頻分段傳輸

    老實說,人太懶了,現在基本都不喜歡寫筆記了,但是網上有關Range請求頭的文章都太水了 下面是抄的一段StackOverflow的代碼...自己大修改過的,寫的注釋挺全的,應該直接看得懂,就不解釋了 寫的不好...只是希望能給視頻網站開發的新手一點點幫助吧. 業務場景:視頻分段傳輸、視頻多段傳輸(理 ......

    uj5u.com 2023-04-20 07:22:42 more
  • Windows 10開發教程_編程入門自學教程_菜鳥教程-免費教程分享

    教程簡介 Windows 10開發入門教程 - 從簡單的步驟了解Windows 10開發,從基本到高級概念,包括簡介,UWP,第一個應用程式,商店,XAML控制元件,資料系結,XAML性能,自適應設計,自適應UI,自適應代碼,檔案管理,SQLite資料庫,應用程式到應用程式通信,應用程式本地化,應用程式 ......

    uj5u.com 2023-04-20 07:22:35 more