Java課程設(shè)計(jì)通訊錄管理系統(tǒng)_第1頁
Java課程設(shè)計(jì)通訊錄管理系統(tǒng)_第2頁
Java課程設(shè)計(jì)通訊錄管理系統(tǒng)_第3頁
Java課程設(shè)計(jì)通訊錄管理系統(tǒng)_第4頁
Java課程設(shè)計(jì)通訊錄管理系統(tǒng)_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

PAGE2******************實(shí)踐教學(xué)******************蘭州理工大學(xué)計(jì)算機(jī)與通信學(xué)院20XX年秋春季學(xué)期Java課程設(shè)計(jì)題目:通訊錄管理系統(tǒng)專業(yè)班級(jí):姓名:學(xué)號(hào):指導(dǎo)教師:成績:摘要 隨著社會(huì)的發(fā)展,人際關(guān)系變來越重要,為了保持良好的人際關(guān)系,必須常與親戚朋友,同學(xué)同事保持聯(lián)系,但有時(shí)候存在許多限制條件,因此我們需要為了快速查找聯(lián)系人的信息,節(jié)省查找時(shí)間,開發(fā)通訊錄管理系統(tǒng)。 通訊錄管理系統(tǒng)是一個(gè)基于C/S模式的個(gè)人通訊錄管理系統(tǒng),它是將自己的聯(lián)系人的具體信息集中處理,成為一個(gè)方便人們使用的小軟件。在開發(fā)過程中應(yīng)用java,JDK,MYSQL,SWING等技術(shù),由于開發(fā)工具與數(shù)據(jù)庫之間的良好使用,可以為開發(fā)帶來方便,使之成為可視性的系統(tǒng)。 通過采用相關(guān)技術(shù),將系統(tǒng)設(shè)計(jì)的功能全部實(shí)現(xiàn)。功能包括:用戶登錄,添加聯(lián)系人信息,修改聯(lián)系人信息,刪除聯(lián)系人信息,查詢聯(lián)系人信息,可以瀏覽全部通訊錄聯(lián)系人,可以根據(jù)數(shù)據(jù)表的歌字段來查詢你要找的聯(lián)系人等功能。關(guān)鍵字:C/S架構(gòu),聯(lián)系信息,通訊錄,數(shù)據(jù)庫目錄一、需求分析…………………2二、系統(tǒng)總體規(guī)劃……………2三、程序流程……………···2四、設(shè)計(jì)步驟…………………51.?dāng)?shù)據(jù)庫表的設(shè)計(jì)………52.詳細(xì)設(shè)計(jì)………………5設(shè)計(jì)總結(jié)…………………9結(jié)束語···················································10六、參考文獻(xiàn)…………………11七、程序清單…………………12一需求分析通訊錄在當(dāng)今的日常生活工作中的應(yīng)用是十分普及的,每個(gè)人都擁有大量的通訊錄資料信息,當(dāng)前大家一般都用手工來記錄所有的通訊錄信息。但隨著時(shí)代的發(fā)展,人們的聯(lián)系方式及信息變得復(fù)雜多樣,通訊錄信息大量增加,導(dǎo)致管理這些信息資料就成了問題。直接操作來查找,添加,修改,刪除這些信息,由于數(shù)據(jù)多,工作量十分巨大,查找,編輯都很困難,而且極易出錯(cuò),容易造成資料的混亂或丟失。在各種手機(jī),上午通內(nèi)設(shè)的電話簿盡管攜帶方便卻又存在“記錄量少,界面小,瀏覽不方便,記錄信息不全面”的缺點(diǎn)。有人利用Excel或Word編制通訊錄,雖然數(shù)據(jù)比較全面,信息比較充分,可是查找及其不便,維護(hù)起來也麻煩,所以運(yùn)用文件或數(shù)據(jù)庫技術(shù)建立一個(gè)通訊錄管資料理系統(tǒng)十分必要,使通訊錄資料管理工作規(guī)范化,系統(tǒng)化,程序化,避免資料管理中的混亂。提高信息處理速度和準(zhǔn)確性,能夠及時(shí),準(zhǔn)確,有效的查詢和修改通訊錄的情況。二系統(tǒng)總體規(guī)劃在明確了系統(tǒng)與數(shù)據(jù)庫結(jié)構(gòu)的前提下,設(shè)計(jì)該系統(tǒng)主要功能:系統(tǒng)登錄,數(shù)據(jù)的輸入與修改,數(shù)據(jù)的刪除,聯(lián)系人和群管理等。主要功能包括:(1)用戶的登錄,注冊(cè),刪除功能;(2)聯(lián)系人信息的增加,刪除,修改,查詢的功能;(3)聯(lián)系人分組的增加,刪除的功能;三程序流程通訊錄管理系統(tǒng)通訊錄管理系統(tǒng)按條查詢?nèi)坎樵冇脩魯?shù)據(jù)統(tǒng)計(jì)功能用戶數(shù)據(jù)刪除功能用戶數(shù)據(jù)查詢功能用戶數(shù)據(jù)增添功能系統(tǒng)管理登錄按條查詢?nèi)坎樵冇脩魯?shù)據(jù)統(tǒng)計(jì)功能用戶數(shù)據(jù)刪除功能用戶數(shù)據(jù)查詢功能用戶數(shù)據(jù)增添功能系統(tǒng)管理登錄注冊(cè)新用戶注冊(cè)新用戶錄入數(shù)據(jù)庫錄入數(shù)據(jù)庫退出系統(tǒng)退出系統(tǒng)a分流程示意圖1系統(tǒng)登錄:地址性別聯(lián)系人用戶密碼用戶名姓名設(shè)計(jì)流程圖地址性別聯(lián)系人用戶密碼用戶名姓名姓名emailemail群組管理群組管理電話電話分組分組分組名分組名開始2用戶界面流程圖:開始輸入用戶密碼鏈接數(shù)據(jù)庫信息進(jìn)入通訊錄注冊(cè)界面登陸界面未注冊(cè)輸入用戶密碼鏈接數(shù)據(jù)庫信息進(jìn)入通訊錄注冊(cè)界面登陸界面結(jié)束 消息不正確結(jié)束 開始開始3用戶增加聯(lián)系人流程:4用戶修改流程圖:開始開始通訊錄界面通訊錄界面通訊錄界面通訊錄界面 輸入聯(lián)系人信息輸入不合法輸入聯(lián)系人信息輸入不合法新建聯(lián)系人信息輸入不合法新建聯(lián)系人信息鏈接數(shù)據(jù)庫信息鏈接數(shù)據(jù)庫信息鏈接數(shù)據(jù)庫信息鏈接數(shù)據(jù)庫信息返回通訊錄界面返回通訊錄界面信息已存在或不合法返回通訊錄界面返回通訊錄界面結(jié)束結(jié)束結(jié)束結(jié)束開始5用戶修查詢程:6用戶刪除流程:開始開始開始入通訊錄界面通訊錄界面進(jìn)入通訊錄界面進(jìn)入通訊錄界面輸入查找信息輸入查找信息查找聯(lián)系人查找失敗查找失敗查找聯(lián)系人鏈接數(shù)據(jù)庫信息鏈接數(shù)據(jù)庫信息刪除聯(lián)系人信息不存在信息不刪除聯(lián)系人存在返回登陸界面返回登陸界面返回通訊錄界面返回通訊錄界面結(jié)束結(jié)束結(jié)束結(jié)束 四設(shè)計(jì)步驟【1】數(shù)據(jù)庫設(shè)計(jì)(1)表1普通用戶數(shù)據(jù)表列名數(shù)據(jù)類型長度是否為空usernamevarchar50否passwordvarchar50否(2)記錄信息數(shù)據(jù)表,如表2表2記錄信息數(shù)據(jù)表名類型長度是否空idint50否namevarchar50否telvarchar50否phonevarchar50否qqvarchar50否emailvarchar50否categoryvarchar50否workvarchar50否aaressvarchar50否【2】詳細(xì)設(shè)計(jì)LoginAction類,封裝的信息由密碼和賬戶名,以及登錄失敗時(shí)拋出的異常方法。Stringexecute()函數(shù)繼承了Exception類,如果登錄密碼不匹配,則會(huì)拋出異常,提示Error登錄失敗。在登錄模塊中有管理員用戶和普通用戶,管理員可以對(duì)系統(tǒng)中的信息添加,修改,刪除等功能,普通用戶只進(jìn)行查找操.用戶添加: LoginAction類繼承ActionSuporrt類,封裝有name,sex,birthday,email,tel屬性,封裝有成員函數(shù)set_name(),set_sex(),set_birthday(),set_email(),set_tel()用來添加各個(gè)屬性值,提示操作失敗信息用Stringexecute()函數(shù)拋出異常。用詢查詢:FindAction類繼承ActionSuporrt類的屬性及方法,setInput()方法將輸入的信息傳遞給FindAction類內(nèi)的相應(yīng)屬性,getInput()方法用于返回輸入值,封裝的成員函數(shù)包括getlist()用于返回查詢到的元組列表。圖5顯示可以通過姓名,性別,出生日期,email地址對(duì)聯(lián)系人進(jìn)行查詢。用戶修改: ModAction類繼承ActionListenerde同名方法,完成MyFirstFrame中類的所有方法進(jìn)行修改直到成功,并且將修改后的信息通過ModActionString()導(dǎo)入數(shù)據(jù)庫。用戶刪除:DeleAction類繼承ActionSuporrt類,get_name()方法用于得到所要?jiǎng)h除的信息的主碼。封裝的數(shù)據(jù)成員包括name,封裝有isSuccess()函數(shù),用于判斷刪除成功與否。刪除模塊中,用戶可以根據(jù)某一關(guān)鍵字或多個(gè)關(guān)鍵字進(jìn)行刪除,刪除信息后會(huì)自動(dòng)提示。用戶導(dǎo)出:根據(jù)ActionlistenrWindows窗口提示,聯(lián)系人已經(jīng)成功導(dǎo)出。其結(jié)構(gòu)體經(jīng)初始化后已經(jīng)完成,導(dǎo)出的數(shù)據(jù)將成功存入數(shù)據(jù)庫中,此時(shí)數(shù)據(jù)庫可以隨時(shí)進(jìn)行查詢等一切可行性操作。五設(shè)計(jì)總結(jié)通過這次課程設(shè)計(jì)我加深了對(duì)于java語言應(yīng)用與實(shí)踐之間的連接,能更好的使用java語言! 在張永老師及同學(xué)們的引導(dǎo)下配合下,我完成了題目。只有通過合作,才能更高效率的完成任務(wù)。 實(shí)踐非常的重要。很多東西在理論層面是行的通的,但到實(shí)際中就行不通了。所以要多實(shí)踐,在不斷的修改調(diào)試過程中鞏固知識(shí)。程序設(shè)計(jì)基本符合了我預(yù)期的要求,運(yùn)行效果良好,無明顯的大的bug。在完成作業(yè)的過程中,我遇到了不少困難,其中有的是經(jīng)過自己苦思冥想想出來的,也有的是詢問比較厲害的同學(xué)得以解決的,還剩下的一些疑難問題當(dāng)然就是求助網(wǎng)絡(luò)了。譬如說照片上傳管理預(yù)覽功能的實(shí)現(xiàn),以及最小化到系統(tǒng)托盤的功能實(shí)現(xiàn)等。其實(shí)不光是在網(wǎng)絡(luò)上查詢解決問題的方法,我也從網(wǎng)絡(luò)上得到了不少編程的靈感和好的思想。比如說我的程序中并沒有運(yùn)用網(wǎng)絡(luò)編程,基本是一個(gè)單機(jī)版的程序,這其中基本上沒有能夠應(yīng)用到多線程的地方。但是經(jīng)過我在網(wǎng)絡(luò)上的查詢,有人建議我可以在相片加載預(yù)覽時(shí)候運(yùn)用多線程,從而提高速度。于是我就這樣做了,從而使我的程序更完善了。善于利用網(wǎng)絡(luò),對(duì)于我們的學(xué)習(xí)是大有裨益的。五、結(jié)束語通過兩周的努力,我順利的完成了通訊錄系統(tǒng)的開發(fā)。基于基本設(shè)計(jì)要求,我查閱了相關(guān)自資料,進(jìn)行了需求分析,概要設(shè)計(jì),詳細(xì)設(shè)計(jì),編碼,調(diào)試運(yùn)行等軟件開發(fā)步驟。無論在理論上還是在實(shí)踐上都有較大幅度的提高,獨(dú)立分析問題解決問題和他人交流的能力明顯提高。通過這次課程設(shè)設(shè)計(jì),我對(duì)JAVA語言有了基本的認(rèn)識(shí)。JAVA是完全面向?qū)ο蟮恼Z言,使用方便,界面友好,編譯較難,能極大的節(jié)約運(yùn)行時(shí)間,提高響應(yīng)速度。其次軟件工程的思想有了深入了解:完善需求,最大的滿足客戶需求,充分做好風(fēng)險(xiǎn)分析。為了保證項(xiàng)目的速度,定期對(duì)項(xiàng)目進(jìn)行評(píng)估工作。本次項(xiàng)目隨小,我卻悟出了個(gè)簡單的道理:學(xué)習(xí)就像軟件開發(fā),拿到一本書后看看,提出自己未知的問題,進(jìn)而分析問題,解決問題。通過課程設(shè)計(jì),我深刻的認(rèn)識(shí)到在當(dāng)今激烈的社會(huì)競爭中只有學(xué)到本領(lǐng)才能有立足之地,同時(shí)也感到軟件開發(fā)的幸苦。首先要有耐心,要忍著密密麻麻的代碼,無數(shù)遍的修改,無數(shù)遍的調(diào)試,但是當(dāng)你調(diào)試成功時(shí),你會(huì)感到努力的結(jié)果!謝謝老師,謝謝同學(xué)!我們風(fēng)雨無阻,一路向前。六、參考文獻(xiàn)[l]其慶《Java模塊設(shè)計(jì)實(shí)例經(jīng)典[M]》冶金工業(yè)出版社,20046[2]甲耀《CoreJava高級(jí)應(yīng)用程序設(shè)計(jì)教程》電子工業(yè)出版社,2006.3[3]JamesGosling《Java語言規(guī)范[M]》機(jī)械工業(yè)出版社,2006.5[4]吳斯特曼,《java核心技術(shù)》,機(jī)械工業(yè)出版社,2008.5[5]曹靜,《軟件丌發(fā)生命周期與統(tǒng)一建模語言UML》,水利水電出版社,20082[7]《Java語法及網(wǎng)絡(luò)應(yīng)用設(shè)計(jì)》,徐迎曉編著,清華大學(xué)出版社2002.10[8]《

