最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Java后端開發(fā)時的一些實用技巧

2023-07-04 01:57 作者:kinglegend  | 我要投稿

本篇文章分別在2022年6月21日、2022年6月30日、2022年7月4日,被分成三篇學(xué)習(xí)摘要筆記,發(fā)表于某平臺。主要是在2022年5月份至7月份開發(fā)工作過程中學(xué)習(xí)到的新知識和技巧,現(xiàn)轉(zhuǎn)載至B站。


Linux-使用SSH從服務(wù)器下載或上傳文件

利用scp傳輸文件,實現(xiàn)從遠(yuǎn)程服務(wù)器下載文件或上傳文件到服務(wù)器上,本地使用unix(linux/mac)命令行完成操作?

1. 從遠(yuǎn)程服務(wù)器下載文件到本地

下載文件到本地的桌面

下載文件夾到本機(jī)?

下載文件夾到本地的桌面

2. 從本地上傳到服務(wù)器上

JDBC-ResultSet對象

set.next()

可以配合while()循環(huán)語句遍歷數(shù)據(jù)庫返回值內(nèi)容。next()方法支持?jǐn)?shù)據(jù)指針的下移。

set.getString(int or string)

注意列是從左至右編號的,并且從列 1 開始。同時,用作 getXXX 方法的輸入的列名不區(qū)分大小寫。

ResultSet.getMetaData()

關(guān)于 ResultSet 中列的信息,可通過調(diào)用方法 ResultSet.getMetaData 得到。返回的 ResultSetMetaData 對象將給出其 ResultSet 對象各列的編號、類型和屬性。

如果列名已知,但不知其索引,則可用方法 findColumn 得到其列號。

ResultSet指針

NULL結(jié)果值

使用 ResultSet.wasNull 方法檢查該次讀取是否返回 JDBC NULL。

當(dāng)使用 ResultSet.getXXX 方法讀取 JDBC NULL 時,方法 wasNull 將返回下列值之一:

  • Java null 值:對于返回 Java 對象的 getXXX 方法(例如 getString、getBigDecimal、getBytes、getDate、getTime、getTimestamp、getAsciiStream、getUnicodeStream、getBinaryStream、getObject 等)。

  • 零值:對于 getByte、getShort、getInt、getLong、getFloat 和 getDouble。

  • false 值:對于 getBoolean。

可選結(jié)果集或多結(jié)果集

通常使用?executeQuery(它返回單個 ResultSet)或?executeUpdate(它可用于任何數(shù)據(jù)庫修改語句,并返回更新行數(shù))可執(zhí)行 SQL 語句。

但有些情況下,應(yīng)用程序在執(zhí)行語句之前不知道該語句是否返回結(jié)果集。此外,有些已存儲過程可能返回幾個不同的結(jié)果集和/或更新計數(shù)。

為了適應(yīng)這些情況,JDBC 提供了一種機(jī)制,允許應(yīng)用程序執(zhí)行語句,然后處理由結(jié)果集和更新計數(shù)組成的任意集合。這種機(jī)制的原理是首先調(diào)用一個完全通用的execute?方法,然后調(diào)用另外三個方法,getResultSetgetUpdateCount?和getMoreResults。這些方法允許應(yīng)用程序一次一個地研究語句結(jié)果,并確定給定結(jié)果是 ResultSet 還是更新計數(shù)。

用戶不必關(guān)閉 ResultSet;當(dāng)產(chǎn)生它的 Statement 關(guān)閉、重新執(zhí)行或用于從多結(jié)果序列中獲取下一個結(jié)果時,該 ResultSet 將被 Statement 自動關(guān)閉。


getRow()用法

需要注意的一點是,getRow()并不是獲取總行數(shù),而是返回當(dāng)前指針?biāo)诤瘮?shù)。

1. 判斷ResultSet行數(shù)是否為0

ResultSet表示select語句的查詢結(jié)果集。ResultSet對象具有指向其當(dāng)前數(shù)據(jù)行的指針,最初,指針被置于第一行記錄之前,通過next()方法可以將指針移動到下一行記錄。next()方法在ResultSet對象沒有一行記錄時返回false,因此可以在while循環(huán)中使用它來遍歷結(jié)果集,也可以利用該方法判斷結(jié)果集是否為空。

2. 獲取行數(shù)

Java-想要在psvm中調(diào)用本類里的方法

在psvm中實例化自身即可。

Java-FileWriter對象

文件寫入對象。

Java-Stream流的常用方法count


Linux-javac使用技巧

問:javac腳本的時候,發(fā)生未找到引用的類、未找到符號的錯誤,但是明明import了。

