欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

通訊錄項目詳解


/**
* @author Mr.Deng
* @since 2016-5-14
* @version 1.0
*使用notepad打開方便閱讀
*歡迎糾正錯誤,寫下自己的見解
*/                                

成都創(chuàng)新互聯(lián)專注于天元企業(yè)網(wǎng)站建設,響應式網(wǎng)站建設,商城網(wǎng)站制作。天元網(wǎng)站建設公司,為天元等地區(qū)提供建站服務。全流程按需求定制網(wǎng)站,專業(yè)設計,全程項目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務

項目描述:用戶登錄可以管理對自己的通信錄信息進行管理.

項目依賴軟件:MySQL eclipse.

項目依賴技術:javaSE , JDBC, swing組件   

                                              
1.架構:3層架構
    1.展示層:1.用戶只能對自己和自己的通訊錄進行操作(私人權限)
              2.使用java GUI圖像界面:
                                1.登錄注冊主頁面界面
                                2.注冊頁面
                                3.功能頁面:按上中下3層界面布局:
                                                         1.上:歡迎窗口
                                                         2.中:展示用戶所有通訊錄信息詳情
                                                         3.下:用戶對通訊錄操作的按鈕                                                                                
      
    2.業(yè)務層:1.后臺人員對所有用戶進行操作(管理員權限)
              2.使用java編寫后臺程序:編寫接口和實現(xiàn)類實現(xiàn)類通過調(diào)用持久層編寫的接口實現(xiàn)功能
                 
    3.持久層:1.java程序員通過編寫源代碼實現(xiàn)各種操作(造物主)
              2.使用JDBC連接數(shù)據(jù)庫保存數(shù)據(jù)
              3.使用配置文件連接JDBC,假如修改了數(shù)據(jù)庫。只需要修改配置文件不需要修改源代碼
                           
具體實現(xiàn):3層架構每層通過接口進行連接(依賴關系)
            
        1.展示層---業(yè)務層:1.接口:UsersService,ContactsService
                           2.實現(xiàn)類:UsersServiceImpl,ContactsServiceImpl
                        
        作用:展示層獲得的數(shù)據(jù)或操作傳入到業(yè)務層
              業(yè)務層流程:1.調(diào)用持久層的接口
                          2.創(chuàng)建接口對象
                          3.調(diào)用接口對象身上的方法進行數(shù)據(jù)操作
        
        原理:1.接口只定義方法體,沒有實現(xiàn)細節(jié),不能直接創(chuàng)建對象
              2.ContactDaoImpl類是實現(xiàn)類,重寫了接口的所有方法,并且有實現(xiàn)細節(jié)
              3.通過創(chuàng)建實現(xiàn)類對象,實例化接口。接口就可以調(diào)用所有實現(xiàn)類的方法,進行操作              
              ContactDao ctd = new ContactDaoImpl();                          
       
       
      2.業(yè)務層---持久層:1.接口:UsersDao                       
                         2.實現(xiàn)類:UsersDaoImpl                        
        作用:對數(shù)據(jù)進行各種操作并放入數(shù)據(jù)庫中
                        
        原理:1.通訊錄和用戶對象隨著方法的調(diào)用而存在,方法調(diào)用結束對象消失。
              2.對象存在于內(nèi)存,通過JDBC連接數(shù)據(jù)庫就可以將對象身上的屬性保存起來。
                             
      3.持久層---展示層:持久層的所有功能依賴于展示層獲得的數(shù)據(jù)
                         沒有數(shù)據(jù)持久層的存在沒有意義      
                          沒有持久層的功能實現(xiàn),展示層也沒有任何意義
                       
2.包命名規(guī)范:
         1.持久層:1.com.lovo.contacts.bean:實體包存放所有的實體對象,Users,contactsdetail遵循javabean規(guī)范,實現(xiàn)序列化接口Serializable
                   2.com.lovo.contacts.dao:接口包存放持久層的所有接口    
                   3.com.lovo.contacts.dao.impl:實現(xiàn)類存放所有實現(xiàn)了dao包接口的類
                   4.com.lovo.contacts.util:工具包存放所有持久層代碼需要的工具 如文件,DBUtil
                   
         2.業(yè)務層:1.com.lovo.contacts.service:業(yè)務層包存放所有業(yè)務層接口 UsersService,ContactsService                   
                   2.com.lovo.contacts.service.impl:實現(xiàn)類包存放所有實現(xiàn)業(yè)務層包接口的實現(xiàn)類
        
         3.展示層:com.lovo.contacts.gui:圖形界面包存放所有界面類
        
         4.javabean規(guī)范:1.公共的類
                         2.屬性私有化
                         3.提供公共的get,set方法
                         4.不帶參的構造方法
                         5.實現(xiàn)序列化接口Serializable
                   
總結:1.命名規(guī)范化保證項目的可理解性,方便管理。項目由多個程序員編寫一個好的命名規(guī)范和結構方便更改實現(xiàn)同步編寫
      2.每個項目有自己的命名規(guī)范,大體一致
      

                       