ThinkinginJAVA(ThirdEdition)》,BruceEckel,機(jī)械工業(yè)出版社2010.5.7[9]《Java2參考大全(第四版)》,[美]HerbertSchildt著,張玉清、吳浦峰、尚勇等譯,清華大學(xué)出版社2009.6.7七、源代碼1packagetongxun;publicclassUseSystem{ /** *@paramargs */ publicstaticvoidmain(String[]args){ newMySystem().validate(); }}2packagetongxun;importjava.awt.*;importjava.awt.*;importjava.awt.event.*;importjava.io.BufferedWriter;importjava.io.File;importjava.io.FileWriter;importjava.io.IOException;importjava.util.*;importjavax.swing.*;publicclassMySystemextendsJFrameimplementsActionListener,ItemListener{ UserServiceuService=newUserService(); Useru=newUser(); Choicechoice=newChoice(); JTextFieldt1=newJTextField(15); JButtonb1=newJButton("查詢"); java.awt.Listlist=newjava.awt.List(6,true); JButtonb2=newJButton("增加"); JButtonb3=newJButton("刪除"); JButtonb4=newJButton("修改"); JButtonb5=newJButton("導(dǎo)出"); Containercon=getContentPane(); java.util.List<User>uList=newArrayList<User>(); //staticVector<User>uv=newVector<User>(100); intflag=0; MySystem(){ super("通訊錄管理程序"); setSize(400,400); con.setLayout(newBorderLayout()); choice.add("姓名"); choice.add("類別"); choice.add("手機(jī)號(hào)碼"); choice.add("查詢?nèi)坑涗?); choice.add("qq"); Panelp1=newPanel(); //Panelp2=newPanel(); Panelp3=newPanel(); p1.setBackground(Color.red); p1.setSize(300,10); //p2.setBackground(Color.cyan); //p2.setSize(380,300); p3.setBackground(Color.yellow); list.setSize(300,300); p1.add(choice); p1.add(t1); p1.add(b1); p3.add(b2); p3.add(b4); p3.add(b3); p3.add(b5); con.add("North",p1); con.add("Center",list); con.add("South",p3); setVisible(true); validate(); addWindowListener(newWindowAdapter(){ publicvoidwindowClosing(WindowEvente){ setVisible(false); System.exit(0); } }); b1.addActionListener(this); b2.addActionListener(this); b3.addActionListener(this); b4.addActionListener(this); b5.addActionListener(this); list.addItemListener(this); } publicvoidactionPerformed(ActionEvente){ if(e.getSource()==b2){//通過產(chǎn)生外部窗體,來實(shí)現(xiàn)添加功能 finalJFramenewf=newJFrame("添加聯(lián)系人"); newf.setSize(400,400); newf.setVisible(false); newf.setLayout(newGridLayout(10,2)); JLabeljb1=newJLabel("聯(lián)系人姓名:"); finalJTextFieldjtf1=newJTextField(15); Panelpp1=newPanel(); pp1.add(jb1); pp1.add(jtf1); newf.getContentPane().add(pp1); JLabeljb2=newJLabel("聯(lián)系人電話:"); finalJTextFieldjtf2=newJTextField(15); Panelpp2=newPanel(); pp2.add(jb2); pp2.add(jtf2); newf.getContentPane().add(pp2); JLabeljb3=newJLabel("固定電話:"); finalJTextFieldjtf3=newJTextField(15); Panelpp3=newPanel(); pp3.add(jb3); pp3.add(jtf3); newf.getContentPane().add(pp3); JLabeljb4=newJLabel("聯(lián)系人QQ:"); finalJTextFieldjtf4=newJTextField(15); Panelpp4=newPanel(); pp4.add(jb4); pp4.add(jtf4); newf.getContentPane().add(pp4); JLabeljb7=newJLabel("聯(lián)系人email:"); finalJTextFieldjtf7=newJTextField(15); Panelpp7=newPanel(); pp7.add(jb7); pp7.add(jtf7); newf.getContentPane().add(pp7); JLabeljb8=newJLabel("聯(lián)系類別:"); finalJTextFieldjtf8=newJTextField(15); Panelpp8=newPanel(); pp8.add(jb8); pp8.add(jtf8); newf.getContentPane().add(pp8); JLabeljb5=newJLabel("聯(lián)系人工作:"); finalJTextFieldjtf5=newJTextField(15); Panelpp5=newPanel(); pp5.add(jb5); pp5.add(jtf5); newf.getContentPane().add(pp5); JLabeljb6=newJLabel("現(xiàn)居住地地址:"); finalJTextFieldjtf6=newJTextField(15); Panelpp6=newPanel(); pp6.add(jb6); pp6.add(jtf6); newf.getContentPane().add(pp6); JButtonbb1=newJButton("提交"); JButtonbb2=newJButton("關(guān)閉"); Panelpp9=newPanel(); pp9.add(bb1); pp9.add(bb2); newf.getContentPane().add(pp9); //JTextAreajta=newJTextArea();Panelpp10=new //Panel();pp10.add(jta);newf.getContentPane().add(); bb1.addMouseListener(newMouseAdapter(){ publicvoidmouseClicked(MouseEventee){ Useru=newUser(); u.setName(jtf1.getText()); u.setTel(jtf2.getText()); u.setPhone(jtf3.getText()); u.setQq(jtf4.getText()); u.setWork(jtf5.getText()); u.setAddress(jtf6.getText()); u.setEmail(jtf7.getText()); u.setCategory(jtf8.getText()); if(uService.add(u)){ JOptionPane.showMessageDialog(null,"添加成功!?。?); }else JOptionPane.showMessageDialog(null,"添加失?。。。?); } }); bb2.addMouseListener(newMouseAdapter(){ publicvoidmouseClicked(MouseEventee){ newf.setVisible(true); } }); newf.setVisible(true); } if(b1==e.getSource()){//通過調(diào)用select();實(shí)現(xiàn)模糊查詢 list.removeAll(); select(); } if(b3==e.getSource()){//通過獲得聯(lián)系人在list中的索引號(hào),來實(shí)現(xiàn)對(duì)聯(lián)系人的刪除 if(flag==0){ JOptionPane.showMessageDialog(null,"不能刪除該行!"); } u=uList.get(flag-1); if(uService.delById(u.getId())){ JOptionPane.showMessageDialog(null,"刪除成功!"); uList.remove(flag-1); list.removeAll(); list.add("編號(hào)"+""+"姓名"+""+"電話"); for(Useru1:uList){ list.add(u1.getId()+":"+u1.getName() +""+u1.getTel()); } }else JOptionPane.showMessageDialog(null,"刪除失??!"); } if(b4==e.getSource()){//通過獲得聯(lián)系人在list中的索引號(hào),同彈出一個(gè)外部窗體其中 //有聯(lián)系人的信息,用戶可以修改.并在將其存入數(shù)據(jù)庫 if(flag==0){ JOptionPane.showMessageDialog(null,"不能修改首行!"); return; } u=uList.get(flag-1); finalJFramenewf=newJFrame("添加聯(lián)系人"); newf.setSize(400,400); newf.setVisible(true); newf.setLayout(newGridLayout(10,2)); JLabeljb1=newJLabel("聯(lián)系人姓名:"); finalJTextFieldjtf1=newJTextField(u.getName(),15); Panelpp1=newPanel(); pp1.add(jb1); pp1.add(jtf1); newf.getContentPane().add(pp1); JLabeljb2=newJLabel("聯(lián)系人電話:"); finalJTextFieldjtf2=newJTextField(u.getTel(),15); Panelpp2=newPanel(); pp2.add(jb2); pp2.add(jtf2); newf.getContentPane().add(pp2); JLabeljb3=newJLabel("固定電話:"); finalJTextFieldjtf3=newJTextField(u.getPhone(),15); Panelpp3=newPanel(); pp3.add(jb3); pp3.add(jtf3); newf.getContentPane().add(pp3); JLabeljb4=newJLabel("聯(lián)系人QQ:"); finalJTextFieldjtf4=newJTextField(u.getQq(),15); Panelpp4=newPanel(); pp4.add(jb4); pp4.add(jtf4); newf.getContentPane().add(pp4); JLabeljb7=newJLabel("聯(lián)系人email:"); finalJTextFieldjtf7=newJTextField(u.getEmail(),15); Panelpp7=newPanel(); pp7.add(jb7); pp7.add(jtf7); newf.getContentPane().add(pp7); JLabeljb8=newJLabel("聯(lián)系類別:"); finalJTextFieldjtf8=newJTextField(u.getCategory(),15); Panelpp8=newPanel(); pp8.add(jb8); pp8.add(jtf8); newf.getContentPane().add(pp8); JLabeljb5=newJLabel("聯(lián)系人工作:"); finalJTextFieldjtf5=newJTextField(u.getWork(),15); Panelpp5=newPanel(); pp5.add(jb5); pp5.add(jtf5); newf.getContentPane().add(pp5); JLabeljb6=newJLabel("現(xiàn)居住地地址:"); finalJTextFieldjtf6=newJTextField(u.getAddress(),15); Panelpp6=newPanel(); pp6.add(jb6); pp6.add(jtf6); newf.getContentPane().add(pp6); JButtonbb1=newJButton("提交"); JButtonbb2=newJButton("關(guān)閉"); Panelpp9=newPanel(); pp9.add(bb1); pp9.add(bb2); newf.getContentPane().add(pp9); bb1.addMouseListener(newMouseAdapter(){ publicvoidmouseClicked(MouseEventee){ u.setName(jtf1.getText()); u.setTel(jtf2.getText()); u.setPhone(jtf3.getText()); u.setQq(jtf4.getText()); u.setWork(jtf5.getText()); u.setAddress(jtf6.getText()); u.setEmail(jtf7.getText()); u.setCategory(jtf8.getText()); if(uService.update(u)){ JOptionPane.showMessageDialog(null,"修改成功!"); select(); }else JOptionPane.showMessageDialog(null,"修改失?。?); } }); bb2.addMouseListener(newMouseAdapter(){ publicvoidmouseClicked(MouseEventee){ newf.setVisible(false); } }); } if(b5==e.getSource()){//實(shí)現(xiàn)全部聯(lián)系人的導(dǎo)出 Filef=newFile("user_information.txt"); try{ FileWriterw_file=newFileWriter(f); BufferedWriterb_file=newBufferedWriter(w_file); b_file .write("聯(lián)系人編號(hào)\t姓名\t手機(jī)號(hào)碼\t固定電話\tqq號(hào)碼\temail\t類別\t工作\t現(xiàn)居住地地址\t"); b_file.flush(); for(Useru:uService.getAllUser()){ b_file.write(u.getId()+"\t"+u.getName()+"\t" +u.getTel()+"\t"+u.getPhone()+"\t" +u.getQq()+"\t"+u.getEmail()+"\t" +u.getCategory()+"\t"+u.getWork()+"\t" +u.getAddress()+"\n"); b_file.flush(); } JOptionPane.showMessageDialog(null,"導(dǎo)出成功!"); }catch(IOExceptione1){ //TODOAuto-generatedcatchblock e1.printStackTrace(); } } } publicvoiditemStateChanged(ItemEventa){ intsum=Integer.parseInt(a.getItem().toString()); flag=sum; } publicvoidselect(){ if(choice.getSelectedItem().equals("姓名")){//對(duì)姓名進(jìn)行模糊查詢 uList.clear(); for(Useru:uService.getUser("name",t1.getText())){ uList.add(u); } list.removeAll(); list.add("編號(hào)"+""+"姓名"+""+"電話"); for(Useru:uList){ list.add(u.getId()+":"+u.getName()+"" +u.getTel()); } } if(choice.getSelectedItem().equals("類別")){//對(duì)類別進(jìn)行模糊查詢 uList.clear(); for(Useru:uService.getUser("category",t1.getText())){ uList.add(u); } list.removeAll(); list.add("編號(hào)"+""+"姓名"+""+"電話"); for(Useru:uList){ list.add(u.getId()+":"+u.getName()+"" +u.getTel()); } } if(choice.getSelectedItem().equals("手機(jī)號(hào)碼")){//對(duì)手機(jī)號(hào)碼進(jìn)行模糊查詢 uList.clear(); for(Useru:uService.getUser("tel",t1.getText())){ uList.add(u); } list.removeAll(); list.add("編號(hào)"+""+"姓名"+""+"電話"); for(Useru:uList){ list.add(u.getId()+":"+u.getName()+"" +u.getTel()); } } if(choice.getSelectedItem().equals("查詢?nèi)坑涗?)){//對(duì)全部的聯(lián)系人進(jìn)行查詢 uList.clear(); for(Useru:uService.getAllUser()){ uList.add(u); } list.removeAll(); list.add("編號(hào)"+""+"姓名"+""+"電話"); for(Useru:uList){ list.add(u.getId()+":"+u.getName()+"" +u.getTel()); } } }}3packagetongxun;importjava.sql.SQLException;importjava.util.ArrayList;importjava.util.List;publicclassUserServiceextendsDAO{ /*** *方法目的:添加聯(lián)系人 *@paramu *@return */ publicbooleanadd(Useru){ booleanflag=false; StringBuildersql=newStringBuilder(); sql.append("insertintoTB_user(id,name,tel,phone,qq,email,category,work,address)values(?,?,?,?,?,?,?,?,?)"); con=DAO.getConnect(); try{ pst=con.prepareStatement(sql.toString()); pst.setString(1,"22"); pst.setString(2,u.getName()); pst.setString(3,u.getTel()); pst.setString(4,u.getPhone()); pst.setString(5,u.getQq()); pst.setString(6,u.getEmail()); pst.setString(7,u.getCategory()); pst.setString(8,u.getWork()); pst.setString(9,u.getAddress()); if(pst.executeUpdate()>0) flag=true; pst.close(); con.close(); }catch(SQLExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } returnflag; } /**** *方法目的:根據(jù)編號(hào)刪除聯(lián)系人 *@paramid *@return */ publicbooleandelById(Stringid){ booleanflag=false; StringBuildersql=newStringBuilder(); sql.append("deletefromTB_userwhereid=?"); con=DAO.getConnect(); try{ pst=con.prepareStatement(sql.toString()); pst.setString(1,id); if(pst.executeUpdate()>0) flag=true; pst.close(); con.close(); }catch(SQLExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } returnflag; } publicbooleanupdate(Useru){ booleanflag=false; StringBuildersql=newStringBuilder(); sql.append("updateTB_usersetname=?,tel=?,phone=?,qq=?,email=?,category=?,work=?,address=?whereid=?"); con=DAO.getConnect(); try{ pst=con.prepareStatement(sql.toString()); pst.setString(1,u.getName()); pst.setString(2,u.getTel()); pst.setString(3,u.getPhone()); pst.setString(4,u.getQq()); pst.setString(5,u.getEmail()); pst.setString(6,u.getCategory()); pst.setString(7,u.getWork()); pst.setString(8,u.getAddress()); pst.setString(9,u.getId()); if(pst.executeUpdate()>0) flag=true; pst.close(); con.close(); }catch(SQLExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } returnflag; } publicList<User>getUser(Stringn,Stringv){ List<User>uList=newArrayList<User>(); StringBuildersql=newStringBuilder(); Useru=null; sql.append("select*fromTB_Userwhere"+n+"like?"); con=DAO.getConnect(); try{ pst=con.prepareStatement(sql.toString()); pst.setString(1,"%"+v+"%"); rs=pst.executeQuery(); while(rs.next()){ u=newUser(); u.setId(rs.getString("id")); u.setName(rs.getString("name")); u.setAddress(rs.getString("address")); u.setCategory(rs.getString("category")); u.setEmail(rs.getString("email")); u.setPhone("phone"); u.setTel(rs.getString("tel")); u.setQq(rs.getString("qq")); u.setWork(rs.getString("work")); uList.add(u); } pst.close(); con.close(); }catch(SQLExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } returnuList; } publicList<User>getAllUser(){ List<User>uList=newArrayList<User>(); StringBuildersql=newStringBuilder(); Useru=null; sql.append("select*fromTB_User"); con=DAO.getConnect(); try{ pst=con.prepareStatement(sql.toString()); rs=pst.executeQuery(); while(rs.next()){ u=newUser(); u.setId(rs.getString("id")); u.setName(rs.getString("name")); u.setAddress(rs.getString("address")); u.setCategory(rs.getString("category")); u.setEmail(rs.getString("email")); u.setPhone("phone"); u.setTel(rs.getString("tel")); u.setQq(rs.getString("qq")); u.setWork(rs.getString("work")); uList.add(u); } pst.close(); con.close(); }catch(SQL

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論