解決:可能是因為要引用類和本類不在一個包里,并且你也是在本目錄下執(zhí)行的javac指令,編譯時系統(tǒng)沒有檢測到此目錄之外的java類,即使你import它了。你需要退出路徑至該項目的根目錄下執(zhí)行javac指令。

Linux-nohup指令

使用nohup可以將腳本掛在后臺運(yùn)行(不能存在中文字符),&后綴參數(shù)也可以實現(xiàn)同樣的效果。

Java-獲取當(dāng)前時間

方法一

方法二


Java-使用線程池來處理大數(shù)據(jù)/多任務(wù)

Java-讀取文件(以行的形式)

Java-寫入文件

JDBC-通過ResultSet了解數(shù)據(jù)庫是否存在指定表

JDBC-獲取表數(shù)據(jù)量

JDBC-獲取表字段數(shù)

JDBC-Statement的各個execute類型的區(qū)別

  1. ResultSet executeQuery(String sql); 執(zhí)行SQL查詢,并返回ResultSet 對象。

  2. int executeUpdate(String sql); 可執(zhí)行增,刪,改,返回執(zhí)行受到影響的行數(shù)。

  3. boolean execute(String sql); 可執(zhí)行任何SQL語句,返回一個布爾值,表示是否返回ResultSet 。

  4. execute是executeQuery和executeUpdate的綜合.


AtomicInteger

原子操作在單個任務(wù)單元中執(zhí)行,而不受其他操作的干擾。 在多線程環(huán)境中,原子操作是必需的,以避免數(shù)據(jù)不一致。

printStackTrace()

通過try catch異常幫助程序員了解實際問題發(fā)生的位置。深層次的輸出異常調(diào)用,作用就是把原始錯誤信息打印出來。

ExecutorService()

接口位于 java.util.concurrent 包中。該接口代表了一種異步執(zhí)行機(jī)制,可以在后臺并發(fā)執(zhí)行多個任務(wù)。執(zhí)行程序服務(wù)框架有助于在應(yīng)用程序中創(chuàng)建和管理線程。執(zhí)行器框架執(zhí)行以下任務(wù)。

  1. 線程創(chuàng)建: Executor服務(wù)提供了很多線程創(chuàng)建的方法。這有助于并發(fā)運(yùn)行應(yīng)用程序。

  2. 線程管理: Executor 服務(wù)也有助于管理線程生命周期。在提交任務(wù)執(zhí)行之前,我們不必?fù)?dān)心線程是處于活動狀態(tài)、忙碌狀態(tài)還是死狀態(tài)。

  3. 任務(wù)提交與執(zhí)行: Executor 框架還提供了在線程池中提交任務(wù)的方法。它還提供了決定線程是否執(zhí)行的權(quán)力。

額外知識點:newFixedThreadPool() 線程池

參考:https://blog.csdn.net/allway2/article/details/118793216

getColumnCount()

(SQLServerResultSetMetaData)列計數(shù) 返回int

getColumnName(int)

獲取列名 返回string

str.substring(int,int)

截取字符串

split()?

根據(jù)匹配給定的正則表達(dá)式來拆分字符串。?

. 、 $、 | 和 * 等轉(zhuǎn)義字符,必須得加 \。

注意:多個分隔符,可以用 | 作為連字符。

語法

參數(shù)

  • regex -- 正則表達(dá)式分隔符。

  • limit -- 分割的份數(shù)。

返回值

字符串?dāng)?shù)組。

PreparedStatement.setString(0,1)

例子:

concat ()

用于連接兩個或多個數(shù)組。

ASC和DESC

select … ORDER BY xxx ASC(升序,默認(rèn)就是,不需要寫)/DESC(降序)

額外知識點:ExpireDate是失效時間的意思。


ResultSet

數(shù)據(jù)庫結(jié)果集的數(shù)據(jù)表,通常通過執(zhí)行查詢數(shù)據(jù)庫的語句生成。ResultSet是數(shù)據(jù)中查詢結(jié)果返回的一種對象。

  • 獲取字段的值

ResultSet對象常用的一些方法

將光標(biāo)移動到此 ResultSet對象中的給定行號。

將光標(biāo)移動到這個 ResultSet對象的末尾,就在最后一行之后。

將光標(biāo)移動到這個 ResultSet對象的正面,就在第一行之前。

取消對此 ResultSet對象中當(dāng)前行的更新。

清除此 ResultSet對象上報告的所有警告。

ResultSet釋放此 ResultSet對象的數(shù)據(jù)庫和JDBC資源,而不是等待其自動關(guān)閉時發(fā)生。

從此 ResultSet對象和底層數(shù)據(jù)庫中刪除當(dāng)前行。

將給定的 ResultSet列標(biāo)簽映射到其 ResultSet列索引。

