學習筆記 5

2021-09-21 18:39:01 字數 2874 閱讀 9335

二、把資料存進session中,並讓資料先儲存在臨時表中

**、資料過載忽略掉萬年不變的東西,用ajax提交表單,前面禁用了資料庫按鈕,到這裡要啟用資料庫按鈕

把狀態設定為false就可以了。輸出、清空臨時表單,拿到提交表單的路徑到控制器

httppostedfilebase似乎拿來上傳檔案 通過http協議用post方法來提交檔案。引數file一定要和form表單中的input中的name值一樣,不然就提交不了資料,

下面對httppostedfilebase的一些認識

思路:先獲取檔案字尾名-宣告二進位制陣列(byte)-將檔案轉化成二進位制陣列-二進位制陣列轉化成記憶體流-記憶體流轉化成excel**(npoi方法)建立工作薄-工作表(npoi方法)-建立datatable(記憶體中的資料表)獲取相對應的資料-建立新studentvo裝遍歷迴圈後的每一條資料-儲存資料到session中,基本思路就這樣了;

1、 獲取檔案字尾:用system.io.path中的成員getextrnsion,他和上面的getfilename有些不同。getextrnsion獲取檔案的副檔名,比如excel的副檔名數.xls,指定的路徑的副檔名(包含句點「.」)。getfilename獲取檔案的檔名和副檔名,比如excel命名為資料表,getfilename獲取的就是資料表,path 中最後的目錄字元後的字元

判斷檔案是否上傳為excel(.xls) 大寫或者小寫,否則放回else並提示上傳正確的檔案型別,

2、 宣告二進位制陣列(byte):contentlength:在派生類重寫時,獲取已上傳檔案的大小寫(以位元組為單位)

3、 將檔案(file)轉化成二進位制陣列:inputstream:在派生類重寫時,獲取乙個stream物件,該物件指向乙個上載檔案,已準備讀取該檔案內容,read(byte buffer, int offset, int count)一一對應上

4、 二進位制陣列轉化成記憶體流:memorystream:基於指定的位元組陣列初始化 system.io.memorystream 類的無法調整大小的新例項。memorystream(byte buffer)把宣告的陣列放進去

5、 記憶體流轉化成excel**(npoi方法)建立工作薄:判斷工作表中有沒有資料沒有資料就返回else提醒使用者

6、 工作表(npoi方法):new乙個新的物件列表studentvo,用於存放匯入學生資訊,獲取工作薄中的第一張工作表,getsheetat(int index)用physicalnumberofrows判斷資料表中是否有資料沒有資料就返回else提醒使用者,physicalnumberofrows 獲取物理行數,也就是不包括那些空行(隔行)的情況,

7、 建立datatable(記憶體中的資料表)獲取相對應的資料:定義datatable,獲取資料表中的第一行

獲取**列數 firstcellnum 獲取某行第乙個單元個下標

lastcellnum 獲取某行的列數

firstrownum 獲取第乙個實際行的下標

lastcellnum 獲取最後乙個實際行的下標

for迴圈每乙個表頭單元格。將讀取後的資料放到datatable中,

讀取excel**資料建立行和列,for迴圈獲取第一行資料,第一行資料為標題,獲取行的資料(1行、2行等等直 到n行),建立datatale行,遍歷excel**中的所有單元格,建立中的單元格不能為空

查詢相對應的表的id,這幾張表不知學生表裡,要把他們獲取一遍,

獲取到相對應的表,用foreach遍歷一條一條的資料新增到每一行中,在studentvo裡有想要的資料,建立新的studentvo ,在學生表沒有的字段都在studentvo裡拿,學院-專業-年級-班級都能一一拿到。

拿到學院-專業-年級-班級名稱後,在拿學生表中的各個字段,可以在studentvo裡直接拿,學生表本身就有的,

一條一條新增後儲存到宣告學生物件列表中

再把資料存到session中

三、 把資料存到資料庫中

頁面忽略,資料從session中拿過來,先從session中獲取資料,new乙個物件列表studentvo,用來接收session中的資料

獲取session後用foreach遍歷迴圈liststudent儲存到資料庫,到下面跟新增一樣了,見圖:

流程一樣 判斷匯入新增的是否和資料庫中的重複—新增使用者表—新增角色明細表—儲存

在使用者表中獲取使用者id,new一張新的學生表出來,新的學生表字段等於上面遍歷student欄位

完成!!!!!

學習筆記5

1 有向圖頂點 以頂點v為終點的邊的數目,稱為v的入度,記為 id v 以頂點v為起點的邊的數目,稱為v的出度,記 為 od v 頂點v的度則定義為該頂點的入度與 出度之和,即d v id v od v 2 有向圖,所有頂點的入度之和 所有頂點的出度之和 弧數 1 無向圖頂點的度 關聯於該頂點的邊的...

Effective Java 學習筆記(5)

盡量復用物件,而不是建立新的物件,特別是當乙個物件是immutable 不可改變 的時候。如string物件,string s new string string 千萬不要這樣做,因為這裡實際上建立了兩個物件。要避免出現這樣的情況,1是可以用靜態工廠函式,來解決,如類庫中的boolean.value...

Struts學習筆記5

2.方法 public exceptionconfig findexception class type 查詢異常物件 public actionforward findforward string name public string findforwards 找到乙個action可以使用的act...