管家婆家庭記賬軟件day_第1頁
管家婆家庭記賬軟件day_第2頁
管家婆家庭記賬軟件day_第3頁
管家婆家庭記賬軟件day_第4頁
管家婆家庭記賬軟件day_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

管家婆家庭記賬web層,業(yè)務層及數據層組成的,它們分別完成各自的工作,如下所ControllerwebjspServletwebServiceJavaWebAPISelect,Insert,Update,Delete的操作。其中,webwebjspservletrequest、response、session、ServletContextweb層,不能出現在業(yè)務層;同樣,業(yè)務層只關心業(yè)務邏輯,例如登錄,功能,其中就是向數據庫中一條數據,這樣在數據層就若干個對數據庫的操作組成的。而web層將用戶輸入的數據傳遞給業(yè)務層,業(yè)務層處理之webwebweb層依賴于業(yè)務層。javawebAPI,因此業(yè)務層和數據層是可重用的,甚至可以web環(huán)境中。項目介項目安項目目使用,提高了對項目的理解與知識點的運用。掌握View層、Controller層、Service層、Dao層等之間的方法相用操作.dbutils操作數據庫表完成增刪改查掌握事件處通過本項目,了項目開發(fā)的流程,充分的掌握項目需求分析、設計與功能的代碼實現。提高獨立分析需求與功能實現的能力。項目時項目功能分項目演項目各模塊項目環(huán)境搭技術選型和jar包介每個項目都要使用一些已經成技術它們通常是由一些專業(yè)組織或團隊所提供的開apachecommonsmysql-connector-java-5.1.37-bin.jar:MySQLJDBCJDBCJARcommons-dbcp-1.4.jarcommons-pool-1.3.jar連接池,提供連接,優(yōu)化效率 commons-logging-1.1.1.jarbean操作JavaBean對象.工具類介。每個項目都會用到一些工具類,本項目也不例外不會教大家如何實現這些類,而是讓大家知道在項目如何使用這些工具類,下面是本項目中所使用的工具類以及介紹。在項目的實現過程中,會說明工具類的使用,這里就不再過多介紹數據表創(chuàng)而進行的,所以第一步就是創(chuàng)建數據庫表。(controller(service(dao(DBgjp.sql文件,然后執(zhí)行之即可。下面SQL語句:gjpCREATECREATEDATABASE創(chuàng)建數據庫CREATECREATETABLEsidINTPRIMARYKEYAUTO_INCREMENT分類snameVARCHAR(100),--分類名稱parentVARCHAR(100所屬父分類sdescVARCHAR(10000)--描述CREATECREATETABLElidINTPRIMARYKEYAUTO_INCREMENT賬務parentVARCHAR(100moneyDOUBLEsidINT,分類accountVARCHAR(100賬戶createtimeDATE,--創(chuàng)建時間ldescVARCHAR(1000)--描述添加表數insertintoinsertinto insertintoinsertinto 大漲工程創(chuàng)建及包管EclipseJava .gjp.app:main .gjp.tool: :JavaBean .gjp.view:GUI .gjp.controller:view包 .gjp.service: .gjp.dao:創(chuàng)建lib文件夾,用來使用的jarjavabean的創(chuàng)因為要先完成分類模塊的操作,跟分類相關的表已經創(chuàng)建好,那么現在只需將對應javabean創(chuàng)建出來*跟gjp_sort在cn. 包下完成Sort實體類的創(chuàng)建*跟gjp_sortpublicclassSortprivateintprivateStringprivateStringprivateStringpublicSort()//TODOAuto-generatedconstructor}publicSort(intsid,Stringsname,Stringparent,Stringsdesc) =this.sname=this.parent=this.sdesc=}publicintgetSid()return}publicvoidsetSid(intsid) =}publicStringgetSname()return}publicvoidsetSname(Stringsname)this.sname=}publicStringgetParent()return}publicvoidsetParent(Stringparent)this.parent=}publicStringgetSdesc()return}publicvoidsetSdesc(Stringsdesc)this.sdesc=}publicStringtoString()return"Sort[sid="+sid+",sname="+sname+",parent="++",sdesc="+sdesc+}}}jar包的導入以將用到的所有jar包到lib下并完成buildpath添加至環(huán)境變 .gjp.tool:存放工具類;將所有工具類到該包下UI模UI介期就不再使用,所以不會去浪費大量時間去編寫復雜的GUI界面。已為大家提供了5個GUI抽象類只需要去繼承這些抽象類就可以得到本項目中所 MainFrame得 SortMngDialog得: LedgerMngDialog得AddSortController(添加分類框)和EditSortController(編輯分類框:通 OperationSortDialog得到: OperationLedgerDialog得到框關系主界主界面相關已編寫好的GUI主界面 MainFrame.java到view包中在web控制層,創(chuàng)建類MainJFrame.java,繼承 MainFrame用來創(chuàng)建程序主appMainApp.java,maingjp.jpg到項目根 彈出主界MainApp的主方法中,創(chuàng)建主窗口控制層類(MainJFrame)publicpublicclassMainApp//publicstaticvoidmain(String[]args)//MainJFramemj=new}}主界面相關類詳解(了解內容GUI主界面類 * MainFrameextendsJFramestatictry}catch(Exceptione){}}*privateJLabeltitleLabelnewJLabel(newImageIcon("gjp.jpg"));//privateJButtonledgerBtnnewJButton("賬務管理");//privateJButtonsortBtnnewJButton("分類管理");// MainFrame()this.init ponentthis.addListener();//添 }privatevoidinit() ");//標題this.setSize(600,400);//窗體大小與位置this.setResizable(false}privatevoid ponent(){this.add(this.titleLabel,BorderLayout.NORTH);JPanelbtnPanel=newJPanel();ledgerBtn.setBounds(40,20,120,sortBtn.setBounds(440,20,120,Fontfont=newFont("華 ",Font.BOLD,}//添 privatevoidaddListener(){ledgerBtn.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){}sortBtn.addActionListener(newActionListener()publicvoidactionPerformed(ActionEvente){}}voidvoid}*UIpublicclassGUIToolspublicstaticvoidcenter(Componentc){Toolkitkit=Toolkit.getDefaultToolkit();intx=(kit.getScreenSize().width-c.getWidth())/2;inty=(kit.getScreenSize().height-c.getHeight())/2;c.setLocation(x,y);}}需要實現的操主窗口控制層類*publicclassMainJFrameMainFramepublicvoidledgerMng()}publicvoidsortMng()}}分類管分類管理分類管理框相關類創(chuàng)已編寫好的GUI分類管理界面 SortMngDialog.java到view包中在Sort.javagjp_sort的字(已做)jar包commons-bean 、mons-logging-1.1.1.jar,到lib文件夾中,通過BuildPath操作,添加到classPath路徑中,提供給ListTableModel使webSortMngController.java,繼承SortMngDialog用來創(chuàng)彈出分類管理*點擊分類出來的效果今 publicvoidsortMng()TODOAuto-generatedmethodstubnew//從當前的界面彈出分類管 分類管理框相關類詳(了解)GUI分類管理框類 * SortMngDialogextendsJDialogprotectedJTablesortDataTablenewJTable();//privateJButtoncloseBtnnewJButton("關閉privateJButtonaddBtnnewJButton("添加privateJButtoneditBtnnewJButton("編輯privateJButtondelBtnnewJButton("刪除SortMngDialog(JFrameframe)super(frame,}protectedvoidinitDialog()}privatevoidinit()this.setResizable(falsethis.setTitle("分類管理:this.setSize(680400設置大小}private ponent()//設 JLabeltitleLable=newJLabel();titleLable.setFont(newFont("宋體Font.ITALIC18));titleLable.setBounds(280,20,165,20);JScrollPanescrollPane=newscrollPane.setBounds(30,100,620,addBtn.setBounds(30,290,140,28);editBtn.setBounds(270,290,140,28);delBtn.setBounds(510,290,140,28);closeBtn.setBounds(570,330,80,}*protectedvoidsetTableModel(List<Sort>sortList)String[]colNames=newString[]{"ID","分類名稱","父分類","說明"};StringpropNamesnewStringsidsnameparentsdesc"};if(sortList==null||sortList.size()==0){sortDataTable.setModel(newDefaultTableModel(newObject[][]{null,null,null,null},{null,null,null,{null,null,null,null},{null,null,null,{null,null,null,null},{null,null,null,{null,null,null,null},{null,null,null,}trysortDataTable.setModel(newListTableModel<Sort>(sortList,Sort.class,colNames,propNames));}catch(Exceptione){}}protectedSortgetSortByTableRow(introw)return}*給組件添 privatevoidaddListener(){closeBtn.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEventevt)}addBtn.addActionListener(newActionListener()publicvoidactionPerformed(ActionEventevt){}editBtn.addActionListener(newActionListener()publicvoidactionPerformed(ActionEventevt){}delBtn.addActionListener(newActionListener()publicvoidactionPerformed(ActionEventevt){}sortDataTable.addMouseListener(newMouseAdapter()publicvoidmouseClicked(MouseEvente)if(e.getButton()==1)if(e.getClickCount()>=2){}}}}}voidvoidvoid}表格內容填充工具類*publicclassListTableModel<T>TableModelprivatejava.util.List<T>privateString[]privateString[]publicListTableModel(java.util.List<T>list,Class<?>c,String[]String[]propNames)throwsExceptionif(list==null)thrownew}this.list=list;this.colNames=colNames;pNames=propNames;}publicintgetRowCount()intintsize=returnsize<10?10:}publicintgetColumnCount()return}publicStringgetColumnName(intc)return}publicObjectgetValueAt(intr,intc){if(r>=list.size())returnnull;try{returnBeanUtils.getProperty(list.get(r),}catch(Exceptione)thrownew}}publicTgetInstance(introw)if(row>=list.size())returnnull;returnlist.get(row);}}*publicclassSortMngControllerSortMngDialogpublicpublicSortMngDialog(JFrameframe)}publicvoidaddSort()}publicvoideditSort()}publicvoiddeleteSort()}}分類模塊相關類創(chuàng)JDBCUtils.javatoolsjar包mysql-connector-java-5.1.28-bin.jar、commons-dbutils-1.4.jar、 1.3.jar添加到classPath路徑中,提供給JDBCUtils使用;在dao數據層,創(chuàng)建類SortDao.java,給SortDao類添加一個成員變量QueryRunner對象,因為使用dbutils來操作數據庫,所以在本項目中所有的DAO類中都需QueryRunner的成員變量;servicedao。JDBCUtils.javapublicclassJDBCUtilspublicstaticfinalStringDRIVER_CLASS_NAME="com.mysql.jdbc.Driver";publicstaticfinalStringURL="jdbc:mysql://localhost:3306/gjp";publicstaticfinalStringUSERNAME="root";publicstaticfinalStringPASSWORD=privatestaticfinalintMAX_IDLE=3;privatestaticfinallongMAX_WAIT=5000;privatestaticfinalintMAX_ACTIVE=5;privatestaticfinalintINITIAL_SIZE=3;privatestaticBasicDataSourcedataSource=newstatic}publicstaticDataSourcegetDataSource()return}}下面代碼需要實packagepackageimport*publicclassSortDao//privateQueryRunnerqr=new}packagepackageimport*publicclassSortServiceprivateSort

溫馨提示

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

評論

0/150

提交評論