• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Android系統(tǒng)的團(tuán)隊協(xié)作管理系統(tǒng)設(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端來實現(xiàn),降低了系統(tǒng)的通訊開銷??傮w結(jié)構(gòu)系統(tǒng)的模塊結(jié)構(gòu)包括消息管理模塊、團(tuán)隊管理模塊和任務(wù)管理模塊。

      1.2 處理流

      1.2.1 頂層處理流

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

      1.2.2 第一層處理流

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

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

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

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

      1.2.3 第二層處理流

      1)消息管理流程

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

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

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

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

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

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

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

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

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

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

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

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

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

      1.3 實現(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)硬件接口

      手機物理或虛擬鍵盤。

      3)軟件接口

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

      2.2 內(nèi)部接口

      通過面向?qū)ο笳Z言設(shè)計類,在public類中實現(xiàn)調(diào)用,類間實現(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語句可以嵌套,這使他具有極大的靈活性和強大的功能,在多數(shù)情況下,在其他語言中需要一大段程序?qū)崿F(xiàn)的功能只需要一個SQL語句就可以達(dá)到目的,這也意味著用SQL語言可以寫出非常復(fù)雜的語句。

      3.2 手機數(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 手機端

      主要使用了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(浮點數(shù)字)、TEXT(字符串文本)和BLOB(二進(jìn)制對象)數(shù)據(jù)類型,雖然它支持的類型雖然只有五種,但實際上sqlite3也接受varchar(n)、char(n)、decimal(p,s)等數(shù)據(jù)類型,只不過在運算或保存時會轉(zhuǎn)成對應(yīng)的五種數(shù)據(jù)類型。SQLite最大的特點是你可以保存任何類型的數(shù)據(jù)到任何字段中,無論這列聲明的數(shù)據(jù)類型是什么。例如,可以在Integer字段中存放字符串,或者在布爾型字段中存放浮點數(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].機械工業(yè)出版社,2000.8:197-289.

      [2]公磊.周聰.基于Android的移動終端應(yīng)用程序開發(fā)與研究[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ù)類型
      重點:語句銜接
      如何理解數(shù)據(jù)結(jié)構(gòu)中的抽象數(shù)據(jù)類型
      精彩語句
      CNMARC304字段和314字段責(zé)任附注方式解析
      無正題名文獻(xiàn)著錄方法評述
      如何搞定語句銜接題
      語文知識(2014年4期)2014-02-28 21:59:52
      關(guān)于CNMARC的3--字段改革的必要性與可行性研究
      作文語句實錄
      乡城县| 桂阳县| 临西县| 讷河市| 林甸县| 柘荣县| 揭东县| 康马县| 香港| 巴里| 蛟河市| 百色市| 扶风县| 镇原县| 蓝田县| 定结县| 民和| 桃园市| 崇文区| 保亭| 手游| 织金县| 惠东县| 泸州市| 苍梧县| 禹城市| 富锦市| 白河县| 柘城县| 长乐市| 南投县| 阳东县| 潍坊市| 马鞍山市| 天柱县| 萍乡市| 张北县| 汝南县| 通辽市| 嵩明县| 肇州县|