06-8-14

Java 讀取 excel 工作簿數(shù)據(jù)存入 oracle 的原理:

? 讀取工作簿, - java 語(yǔ)句處理得到 sheet- java 函數(shù)處理得到 sheet 中所有行的數(shù)據(jù) - 〉依次把各行數(shù)據(jù)存入 DB 中;

?1.DAO 類:虛基類

????????? 構(gòu)造函數(shù)中實(shí)現(xiàn)與 oracle 的連接;

????????? 定義了一個(gè)抽象函數(shù) excute_insert(); (把一行數(shù)據(jù)的各個(gè)字段 insert into oracle

2. ContentHandle 類:虛基類

????????? 構(gòu)造函數(shù)中實(shí)現(xiàn)讀取工作簿;

????????? 定義了三個(gè)抽象函數(shù) HandleOneSheet(),StoreToDB() ExecuteHandle();

3. FSCLContentHandle.java :實(shí)現(xiàn)類

????????? 包含三個(gè)類: FSCLContentHandle 類, FSCLDAO() 類和 FSCLDO() 類;

????????? FSCLDAO() 類: private static 類型,繼承 DAO ,通過(guò)內(nèi)置 FSCLDO() 類的對(duì)象實(shí)現(xiàn) .DAO 類的抽象函數(shù) excute_insert()

????????? FSCLDO() 類: private static 類型,實(shí)際上是一個(gè) javabean ,就是一系列的 get set 函數(shù);用于接收從 excel 中讀取得到的一行數(shù)據(jù)中各列的值,并在 excute_insert() 函數(shù)中把各個(gè)值依次傳給 insert 語(yǔ)句;

????????? FSCLContentHandle 類: public static 類型 , 繼承 ContentHandle ;( 注:當(dāng)一個(gè) .java 文件中有多個(gè)類時(shí),只能有一個(gè) public 類,文件名與 public 類的名稱相同。 ) 這里實(shí)現(xiàn)了 ContentHandle 類的三個(gè)抽象函數(shù) HandleOneSheet(),StoreToDB() ExecuteHandle();

????????? HandleOneSheet() 函數(shù): public list HandleOneSheet(Sheet sheet), 內(nèi)置 FSCLDO() 類的對(duì)象 ; 傳入的是一個(gè)工作表,把工作表的每一行各列的值依次讀取出來(lái)通過(guò) FSCLDO() 類的對(duì)象的 set 方法一一賦值給 FSCLDO() 類的各個(gè)成員屬性;最后函數(shù)的返回值為該工作表的所有行和列的值,為 list 類型;

????????? StoreToDB() 函數(shù) public void StoreToDB(list Dolist), 內(nèi)置 FSCLDAO() 類的對(duì)象 ; 傳入的是 list 類型數(shù)據(jù),通過(guò) FSCLDAO() 類的對(duì)象的 excute_insert() 函數(shù),把數(shù)據(jù)存入 DB

????????? ExecuteHandle() 函數(shù):獲得工作簿, java 語(yǔ)句處理得到 sheet ,調(diào)用 HandleOneSheet() 函數(shù)得到 list 類型數(shù)據(jù)(工作表的所有行和列的值),調(diào)用 StoreToDB() 函數(shù)把數(shù)據(jù)存入 DB

4. 為每個(gè)工作簿在 oracle 中建一個(gè)表;

OK