將光標(biāo)移動到此 ResultSet對象中的第一行。

將該 ResultSet對象的當(dāng)前行中指定列的值作為Java編程語言中的 Array對象檢索。

將此 ResultSet對象的當(dāng)前行中指定列的值作為Java編程語言中的 Array對象檢索

ResultSetMetaData

可以根據(jù) ResultSet.getMetaData() 方法獲得 ResultSetMetaData

通過該對象可以得到表的結(jié)構(gòu),包括 列名,列的個數(shù),列數(shù)據(jù)類型

  • 獲取列名

  • 獲取列個數(shù)

  • 獲得列類型

應(yīng)用場景

獲取每個列的值和對應(yīng)的列名

shell語法初識

定義以開頭:#!/bin/bash

#!用來聲明腳本由什么shell解釋,否則使用默認(rèn)shell

單個"#"號代表注釋當(dāng)前行

加上可執(zhí)行權(quán)限

三種執(zhí)行方式的不同點?(./xxx.sh bash xxx.sh . xxx.sh)

./xxx.sh :先按照 文件中#!指定的解析器解析

如果#!指定指定的解析器不存在 才會使用系統(tǒng)默認(rèn)的解析器

bash xxx.sh:指明先用bash解析器解析

如果bash不存在 才會使用默認(rèn)解析器

. xxx.sh 直接使用默認(rèn)解析器解析

定義變量


引用變量


清除變量


read從鍵盤獲取值

在一行上顯示和添加提示 需要加上-p


readonly只讀變量

echo內(nèi)的雙引號和單引號

雙引號:可以解析變量的值

單引號:不能解析變量的值

想在PATH變量中 追加一個路徑寫法

export PATH=$PATH:/需要添加的路徑


預(yù)設(shè)變量

shell直接提供無需定義的變量



案例

控制語句

格式一:

格式二:



條件測試

test命令:用于測試字符串、文件狀態(tài)和數(shù)字 test命令有兩種格式: test condition 或[ condition ](結(jié)果:1:否;0:是) 使用方括號時,要注意在條件兩邊加上空格。

文件測試

字符串測試

數(shù)值測試

符合語句測試

單百分號%和雙百分號%%的作用

使用百分號將變量的內(nèi)容從變量的后面刪除,并從變量的尾部刪除。

不同的是,一個%號表示從尾部最近的匹配刪除,兩個%%從尾部最遠(yuǎn)的匹配刪除。同時支持使用通配符。

比如:

先聲明一個變量:

使用一個百分號截取尾部bb



結(jié)果:

可以看到是截取了最后面的bbccdd。

使用兩個百分號截取尾部bb

結(jié)果:

可以看到是截取的最前面的匹配的到的bb。



expr指令全解

expr命令可以實現(xiàn)數(shù)值運(yùn)算、數(shù)值或字符串比較、字符串匹配、字符串提取、字符串長度計算等功能。它還具有幾個特殊功能,判斷變量或參數(shù)是否為整數(shù)、是否為空、是否為0等。

shell的時間參數(shù)含義

shell 中 “<”“>“ 與 “>>“ 的區(qū)別

“ > ” 在shell中代表的意義

“ > ” ,我們常用的用法是用來記錄 log 日志,它也有其他的用法,如:

這是將 "hello world"寫入到 hello.log 日志中,但是如果hello.log中有內(nèi)容的話,它會將其清空再重新寫入,這個用法有點像寫入文件時用的 "w" 用法。

“ >> ” 在shell中代表的意義

“ >> ”, 我們也是常用來記錄 log 日志,但是它與 " > "還是有區(qū)別的,下面就來講講區(qū)別吧!

如:

這是將 hello world!寫入到hello.log中,但是沒有清空hello.log中原有的內(nèi)容,而是追加到hello.log的末尾,這跟文件寫入的 " a+ "一樣。

“<”在shell中代表的意義

從文件中讀取內(nèi)容,然后作為輸入。


Java后端開發(fā)時的一些實用技巧的評論 (共 條)

分享到微博請遵守國家法律
武胜县| 台江县| 库车县| 岳西县| 邯郸市| 罗源县| 如皋市| 和林格尔县| 从江县| 岑溪市| 扎囊县| 大渡口区| 肇东市| 桃江县| 南汇区| 铅山县| 宜宾市| 都安| 鲜城| 潼关县| 商都县| 开远市| 白山市| 阜南县| 衡东县| 乐业县| 大理市| 温宿县| 洛宁县| 望江县| 怀宁县| 太仓市| 留坝县| 原平市| 乌鲁木齐县| 武汉市| 富阳市| 乌兰察布市| 蛟河市| 武安市| 新泰市|