亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Android系統(tǒng)的團(tuán)隊協(xié)作管理系統(tǒng)設(shè)計與實(shí)現(xiàn)

        2013-08-15 00:54:54李慶江
        山東工業(yè)技術(shù) 2013年9期
        關(guān)鍵詞:數(shù)據(jù)類型字段語句

        李慶江

        (菏澤學(xué)院 教務(wù)處,山東 菏澤 274015)

        1 總體設(shè)計

        1.1 系統(tǒng)通訊原理

        服務(wù)器使用Client/Server[1]通訊原理,通過它可以充分利用兩端硬件環(huán)境的優(yōu)勢,將任務(wù)合理分配到 Client端和Server端來實(shí)現(xiàn),降低了系統(tǒng)的通訊開銷??傮w結(jié)構(gòu)系統(tǒng)的模塊結(jié)構(gòu)包括消息管理模塊、團(tuán)隊管理模塊和任務(wù)管理模塊。

        1.2 處理流

        1.2.1 頂層處理流

        手機(jī)端通過移動網(wǎng)絡(luò)把指令上傳的服務(wù)器,服務(wù)器對指令進(jìn)行處理后返回XML形式的數(shù)據(jù),手機(jī)端對返回的數(shù)據(jù)進(jìn)行解析。

        1.2.2 第一層處理流

        1)登錄子系統(tǒng)

        手機(jī)通過移動網(wǎng)絡(luò),發(fā)送用戶名密碼信息到服務(wù)器端,服務(wù)器接受到信息后調(diào)用數(shù)據(jù)庫核對信息,核對后把True和False信息返回,手機(jī)隊返回數(shù)據(jù)解析得到登錄驗(yàn)證是否成功。

        2)管理子系統(tǒng)

        手機(jī)用戶登錄成功后,進(jìn)入管理子系統(tǒng),可以調(diào)用進(jìn)行消息管理、團(tuán)隊管理和任務(wù)管理三個第二層模塊。

        1.2.3 第二層處理流

        1)消息管理流程

        首先進(jìn)行用戶驗(yàn)證,通過驗(yàn)證后可進(jìn)行查看消息、刪除消息、發(fā)送消息。

        2)認(rèn)證加入團(tuán)隊流程

        首先進(jìn)行用戶驗(yàn)證,通過驗(yàn)證后可進(jìn)行認(rèn)證/通過、加入團(tuán)隊申請。

        3)團(tuán)隊管理流程

        首先進(jìn)行用戶驗(yàn)證,通過驗(yàn)證后可進(jìn)行新建、解散、退出和編輯團(tuán)隊。

        4)團(tuán)隊成員查看流程

        首先進(jìn)行用戶驗(yàn)證,通過驗(yàn)證后,通過用戶ID和團(tuán)隊ID在團(tuán)隊和用戶管理表中查找到團(tuán)隊用戶成員,然后將查詢到的數(shù)據(jù)返回。

        5)剔除團(tuán)隊成員

        首先進(jìn)行用戶驗(yàn)證是否為隊長,且這個要剔除的成員是否為該團(tuán)隊的成員,通過驗(yàn)證后,就對團(tuán)隊用戶關(guān)聯(lián)表中把關(guān)聯(lián)要刪除的ID進(jìn)行刪除,最后返回成功信息,否則返回不成功信息。

        6)查看團(tuán)隊個人任務(wù)列表流程

        首先進(jìn)行用戶驗(yàn)證,驗(yàn)證該用戶是否為該團(tuán)隊的成員,通過驗(yàn)證后在數(shù)據(jù)庫中查找到該團(tuán)隊任務(wù)信息,然后將查詢到的數(shù)據(jù)返回。

        7)任務(wù)管理流程

        首先進(jìn)行用戶驗(yàn)證,驗(yàn)證該用戶是否為要修改任務(wù)的任務(wù)擁有人,通過驗(yàn)證后可進(jìn)行任務(wù)查看、撤銷、完成、更新狀態(tài)。

        1.3 實(shí)現(xiàn)流程

        服務(wù)器判斷會員是否已申請過加入該組,服務(wù)器得到用戶提交的信息,搜索表中是否存在該用戶,如果存在則返回true,否則返回flase,并進(jìn)行異常處理,在操作結(jié)束后,關(guān)閉數(shù)據(jù)庫的連接,以保證數(shù)據(jù)的安全。接收并添加文件,當(dāng)用戶欲添加文件時,先判斷該用戶是否是該隊成員,并作出判斷,提示用戶,如果是該隊成員,接著判斷剩余空間的大小是否充足,并作出判斷。判斷團(tuán)隊人數(shù)是否已滿,通過傳遞的隊號和隊伍的人數(shù),判斷隊伍是否超過最大人數(shù),并作出判斷,返回參數(shù)。

        2 接口設(shè)計

        服務(wù)器端主要接口通過XML方式傳送數(shù)據(jù)。

        2.1 外部接口

        1)用戶接口

        采用自己重寫顯示的Android組件和Android的標(biāo)準(zhǔn)顯示組件等。

        2)硬件接口

        手機(jī)物理或虛擬鍵盤。

        3)軟件接口

        通過手機(jī)無線借入互聯(lián)網(wǎng),xml文件形式進(jìn)行數(shù)據(jù)交互、通過JDBC對MYSQL[2]數(shù)據(jù)庫的連接。

        2.2 內(nèi)部接口

        通過面向?qū)ο笳Z言設(shè)計類,在public類中實(shí)現(xiàn)調(diào)用,類間實(shí)現(xiàn)嚴(yán)格封裝。

        3 數(shù)據(jù)庫設(shè)計

        系統(tǒng)中數(shù)據(jù)庫采用android內(nèi)置SQLite數(shù)據(jù)庫和MySQL[3]數(shù)據(jù)庫。

        3.1 結(jié)構(gòu)化查詢語言

        以記錄集合作為操作對象,所有SQL語句接受集合作為輸入,返回集合作為輸出,這種集合特性允許一條SQL語句的輸出作為SQL語句的輸入,所以SQL語句可以嵌套,這使他具有極大的靈活性和強(qiáng)大的功能,在多數(shù)情況下,在其他語言中需要一大段程序?qū)崿F(xiàn)的功能只需要一個SQL語句就可以達(dá)到目的,這也意味著用SQL語言可以寫出非常復(fù)雜的語句。

        3.2 手機(jī)數(shù)據(jù)庫設(shè)計

        SQLite數(shù)據(jù)庫是一款輕型的數(shù)據(jù)庫,是遵守ACID的關(guān)聯(lián)式數(shù)據(jù)庫管理系統(tǒng),它的設(shè)計目標(biāo)是嵌入式的,而且目前已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它占用資源非常的低,在嵌入式設(shè)備中,可能只需要幾百K的內(nèi)存就夠了。

        3.3 數(shù)據(jù)庫公共模塊

        3.3.1 手機(jī)端

        主要使用了Android內(nèi)置sqllite數(shù)據(jù)庫技術(shù),主要對數(shù)據(jù)庫操作,全都調(diào)用這個類中的具體靜態(tài)方法來對數(shù)據(jù)庫進(jìn)行添刪改查操作。在Android平臺上,集成了一個嵌入式關(guān)系型數(shù)據(jù)庫—SQLite,SQLite3 支持 NULL、INTEGER、REAL(浮點(diǎn)數(shù)字)、TEXT(字符串文本)和BLOB(二進(jìn)制對象)數(shù)據(jù)類型,雖然它支持的類型雖然只有五種,但實(shí)際上sqlite3也接受varchar(n)、char(n)、decimal(p,s)等數(shù)據(jù)類型,只不過在運(yùn)算或保存時會轉(zhuǎn)成對應(yīng)的五種數(shù)據(jù)類型。SQLite最大的特點(diǎn)是你可以保存任何類型的數(shù)據(jù)到任何字段中,無論這列聲明的數(shù)據(jù)類型是什么。例如,可以在Integer字段中存放字符串,或者在布爾型字段中存放浮點(diǎn)數(shù),或者在字符型字段中存放日期型值。但有一種情況例外:定義為INTEGER PRIMARY KEY的字段只能存儲64位整數(shù),當(dāng)向這種字段中保存除整數(shù)以外的數(shù)據(jù)時,將會產(chǎn)生錯誤。另外,SQLite在解析CREATE TABLE語句時,會忽略 CREATE TABLE語句中跟在字段名后面的數(shù)據(jù)類型信息,如下面語句會忽略 name字段的類型信息,主要代碼如下:

        public static List<Massage>select(String pid,int maxmid,Connection conn){PreparedStatement pstmt=null;

        ResultSet rs=null;

        String where="where mid>?and massage.sender=member.pid and massage.tid=team.tid";

        where+="and(type=0 or(massage.type=3 and team.tid in (select relevance.tid from relevance,team where relevance.tid=team.tid and relevance.pid=team.pid and relevance.pid=?))";

        where+="or(massage.type < 2 and team.tid in(select tid from relevance where pid=?)))order by mid DESC";

        List<Massage>massages=new ArrayList<Massage>();

        try{String sql="select mid,massage.sender,member.name,massage.tid,team.name,title,content,time,type,team.pid from massage,member,team"+where;

        pstmt=conn.prepareStatement(sql);

        pstmt.setInt(1,maxmid);pstmt.setString(2,pid);

        pstmt.setString(3,pid);rs=pstmt.executeQuery();

        while(rs.next()){Integer mid=rs.getInt(1);String sender=rs.getString(2).trim();

        String sname=rs.getString(3).trim();Integer tid=rs.getInt(4);String tname=rs.getString(5).trim();String title=rs.getString(6).trim();

        String content=rs.getString(7).trim ();Date time=rs.getTimestamp(8);

        Short type=rs.getShort(9);String tpid=rs.getString(10);

        massages.add(new Massage(mid,sender,sname,tid,tname,title,content,time,type,tpid));}return massages;}catch(SQLE xception ex){

        System.out.println("SQLException:"+ex.getMessage());

        System.out.println("SQLState:"+ex.getSQLState());

        System.out.println("VendorError:"+ex.getErrorCode());return massages;}finally{try{if(rs!=null){rs.close();

        rs=null;}if(pstmt!=null){pstmt.close();pstmt=null;}}catch(SQLException e){e.printStackTrace();}}

        3.3.2 服務(wù)器端

        用戶管理、消息管理和團(tuán)隊管理業(yè)務(wù)Bean,分別對不同的模塊進(jìn)行數(shù)據(jù)的操作,其中有對數(shù)據(jù)庫的具體操作的方法,主要代碼如下。

        public Member getOneMember(String pid,String passwd){

        Cursor cursor=db.rawQuery("select*from member where_id=?",new String[]{pid});

        Member member=null;

        if(cursor.moveToFirst()){member=new Member(pid,null,cursor.getString(2),cursor.getShort(3),cursor.getString(4),cursor.getString(5),cursor.getString(6),cursor.getString(7),cursor.getString(8),Timestamp.valueOf(cursor.getString(9)));cursor.close();}return member;}

        [1]Alistair Cockburn.敏捷軟件開發(fā)[M].機(jī)械工業(yè)出版社,2000.8:197-289.

        [2]公磊.周聰.基于Android的移動終端應(yīng)用程序開發(fā)與研究[J].計算機(jī)與現(xiàn)代化,2008(8):85-89.

        [3]高煥堂.Android應(yīng)用框架原理與程式設(shè)計[M]//36技.Google公司,2008:132-150.

        猜你喜歡
        數(shù)據(jù)類型字段語句
        圖書館中文圖書編目外包數(shù)據(jù)質(zhì)量控制分析
        詳談Java中的基本數(shù)據(jù)類型與引用數(shù)據(jù)類型
        重點(diǎn):語句銜接
        如何理解數(shù)據(jù)結(jié)構(gòu)中的抽象數(shù)據(jù)類型
        精彩語句
        CNMARC304字段和314字段責(zé)任附注方式解析
        無正題名文獻(xiàn)著錄方法評述
        如何搞定語句銜接題
        語文知識(2014年4期)2014-02-28 21:59:52
        關(guān)于CNMARC的3--字段改革的必要性與可行性研究
        作文語句實(shí)錄
        国产青春草在线观看视频| 又大又粗又爽18禁免费看| 香港日本三级亚洲三级| 日韩精品无码区免费专区| 国产呦系列视频网站在线观看 | 亚洲av午夜国产精品无码中文字| 嫖妓丰满肥熟妇在线精品| 日韩av二区三区一区| 久久99精品免费国产| 国产91精品在线观看| 老妇高潮潮喷到猛进猛出| 闺蜜张开腿让我爽了一夜| 欧美国产日产一区二区| 日韩一区二区三区中文字幕| 高清不卡av在线播放| 成人av片在线观看免费| 国产精品亚洲片在线观看不卡| 亚洲精品成人网线在线播放va| 欧美老妇人与禽交| 国产网友自拍亚洲av| 精品成人av人一区二区三区| 久久久精品国产免大香伊| 爽爽精品dvd蜜桃成熟时电影院| 91白浆在线视频| 国产精品av免费网站| 亚洲永久国产中文字幕| 少妇愉情理伦片高潮日本| 亚洲日本va午夜在线影院| 超级少妇一区二区三区 | 亚洲一区二区婷婷久久| 日本女优中文字幕四季视频网站| 国产日产桃色精品久久久| 欧美精品videosex极品| 大地资源中文在线观看官网第二页 | 欧洲-级毛片内射| 亚洲国产免费公开在线视频 | 无码专区天天躁天天躁在线| 国产成人AV乱码免费观看| 日本精品一级二区三级| 精品久久久bbbb人妻| 亚洲欧美日韩国产精品一区二区|