999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Android系統的團隊協作管理系統設計與實現

2013-08-15 00:54:54李慶江
山東工業技術 2013年9期
關鍵詞:數據庫用戶管理

李慶江

(菏澤學院 教務處,山東 菏澤 274015)

1 總體設計

1.1 系統通訊原理

服務器使用Client/Server[1]通訊原理,通過它可以充分利用兩端硬件環境的優勢,將任務合理分配到 Client端和Server端來實現,降低了系統的通訊開銷。總體結構系統的模塊結構包括消息管理模塊、團隊管理模塊和任務管理模塊。

1.2 處理流

1.2.1 頂層處理流

手機端通過移動網絡把指令上傳的服務器,服務器對指令進行處理后返回XML形式的數據,手機端對返回的數據進行解析。

1.2.2 第一層處理流

1)登錄子系統

手機通過移動網絡,發送用戶名密碼信息到服務器端,服務器接受到信息后調用數據庫核對信息,核對后把True和False信息返回,手機隊返回數據解析得到登錄驗證是否成功。

2)管理子系統

手機用戶登錄成功后,進入管理子系統,可以調用進行消息管理、團隊管理和任務管理三個第二層模塊。

1.2.3 第二層處理流

1)消息管理流程

首先進行用戶驗證,通過驗證后可進行查看消息、刪除消息、發送消息。

2)認證加入團隊流程

首先進行用戶驗證,通過驗證后可進行認證/通過、加入團隊申請。

3)團隊管理流程

首先進行用戶驗證,通過驗證后可進行新建、解散、退出和編輯團隊。

4)團隊成員查看流程

首先進行用戶驗證,通過驗證后,通過用戶ID和團隊ID在團隊和用戶管理表中查找到團隊用戶成員,然后將查詢到的數據返回。

5)剔除團隊成員

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

6)查看團隊個人任務列表流程

首先進行用戶驗證,驗證該用戶是否為該團隊的成員,通過驗證后在數據庫中查找到該團隊任務信息,然后將查詢到的數據返回。

7)任務管理流程

首先進行用戶驗證,驗證該用戶是否為要修改任務的任務擁有人,通過驗證后可進行任務查看、撤銷、完成、更新狀態。

1.3 實現流程

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

2 接口設計

服務器端主要接口通過XML方式傳送數據。

2.1 外部接口

1)用戶接口

采用自己重寫顯示的Android組件和Android的標準顯示組件等。

2)硬件接口

手機物理或虛擬鍵盤。

3)軟件接口

通過手機無線借入互聯網,xml文件形式進行數據交互、通過JDBC對MYSQL[2]數據庫的連接。

2.2 內部接口

通過面向對象語言設計類,在public類中實現調用,類間實現嚴格封裝。

3 數據庫設計

系統中數據庫采用android內置SQLite數據庫和MySQL[3]數據庫。

3.1 結構化查詢語言

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

3.2 手機數據庫設計

SQLite數據庫是一款輕型的數據庫,是遵守ACID的關聯式數據庫管理系統,它的設計目標是嵌入式的,而且目前已經在很多嵌入式產品中使用了它,它占用資源非常的低,在嵌入式設備中,可能只需要幾百K的內存就夠了。

3.3 數據庫公共模塊

3.3.1 手機端

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

用戶管理、消息管理和團隊管理業務Bean,分別對不同的模塊進行數據的操作,其中有對數據庫的具體操作的方法,主要代碼如下。

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.敏捷軟件開發[M].機械工業出版社,2000.8:197-289.

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

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

猜你喜歡
數據庫用戶管理
棗前期管理再好,后期管不好,前功盡棄
今日農業(2022年15期)2022-09-20 06:56:20
數據庫
財經(2017年2期)2017-03-10 14:35:35
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
數據庫
財經(2016年15期)2016-06-03 07:38:02
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
“這下管理創新了!等7則
雜文月刊(2016年1期)2016-02-11 10:35:51
人本管理在我國國企中的應用
現代企業(2015年8期)2015-02-28 18:54:47
主站蜘蛛池模板: 亚洲最大情网站在线观看| 亚洲无码91视频| 久久精品中文字幕免费| 亚欧成人无码AV在线播放| 欧美a在线看| 草草线在成年免费视频2| 日本一区二区不卡视频| 久久精品中文字幕免费| 青青草原国产免费av观看| 久久人人妻人人爽人人卡片av| 黄色在线不卡| 天天色综网| 香蕉蕉亚亚洲aav综合| 亚洲欧美不卡视频| 久久国产黑丝袜视频| a级毛片免费看| 中文字幕久久亚洲一区| 人妻21p大胆| 午夜影院a级片| 日韩在线视频网站| 在线中文字幕网| 国产微拍一区二区三区四区| 亚洲精品黄| 亚洲成人精品| 欧美精品二区| 婷婷中文在线| 日本欧美视频在线观看| 制服丝袜亚洲| 一本二本三本不卡无码| 亚洲婷婷在线视频| 亚洲av综合网| 一区二区欧美日韩高清免费| 国产精品毛片在线直播完整版| 欧美视频在线观看第一页| 精品国产免费人成在线观看| 波多野结衣国产精品| …亚洲 欧洲 另类 春色| 人与鲁专区| 亚洲成人播放| 精品视频91| 综合天天色| 亚洲综合二区| 国产精品三级专区| 精品无码一区二区三区电影| 免费日韩在线视频| 亚洲一区二区成人| 午夜天堂视频| 久久91精品牛牛| 国产午夜福利亚洲第一| 久久成人免费| 亚洲一区二区三区麻豆| 手机成人午夜在线视频| 色哟哟色院91精品网站| 日韩国产亚洲一区二区在线观看| 污污网站在线观看| 亚洲第一在线播放| 97超级碰碰碰碰精品| 伊在人亚洲香蕉精品播放| 国产精品久久久久婷婷五月| 无遮挡一级毛片呦女视频| av午夜福利一片免费看| 9999在线视频| 免费一级大毛片a一观看不卡 | 国产91丝袜在线播放动漫| 中文字幕永久在线看| 欧美啪啪视频免码| 91精品啪在线观看国产| 日本欧美精品| 国产精品99在线观看| 亚洲综合国产一区二区三区| 国产精品分类视频分类一区| 狠狠v日韩v欧美v| 国产免费观看av大片的网站| www成人国产在线观看网站| 亚洲成年人网| 国产99精品久久| 奇米精品一区二区三区在线观看| 91黄视频在线观看| 日韩欧美高清视频| 国产女人18水真多毛片18精品| 91尤物国产尤物福利在线| 国产成人亚洲精品无码电影|