freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

一名java培訓(xùn)生的學(xué)習(xí)筆記-資料下載頁

2025-06-23 14:16本頁面
  

【正文】 尤其在做插入和刪除操作時(shí),要進(jìn)行一組連貫的操作,如果任何一個(gè)步驟出現(xiàn)異常,就會(huì)有垃圾數(shù)據(jù)的產(chǎn)生,為了避免這種情況的產(chǎn)生我們必須對dao包中類的方法進(jìn)行完善:解決方案:首先,我們要想使得操作的連貫性,就不能在每個(gè)插入操作進(jìn)行異常的處理,應(yīng)該將它們相應(yīng)的方法拋出異常,在bo包中類調(diào)用相應(yīng)的方法時(shí),將它們添加到一個(gè)事務(wù)中去(事務(wù)就是指全部完成或全部放棄的操作),再try—catch。這樣即避免了垃圾數(shù)據(jù)的產(chǎn)生,又實(shí)現(xiàn)了代碼的復(fù)用。其次,在進(jìn)行關(guān)聯(lián)表操作時(shí),因?yàn)榇嬖诩s束條件,我們需要使用到序列。當(dāng)我們進(jìn)行插入操作時(shí),應(yīng)先查詢主表的序列值,然后用該值去插入,同理從表也應(yīng)當(dāng)如此。舉個(gè)簡單的例子測試一下:首先我們在數(shù)據(jù)庫中建立關(guān)聯(lián)表 CREATE TABLE PK_TABLE( PID NUMBER(6), PNAME VARCHAR2(10) , CONSTRAINT PK_TABLE_PID_PK PRIMARY KEY (PID) ) 建立主表 CREATE SEQUENCE PK_TABLE_SEQ MINVALUE 1 MAXVALUE 9999999999999 START WITH 1 INCREMENT BY 1 CACHE 20 創(chuàng)建主表序列 INSERT INTO PK_TABLE VALUES(,39。PNAME139。) 插入一條數(shù)據(jù) SELECT * FROM PK_TABLE CREATE TABLE FK_TABLE( FID NUMBER(6), PID NUMBER(6), FNAME VARCHAR2(10) , CONSTRAINT PK_TABLE_FID_PK PRIMARY KEY (FID), CONSTRAINT FK_TABLE_PID_FK FOREIGN KEY (PID) REFERENCES PK_TABLE(PID) ) 創(chuàng)建從表 CREATE SEQUENCE FK_TABLE_SEQ MINVALUE 1 MAXVALUE 9999999999999 START WITH 1 INCREMENT BY 1 CACHE 20 創(chuàng)建從表序列 INSERT INTO FK_TABLE VALUES(,1,39。FNAME139。)。 INSERT INTO FK_TABLE VALUES(,1,39。FNAME239。)。 INSERT INTO FK_TABLE VALUES(,1,39。FNAME339。) 。 在從表中插入三條數(shù)據(jù) SELECT * FROM FK_TABLE。 SELECT * FROM PK_TABLE。主表數(shù)據(jù)如上圖從表數(shù)據(jù)如上圖 我們在進(jìn)行操作時(shí),因?yàn)橛屑s束條件,所以在進(jìn)行插入操作時(shí),應(yīng)先插入主表中的數(shù)據(jù),再插入從表中的數(shù)據(jù)經(jīng)過改進(jìn)后dao包中類的方法:public void insert_Pk_Table(int pid,Connection conn) throws Exception{ //插入主表數(shù)據(jù)的方法,該方法將拋出異常 String sql=insert into pk_table values(?,39。vc39。)。 PreparedStatement pstmt=(sql)。 (1,pid)。 ()。 } public void insert_Fk_Table(int fk,int pid,Connection conn) throws Exception{ //插入從表數(shù)據(jù)的方法,該方法將拋出異常 String sql=insert into fk_table values(?,?,39。vc39。)。 PreparedStatement pstmt=(sql)。 (1,fk)。 (2,pid)。 ()。 } public int select_Pk_Seq(Connection conn) throws Exception{ //查詢主表序列的方法select_Pk_Seq,該方法返回主表的序列值 //該方法將拋出異常 int pk=0。 String sql=select as pk from dual。 Statement stmt=()。 ResultSet rs=(sql)。 if(()){ pk=(pk)。 } return pk。 } public int select_Fk_Seq(Connection conn) throws Exception{ //查詢從表序列的方法select_Fk_Seq,該方法返回從表的序列值 //該方法將拋出異常 int fk=0。 String sql=select as fk from dual。 Statement stmt=()。 ResultSet rs=(sql)。 if(()){ fk=(fk)。 } return fk。 }我在bo 包中類進(jìn)行方法調(diào)用時(shí)處理它們拋出的異常public void insertAll(){ //創(chuàng)建bo包中的方法insertAll(),該方法對dao包中類的方法進(jìn)行匯總 //并處理它們拋出的異常 StudentDao st=new StudentDao()。 int pk=0。 int fk=0。 //定義兩個(gè)局部變量,分別儲(chǔ)存主表和從表中主鍵值 Connection conn=null。 try{ conn=()。 //連接數(shù)據(jù)庫 (false)。 //取消自動(dòng)提交 pk=(conn)。 fk=(conn)。 //分別查詢主表和從表中主鍵值,將它們作為參數(shù) //傳遞給insert_Pk_Table,insert_Fk_Table方法 (pk,conn)。 (fk,pk,conn)。 ()。 //如果都插入成功則提交,否則進(jìn)行異常處理 }catch(Exception e){ try { //只要有一個(gè)插入操作失敗,就回滾,避免垃圾數(shù)據(jù)的產(chǎn)生 ()。 } catch (SQLException e1) { // TODO 自動(dòng)生成 catch 塊 ()。 } ()。 }finally{ try{ (true)。 //設(shè)置自動(dòng)提交 ()。 //關(guān)閉數(shù)據(jù)庫連接 }catch(Exception e){ ()。 } } }我們在eclipse中測試:我們分別查詢主表個(gè)從表驗(yàn)證一下:插入成功。 第四章 2007年7月4日 星期三 授課教師: 學(xué)生: 第一節(jié) 一個(gè)簡單關(guān)聯(lián)表項(xiàng)目開發(fā)一、項(xiàng)目介紹1 在數(shù)據(jù)庫中建立表 部門表 部門id pk 部門名稱 主管姓名 員工表 員工id pk 姓名 部門id fk 生日 (date) 工資 要求:主鍵使用序列2 設(shè)計(jì)一個(gè)程序,完成下面功能: 1 增加一個(gè)部門,名稱是開發(fā)部,主管姓名是bill。有3名員工,信息如下: 姓名 生日 工資 tom 19801011 5000 harry 1981111 6000 susan 1983111 3000 把上面的數(shù)據(jù)插入數(shù)據(jù)庫 2 查詢下面信息: 員工姓名,所在部門 生日,工資。生日以 yyyy/mm/dd格式顯示 并且在控制臺(tái)輸出 3 刪除tom的記錄要求: 類名,方法名稱 ,變量名稱要規(guī)范 不允許有垃圾代碼 代碼要有必要的注釋二、項(xiàng)目分析:問題一:在數(shù)據(jù)庫中建立表建表時(shí)候需用到序列,注意創(chuàng)建序列時(shí)的語句,以及創(chuàng)建關(guān)聯(lián)表的約束條件問題二:增加一個(gè)部門,名稱是開發(fā)部,主管姓名是bill。有3名員工,信息如下:完成插入操作時(shí)需先插入主表再插從表,因?yàn)橛屑s束條件,所以要注意序列如何在java程序中使用,dao包中的類設(shè)計(jì)以及異常的處理。查詢信息并且在控制臺(tái)輸出查詢語句需要兩個(gè)表關(guān)聯(lián)查詢,注意List和iterator的使用刪除tom的記錄單表刪除操作,直接在dao包中處理即可三、項(xiàng)目設(shè)計(jì)方案: 按照項(xiàng)目要求分別創(chuàng)建主表和從表,并為它們分別創(chuàng)建序列(1)vo包的設(shè)計(jì): Vo類:由于需要輸出員工姓名,所在部門 生日,工資 ,所以在vo包中建立Vo類,其中定義相應(yīng)的數(shù)據(jù)成員,如果在插入時(shí)候用批處理操作,還需建立相應(yīng)的構(gòu)造方法,使得初始化Vo對象時(shí)更方便,如果使用批處理操作,那么就不用查詢從表的主鍵,而是在插入從表的sql語句中使用序列。并且在vo包中創(chuàng)建從表相應(yīng)的vo類。優(yōu)點(diǎn):執(zhí)行效率高,不用再寫查詢從表序列的方法,缺點(diǎn):代碼稍復(fù)雜。出于插入條數(shù)少以及代碼更清晰考慮,不使用批處理插入操作。 (2)conn包的設(shè)計(jì):Constant類:出于代碼復(fù)用考慮設(shè)計(jì)此類,儲(chǔ)存各種數(shù)據(jù)庫的驅(qū)動(dòng)程序和數(shù)據(jù)庫連接有關(guān)數(shù)據(jù)常量DBConn類:其中設(shè)計(jì)的lianJie()方法,獲取數(shù)據(jù)庫的連接。(3)dao包的設(shè)計(jì): InsertDao類:在該類中分別設(shè)計(jì)插入主表數(shù)據(jù)和從表數(shù)據(jù)的方法insert_Pk_Table和insert_Fk_Table ,并根據(jù)它們表中的字段設(shè)計(jì)形式參數(shù),由于進(jìn)行多表關(guān)聯(lián)的插入操作,為保證避免垃圾數(shù)據(jù)的產(chǎn)生,將它們的方法分別拋出異常,最后在bo包中將它們放入同一事務(wù)中,并在調(diào)用相應(yīng)的方法時(shí)處理該異常。SelectKey類:由于存在約束條件,我們在插入數(shù)據(jù)操作前應(yīng)該分別查詢它們的序列值,然后將它們作為參數(shù)傳遞給InsertDao類中的方法。該類中包括兩個(gè)方法:select_Pk_Seq和select_Fk_Seq它們也分別拋出異常,在bo包中類的方法中處理異常,避免重復(fù)代碼的產(chǎn)生。同時(shí)也保證了查詢操作和插入操作在同一事務(wù)中,使插入操作更嚴(yán)謹(jǐn)。 SelectDao類:該類主要完成數(shù)據(jù)的查詢,這里需要進(jìn)行多表關(guān)聯(lián)查詢。將查詢的結(jié)果裝入List中,為bo層的輸出提供方法支持。DeleteDao類:該類完成數(shù)據(jù)員工表中刪除一條信息的操作,一種方案是將這個(gè)方法放入上面的事務(wù)中,使得方法更簡潔,但缺點(diǎn)是不能分步完成插入和刪除操作。由于是對單表進(jìn)行操作,所以我們這里單獨(dú)在該方法內(nèi)處理異常。(4)bo包的設(shè)計(jì):Business類:該類中我們根據(jù)項(xiàng)目要求分別設(shè)計(jì)三個(gè)方法:insert_Q1()該方法完成數(shù)據(jù)插入功能,將dao包中的各個(gè)類的方法進(jìn)行匯總,并處理異常,完成數(shù)據(jù)插入的操作,提供給客戶方便,只需要調(diào)用該方法就可以。shuChu_Q2()方法該方法完成查詢并輸出的功能在該方法內(nèi)調(diào)用SelectDao類中的方法,將查詢數(shù)據(jù)庫的結(jié)果放入迭代器輸出。delete_Q3()方法將dao包中DeleteDao類的方法傳遞給客戶端。(5)test包Test類:模擬客戶端進(jìn)行測試用的類,它將作為程序的入口 (6)lib包 四、編寫偽碼,由于程序太長,偽碼的部分見程序注釋五 程序真實(shí)碼vo包:Vo類: package vo。public class Vo { //它是一個(gè)標(biāo)準(zhǔn)的javabean,定義了私有的成員變量和公有的get、set方法 //由于需要輸出員工姓名,所在部門 生日,工資 //所以在vo包中建立Vo類,其中定義相應(yīng)的數(shù)據(jù)成員 //如果在插入時(shí)候用批處理操作,還需建立相應(yīng)的構(gòu)造方法,使得初始化Vo對象時(shí)更方便,如果使用批處理操作,那么就不用查詢從表的主鍵,而是在插入從表的sql語句中使用序列,并且在vo包中創(chuàng)建從表相應(yīng)的vo類。優(yōu)點(diǎn):執(zhí)行效率高,缺點(diǎn),代碼稍復(fù)雜 //出于插入條數(shù)少以及代碼更清晰考慮,不使用批處理插入操作。 private String name。 private String depart。 private String birthday。 private int salary。 public String getBirthday() { return birthday。 }
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1