3.各方法塊代碼流程:1.獲取數(shù)據(jù)庫連接:Connection con = DBUtil.getconnection
                    2.編寫SQL語句,使用問號防止SQL注入
                       3.創(chuàng)建預編譯處理對象:PreparedStatement pstmt = con.prepardStatement(sql);
                      4.更改問號的值
                    5.執(zhí)行sql語句:
                             1.增:1.(sql, PreparedStatement.RETURN_GENERATED_KEYS)保證主鍵自增長,
                                   2.獲取對象身上的值,設置到數(shù)據(jù)庫相應的字段中
                                   3.獲取數(shù)據(jù)庫結果集,判斷將第一個對象的ID設置成1,多個對象實現(xiàn)自增長
                                   4.關閉連接
                                   
                             2.查:1.查詢所有字段的值放入結果集,條件id=? and status=1 1表示存在
                                   2.創(chuàng)建新的contactdetail對象,
                                   3.將結果集相應的值設置到contactdetail對象身上
                                   4.關閉連接
                                   
                             3.刪:1.status字段表示表的狀態(tài),根據(jù)查詢語句只有status=1時 用戶才能查詢到這張表
                                   2.設置status=0 用戶就不能查詢到這張表。邏輯刪除:數(shù)據(jù)還存在,只是用戶查詢不到。物理刪除:數(shù)據(jù)從數(shù)據(jù)庫消失
                                   3.更新數(shù)據(jù)庫
                                   4.關閉連接
                                   
                             4.改:1.用戶傳入contactdetail對象,有些字段的值是修改過的
                                   2.獲取contactdetail對象身上的值
                                   3.對數(shù)據(jù)庫里contactdetail里字段的每一個字段的值進行覆蓋
                                   4.關閉連接

擴展:
    1.自定義異常:1.定義異常類繼承Exception的屬性和方法
                  2.提供帶參和不參的構造方法    
                    public NameNotFoundException() {}
                    public NameNotFoundException(String message) {super(message);}    
                  3.判斷語句如果用戶名不正確 throw new NameNotFoundException("用戶名不存在");
    
    2.try{}finally{}作用:保證try塊內(nèi)發(fā)生異常都能執(zhí)行finally塊里的內(nèi)容                  
                                   
總結:1.對數(shù)據(jù)庫里的數(shù)據(jù)進行修改后,需要更新。查詢不需要
      2.先分析功能理清思路,再寫流程注釋。最后根據(jù)流程注釋填充代碼。
      3.根據(jù)返回類型,參數(shù)列表。靈活編寫代碼,萬變不離其宗
                                    

4.時間轉(zhuǎn)換:    
    1.util.date---sql.date:     
        1.獲取Contact對象身上的時間毫秒數(shù),如果沒有獲取系統(tǒng)時間的毫秒數(shù),三元運算符:條件 ?表達式1(true): 表達式2(false)
           long time = detail.getCreateTime() == null ? System.currentTimeMillis() : detail.getCreateTime().getTime();
        2. 調(diào)用sql.date類的帶參構造方法將時間毫秒數(shù)傳入獲取sql包的時間    
           new Date(time))
    2.sql.date---util.date:
        1.獲取sql.date的毫秒數(shù),將其作為參數(shù)傳入util.date的構造方法類
         new java.util.Date(rs.getDate("d.createtime").getTime())

5.屬性對象:1.sql user表 與 detail表是1對多關系, 一個用戶可以有多個通訊錄
          2. 在contactdetail類放一個user對象,將user類與contactdetail類連接
             user.getid() = contactdetail.getuser().getid()          
             實現(xiàn)java user類與contactdetail類 1對多關系
        
 sql.userid----contact.user
       1.創(chuàng)建user對象
       2.將userid設置到user對象身上
       3.分析 user的set方法參數(shù)是user對象,將創(chuàng)建的對象傳入user的set方法
       
6.二維數(shù)組:在業(yè)務層定義方法getAllContact 返回類型:Object[][] 參數(shù):useid        
        1.獲取contactdetail對象的集合
          List<ContactDetail> list = cd.queryContactListByUser(userId);
        2.定義數(shù)組長度,第一個字段表示通訊錄實體的個數(shù),第2個字段表示通訊錄的信息個數(shù)
          Object[][] datas = new Object[list.size()][8];
        3. 循環(huán)數(shù)組 循環(huán)一次第一個括號+1,第2個括號挨個放入通訊錄信息
            for (int i = 0; i < list.size(); i++) {
            ContactDetail detail = list.get(i);
            datas[i][0] = detail.getId();
            datas[i][1] = detail.getName();
            。。。。。。。。。。。。。。。。}
        4.返回 datas     
        
eclipse:導入項目:file---import---Existing Projects into Workspace---選擇項目路徑---finish        
        導入圖片:項目名---src---general---file system---文件路徑---選擇圖片--finish---把圖片移動到lib包
        生成文檔:項目右鍵---export---java---javadoc---選擇生成路徑---finish
        java架包:項目右鍵---export---java---jar file選擇生成路徑----架包名---finish
        導入架包:復制架包到項目---build path
        界面插件使用:類右鍵---open with---windowbuilder editor---左下角Design按鈕
       

附件:http://down.51cto.com/data/2367904

當前題目:通訊錄項目詳解
URL地址:http://chinadenli.net/article12/pooedc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設計ChatGPT、品牌網(wǎng)站建設網(wǎng)站導航、、響應式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站