毕业设计(论文)-Java聊天室的设计与实现.doc_第1页
毕业设计(论文)-Java聊天室的设计与实现.doc_第2页
毕业设计(论文)-Java聊天室的设计与实现.doc_第3页
毕业设计(论文)-Java聊天室的设计与实现.doc_第4页
毕业设计(论文)-Java聊天室的设计与实现.doc_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

太原理工大学 毕业答辩 Java 聊天室的设计与实现 姓 名: 学 院:软件学院 专 业:软件专业 班 级:软件 1028 学 号: 指导老师: 太原理工大学毕业设计 (论文)用纸 i Java 聊天室的设计与实现 摘要 本次毕业设计主要实现了基于 Java 的聊天系统的功能。此系统在模仿 QQ 软件的 基础增加了通信的安全性。在现在已有的聊天软件中,经常用户的帐号会被盗取,导 致用户建立起来的与各个朋友的联系方式被盗取。因此对所有通过网络来传输的数据 都需要进行加密来保证其安全性。 通过分析聊天系统的功能以及性能等的需求,运用了 java 技术,设计并实现了 基于 java 的聊天系统,并在 Eclipse 上搭建了项目及运行。 该系统总体划分为两大功能模块:客户端功能模块和服务器端功能模块。客户端 又分为用户注册、已注册用户登录、用户的好友显示、用户之间的聊天、添加好友、 查看用户好友信息六大服务功能模块。实现了聊天系统所需要的各项功能。此外,使 用 SQL Server20005 数据库来实现数据存储,设计并编写 java 类来实现对 SQL Server2005 数据库中的数据的操作。 关键字 Java 聊天系统; Eclipse;SQL Server2005 数据库 全套设计加扣 3012250582 太原理工大学毕业设计 (论文)用纸 ii Design and implementation of Java chat room Abstract The main achievement of the graduate design features Java-based chat system. This system is the basis of imitation QQ software to increase the security of communications. In the chat software now has regular users account will be stolen, causing the user to build up contacts with various friends was stolen. Therefore, all data transmitted over the network needs to be encrypted to ensure security. By analyzing the demand chat system functionality and performance, the use of java technology, design and implementation of java-based chat system, and built on the Eclipse project and run. The overall system is divided into two modules: the client and server-side functional modules function modules. Client is divided into user registration, registered user login, the users friends show chat between users, add friends, view the users friends information six service modules. Chat system implements the functions required. In addition, the use of SQL Server20005 database to store data, design and write java class to implement the data SQL Server2005 database operations. Keywords: Java chat system; Eclipse; SQL Server2005 database 太原理工大学毕业设计 (论文)用纸 iii 目 录 摘要.i ABSTRACT.ii 目 录.iii 1. 引 言.1 1.1 系统的背景介绍.1 1.2 目标系统的概述.1 1.3 系统的前景.1 2. 系统的需求分析.3 2.1 聊天软件的功能简介.3 2.1.1 聊天软件客户端功能.3 2.1.2 服务器功能.4 3. 系统的设计.5 3.1 系统的整体结构设计.5 3.2 系统的详细设计.5 3.2.1 服务器模块设计.5 3.2.2 客户端模块设计.7 4. 系统的实现.11 4.1 使用技术的介绍.11 4.2 编程工具的选择.13 4.3 数据库系统的实现.13 4.4 数据库的连接设计.14 5. 系统设计的独特思想.16 5.1 对腾讯 QQ 的基本功能的调查.16 5.2 本系统设计.16 6 .系统功能举例.18 7.系统测试.22 太原理工大学毕业设计 (论文)用纸 iv 结束语.24 参考文献.25 致 谢.26 附 录.27 部分模块代码.27 外文原文.34 中文翻译.42 太原理工大学毕业设计 (论文)用纸 1 1. 引 言 1.1 系统的背景介绍 近些年来,由于随着信息技术和网络的飞速发展,聊天软件成为了新的人与人交 流的工具,于是各种聊天软件便随之诞生。此系统在模仿 QQ 软件的基础增加了通信的 安全性。在现在已有的聊天软件中,经常用户的帐号会被盗取,导致用户建立起来的 与各个朋友的联系方式被盗取。因此对所有通过网络来传输的数据都需要进行加密来 保证其安全性。这是本软件相对于其他大部分软件的优势所在。 本系统采用 Java 语言作为开发语言,而 Java 语言又以其优秀的安全性和可移植 性,越来越多的被人们所青睐以及使用。 基于局域网的即时通信工具,实际上是互联网即时通信工具的一个小规模版本, 广域网上的即时通信工具,如今一般采用 UDP 或者 TCP 协议体系来实现 ,开发技术 已经比较成熟,比如较早的 ICQ、MSN Messenger、YAHOO 通等国外开发的产品,还有 国产的有名的 QQ、新浪 UC、LAVA-LAVA 等,这些工具统统都实现了广域网上的即时通 信,尽管都是即时通信,实现了即时聊天,以及文件传输的主要功能,但是也各有各 的特色,比如 ICQ 的巨大客户群,MSN 的个性化表情,YAHOO 通的易操作性等,而 QQ 也具有一个相当方便的屏幕截图功能,另外就是,所有上述软件都实现了网络即时的 视频,语音聊天功能。这些软件,在使用方面各有特色,在实现方面也各有所长,但 由于这些产品正在商业运营阶段,其实现方式属于商业机密,具体细节不可能得知, 但是它在大的方面无非就是各种利用各种平台上的网络通信接口,建构基于下层 TCP/IP,或者 UDP/IP 协议的软件产品。在局域网内,这些功能的实现跟广域网相比更 加简单,因为局域网的网络结构本身比广域网要简单,但是可以借此理解网络协议, 以及网络通信工具的实现原理,所以仍然极具研究价值。 1.2 目标系统的概述 我完成的题目java 聊天室的设计与实现 该题目是我在了解当前聊天软件的现状,并通过对 Java 的学习后下决心完成的。 通过学习 Java 使我了解它的优势,并通过与当前网络聊天软件的缺点对比,我发现 Java 语言能很好编写此聊天系统。 “Java 支持统一的数据库接口标准 JDBC(Java Database Connectivity) ,Java 可以通过 JDBC 驱动程序直接访问数据库。 ”等优秀的 特性。我通过查阅网络上一些优秀聊天系统的设计思想和代码,并从中吸取了许多别 人设计的系统的优点。我想有前人优秀的设计基础,以及我在大学中所学的专业知识, 我对完成此次设计充满信心。 1.3 系统的前景 本聊天系统未来将作为未接入 internet 局域网的聊天软件,用户之间可以进行方 便的信息交流和文件传输。 太原理工大学毕业设计 (论文)用纸 2 网络技术和数据库管理技术的不断发展,C/S 体系结构在软件的开发中越来越流 行。因为这种结构的局域网即时通讯软件可以充分发挥网络的作用和数据库系统的优 势,以满足企业各种应用的需求。 局域网内部文件传输及聊天工具平台,是在企业局域网内部使用的,员工之间用 来交流和文件共享的一个工具,一般都会具有文本聊天、文件传输等功能,随着近来 信息技术的发展,视频会议、远程协助、系统集成、分级管理、通知公告、群组讨论、 企业文件柜等适合与企业内部使用,操作方便的功能点逐渐融入到局域网语音聊天工 具之中,以其消耗少、使用简答、沟通安全等特点成为现今企事业单位内部沟通应用 最广泛的软件之一。 局域网聊天软件利用的是互联网线路,通过文字、语音、视频、文件的信息交流 与互动,有效节省了沟通双方的时间与经济成本;局域网聊天软件不但成为人们的沟 通工具,还成为了人们利用其进行电子商务、工作、学习等交流的平台,将日常办公 的传统沟通方式替换,有效的减少办公费用的同时,较之更有效率百分之一。 太原理工大学毕业设计 (论文)用纸 3 2. 系统的需求分析 2.1 聊天软件的功能简介 本软件系统主要有两大模块,分为服务器端功能部分和客户端功能部分。在服务 器端主要是用来处理客户端传来的各种消息的,其消息包括用户登录连接请求,用户 请求发送给哪位用户的消息区分并将此消息再传递给接收的用户,用户的退出等等。 客户端主要是用来实现各种需求的,如注册、登录、登录之后显示登陆成功的主面板, 生成需要聊天的聊天窗口,添加好友,查看好友信息等等。其中客户端用例图如下: 用户 注册 登录 主面板 聊天 添加好友 查看好友信息 图 2.1 客户端用例图 2.1.1 聊天软件客户端功能 (1) 用户注册 新用户录入(用户登录名,密码与确认密码) ,如果用户登录名与系统中已注册的 用户登录名不相同,命名符合指定的规则,且密码与确认密码一致,则系统报告“注 册成功” ,否则系统将提示你“登录名已存在” ,或者提示“不符合命名规则” ,等相关 信息,这时便需要重新注册。为了及时告诉注册用户其注册名是否符合规则,在此使 用了响应时间的机制,在用户填写完毕,将光标聚焦到其他的输入框就开始判断,符 合规则,不给予提示,否则会报告错误。 (2) 用户登录 注册用户输入登录名与密码,如果与系统中已注册的用户登录名及密码匹配,则 用户登录成功,否则提示错误。 (3) 主面板 用户登录成功后,系统会自动提取该登录用户的好友,按照好友所在的分组依次 显示在各个分组之下,这些信息都显示在主面板之上。此外在主面板上还有添加好友 太原理工大学毕业设计 (论文)用纸 4 功能,显示选中的好友的相关信息。 (4) 聊天 用户通过点击好友列表需要聊天的好友,会弹出与其聊天好友的面板,在此面板 可以向好友发送信息和显示来自好友的信息。 (5) 添加好友 用户通过点击此按钮,会弹出添加好友的对话框,在此对话框中添加需要添加的 的好友的用户名,再添加完毕之后,同样是通过事先响应机制来查看是否此好友存在, 如果不存在,会给与提示。如果存在,分组下拉列表会显示当前用户所拥有的分组, 然后用户就可以选择需要添加的好友的所在的分组。 (6) 查看好友信息 在好友列表中选中想查看的好友,然后点击“查看好友信息”按钮,会弹出一个 一个对话框,显示可以查看的此好友的信息。包括好友的用户名,昵称,此好友拥有 的好友数,以及此好友和当前登录者共同拥有的好友。 2.1.2 服务器功能 服务器主要是用来为来自客户端的各种消息提供各种服务,以及显示当前链接到 服务器的用户的状态:包括哪些用户登录了,哪些用户断开连接,当前在线的用户的 列表等相关信息。 太原理工大学毕业设计 (论文)用纸 5 3. 系统的设计 3.1 系统的整体结构设计 按照需求分析的要求我对本聊天系统主要进行了两大模块设计,现进行模块划分 如图 3.1。 聊天室系统 客户端 服务器 图 3.1 聊天系统模块划分图 3.2 系统的详细设计 3.2.1 服务器模块设计 1.服务器模块功能: 此模块主要有菜单,文本框,列表,水平垂直滚动条以及标签组成。 (1) 启动服务器,在服务器端监听发送过来的各种消息 (2) 对于新的 socket 发送过来的消息,进行接收,将这个 socket 添加到服务器 管理客户 socket 队列,并启动一个新的线程来为这个 socket 提供服务。 (3) 每一个新的线程负责自己的客户的 socket,接收来自此 socket 的消息,分 析这消息,将其进行相应的处理。这些消息包括:用户登录连接和验证请求,客户端 发送过来的消息进行解析,然后提取需要的发送给的接受者,将消息给负责接受者的 线程,让接受者线程将消息发送给接受者。用户退出,在列表同样会显示退出的用户, 并会刷新当前在线的用户。 太原理工大学毕业设计 (论文)用纸 6 2.服务器模块的关系图如图 3.2 所示: 启动服务器 监听新的socket消 息 产生一个新的服务 客户端的线程 新的socket N Y 分析客户端的消息 图 3.2 服务器模块流程图 3.服务器界面介绍: 启动此类后,会看到一个菜单栏,启动服务器需要点击“文件”中的“连接”会在文本框中 显示相关信息。 “文件”中“退出”即退出服务器,在退出前做一些处理操作,例如,如果还有用 户连接在此服务器,会告诉用户服务器退出。以及在服务器中用到的一些流或者套接字操作进行 相应的关闭操作。防止退出服务器,还有一些对象在内存占据空间,造成不必要的浪费。 服务器模块设计到得类如下图所示: 图 3.3 客户端和服务器端类图 太原理工大学毕业设计 (论文)用纸 7 3.2.2 客户端模块设计 1.注册模块功能: (1) 用户名检验:命名规则验证和是否存在验证。其中命名规则验证时利用正则 表达式进行验证是否符合规则,见代码块正则表达式部分。利用响应事件来判断,使 用户尽早发现问题。此用户名是否存在利用通过查找数据库看是否存在此用户名已经 存在。 (2) 昵称:为了让用户使用自己喜欢的名字,不再受到各种约束。 (3) 密码:对用户输入的密码和确认密码进行比较,如果二者相等,会给与提示。 (4) 确认:将用户的注册的信息添加到数据库的用户列表中,其中对添加的密码 是经过加密操作的。 (5) 取消:关闭此对话框 此功能模块类中的主要属性和方法 图 3.4 用户注册页面结构 2.登录模块的功能 在此获取要登录用户的用户名和密码,然后将这些信息加密发送到服务器上,然 后由服务器调用数据库中的数据来查看是否用户发送的数据是否正确,然后将信息返 回给客户端。如果错误会在登录框给与提示,否则将自动跳转到登录成功用户的主面 板,并将好友显示;此模块由标签,编辑框,密码编辑框和按钮组成。 此模块类主要的属性和方法如下图所示: 太原理工大学毕业设计 (论文)用纸 8 图 3.5 用户登录页面结构 3.主面板模块的功能 此模块主要由树控件,按钮组成。 (1) 此模块主要是在初始化的时候显示如下的信息: a、根据登录成功的用户的在主面板的标题上显示登录用户的用户名,以来区分多 个用户登录显示的多个主面板 b、利用树的控件显示好友列表,根据登录的用户的好友所拥有的群组,按照群组 进行分类,将好友显示在所在的分组中 (2) 功能按钮: a、添加好友:为当前登录的用户添加好友到指定的组中 b、查看好友信息:对自己好友列表中的好友可以通过对选中好友查看其可以看到 的信息 (3) 事件响应: 在此控制面板中需要添加对选中的好友的信息进行提起,提取的信息一方面是用 来生成与选中的好友进行对话的聊天窗口,对生成的每个聊天窗口用一个 HashMap 进 行统一的管理,以便从服务器来的消息可以区分出是来自那个对话者,然后让其显示 在取其对话者的接受消息窗口中;另一方面是用来为查看好友的信息进行作准备。 此模块对应的类的主要属性和方法如下图所示: 图 3.6 用户主面板页面结构 4.聊天模块的功能 此模块同样是采用在对话框中显示需要的功能。在此对话框中拥有接收消息和发 送消息窗口,以及发送和取消按钮。在初始化中显示以上控件,并且在对话框的标题 太原理工大学毕业设计 (论文)用纸 9 栏显示与其对话者的用户名。 (1) 发送消息窗口:在此窗口编辑要发送的消息 (2) 接收消息窗口:在此窗口显示编辑的发送消息和接受来自与其对话者发送过 来的消息,并且对话者的每条消息都会在其消息前面添加对话者的用户名,以来区分 是发送的消息还是接受的消息 (3) 发送按钮:取出在发送消息窗口编辑的发送消息,对其进行加密处理,然后 将消息发送到服务器上。 (4) 取消按钮:将发送消息窗口的消息清空。 此功能模块的类的主要的属性和方法如下图所示: 图 3.7 用户聊天页面结构 5.添加好友模块的功能 此模块首先要求输入添加的好友的用户名,然后选择将要添加到用户的分组中。 在此模块中主要有标签,编辑框,下拉列表以及按钮控件组成。 (1) 响应事件:对输入用户名编辑框添加相应事件,当用户输入完毕,进入下一 控件进行相应的操作,会检测此用户是否存在,如果不存在会给与提示,若存在就在 下面组选择列表中显示所拥有组供用户选择。 (2) 确定按钮:将用户要添加的好友的信息添加到当前在数据库中的用户的好友 信息表中。 模块的类图如下图所示: 太原理工大学毕业设计 (论文)用纸 10 图 3.8 用户添加好友页面结构 6.查看好友信息模块的功能 此模块的主要功能是对选中好的信息查看,信息包括好友的用户名,昵称,好友 拥有的好友数目,以及好友与本人共同的好友列表。模块中涉及的控件主要有:标签, 编辑框,列表。 本模块主要涉及对数据库的操作,一个是直接提取好友的一些直接的信息,一个 是计算此好友所拥有的好友的数量,再一个是涉及到本人和好友两个人的信息,计算 出共同的好友。 此模块类中的主要属性和方法如下图所示: 图 3.9 用户查看好友页面结构 7.启动客户端模块的功能 本模块主要是作为客户端的启动模块,用来统一操纵上述的各个模块,使他们能 够协调远转。另外本模块还定义了一些特别的属性,例如套接字,输出输入流,缓冲 等,以提供给客户端各个模块使用。减少每次启动新的模块都要重复定义相同的属性, 并且在模块退出时还需要进行相应处理,防止出现内存浪费的现象。虽然 Java 有回收 机制,但是依靠这种机制在有些方面还是比较被动的。由于服务器给每个客户端来的 新的套接字都分派一个新的服务进程来提供服务,如果每次都用新的套接字,会出现 混乱的现象。 此模块涉及到类的属性和方法: 太原理工大学毕业设计 (论文)用纸 11 图 3.10 客户端模块类图 4. 系统的实现 4.1 使用技术的介绍 java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 程序设计语言和 Java 平台(即 JavaEE, JavaME, JavaSE)的总称。Java 自面世后就非常流行,发展迅速,对 C+语言形成了 有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于 个人 PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全 球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java 更具备了 显著优势和广阔前景。Java 的主要特性: JavaJava 语言是易学的语言是易学的。Java 语言的语法与 C 语言和 C+语言很接近,使得大多数程 序员很容易学习和使用 Java。另一方面,Java 丢弃了 C+中很少使用的、很难理解的、 令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java 语言不使用指针,而是引用。并提供了自动的废料收集,使得程序员不必为内存管理 而担忧。 JavaJava 语言是强制面向对象的语言是强制面向对象的。Java 语言提供类、接口和继承等原语,为了简单起 见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现 机制(关键字为 implements) 。Java 语言全面支持动态绑定,而 C+语言只对虚函数 使用动态绑定。总之,Java 语言是一个纯的面向对象程序设计语言。 JavaJava 语言是分布式的语言是分布式的。Java 语言支持 Internet 应用的开发,在基本的 Java 应用 编程接口中有一个网络应用编程接口(java net) ,它提供了用于网络应用编程的类库, 包括 URL、URLConnection、Socket、ServerSocket 等。Java 的 RMI(远程方法激活) 机制也是开发分布式应用的重要手段。 JavaJava 语言是健壮的。语言是健壮的。Java 的强类型机制、异常处理、垃圾的自动收集等是 Java 程序健壮性的重要保证。对指针的丢弃是 Java 的明智选择。Java 的安全检查机制使 得 Java 更具健壮性。 JavaJava 语言是安全的。语言是安全的。Java 通常被用在网络环境中,为此,Java 提供了一个安全 机制以防恶意代码的攻击。除了 Java 语言具有的许多安全特性以外,Java 对通过网 太原理工大学毕业设计 (论文)用纸 12 络下载的类具有一个安全防范机制(类 ClassLoader) ,如分配不同的名字空间以防替 代本地的同名类、字节代码检查,并提供安全管理机制(类 SecurityManager)让 Java 应用设置安全哨兵。 JavaJava 语言是体系结构中立的。语言是体系结构中立的。Java 程序(后缀为 java 的文件)在 Java 平台上被 编译为体系结构中立的字节码格式(后缀为 class 的文件) ,然后可以在实现这个 Java 平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。 JavaJava 语言是可移植的。语言是可移植的。这种可移植性来源于体系结构中立性,另外,Java 还严格 规定了各个基本数据类型的长度。Java 系统本身也具有很强的可移植性,Java 编译器 是用 Java 实现的,Java 的运行环境是用 ANSI C 实现的。6 JavaJava 语言是解释型的。语言是解释型的。如前所述,Java 程序在 Java 平台上被编译为字节码格式, 然后可以在实现这个 Java 平台的任何系统中运行。在运行时,Java 平台中的 Java 解 释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境 中。 JavaJava 是性能略高的。是性能略高的。与那些解释型的高级脚本语言相比,Java 的性能还是较优的。 JavaJava 语言是原生支持多线程的。语言是原生支持多线程的。在 Java 语言中,线程是一种特殊的对象,它必 须由 Thread 类或其子(孙)类来创建。通常有两种方法来创建线程:其一,使用型构 为 Thread(Runnable)的构造子将一个实现了 Runnable 接口的对象包装成一个线程, 其二,从 Thread 类派生出子类并重写 run 方法,使用该子类创建的对象即为线程。值 得注意的是 Thread 类已经实现了 Runnable 接口,因此,任何一个线程均有它的 run 方法,而 run 方法中包含了线程所要运行的代码。线程的活动由一组方法来控制。 Java 语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为 synchronized) 。 JavaJava 语言是动态的。语言是动态的。Java 语言的设计目标之一是适应于动态变化的环境。Java 程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。这 也有利于软件的升级。另外,Java 中的类有一个运行时刻的表示,能进行运行时刻的 类型检查。 Java 语言的优良特性使得 Java 应用具有无比的健壮性和可靠性,这也减少了应 用系统的维护费用。Java 对对象技术的全面支持和 Java 平台内嵌的 API 能缩短应用 系统的开发时间并降低成本。Java 的编译一次,到处可运行的特性使得它能够提供一 个随处可用的开放结构和在多平台之间传递信息的低成本方式。特别是 Java 企业应用 编程接口(Java Enterprise APIs)为企业计算及电子商务应用系统提供了有关技术 和丰富的类库。Java 的诞生是对传统计算机模式的挑战,对计算机软件开发和软件产 业都产生了深远的影响: (1)软件 4A 目标要求软件能达到任何人在任何地方在任何时间对任何电子设备 都能应用。这样能满足软件平台上互相操作,具有可伸缩性和重用性并可即插即用等 分布式计算模式的需求。 (2)基于构建开发方法的崛起,引出了 CORBA 国际标准软件体系结构和多层应用 体系框架。在此基础上形成了 Java.2 平台和.NET 平台两大派系,推动了整个 IT 业的 发展。 (3)对软件产业和工业企业都产生了深远的影响,软件从以开发为中心转到了以 服务为中心。中间提供商,构件提供商,服务器软件以及咨询服务商出现。企业必须 重塑自我,B2B 的电子商务将带动整个新经济市场,使企业获得新的价值,新的增长, 太原理工大学毕业设计 (论文)用纸 13 新的商机,新的管理。 (4)对软件开发带来了新的革命,重视使用第三方构件集成,利用平台的基础设 施服务,实现开发各个阶段的重要技术,重视开发团队的组织和文化理念,协作,创 作,责任,诚信是人才的基本素质。 Java 技术已经成为当今 Internet 应用开发的核心与主流技术。这一方面是因为 Java 语言具有面向对象、可移植性、强壮性与安全性等优良特性,另一方面也由于 Java 技术对各个层次的应用都提供了全面系统的方法和技术。因此,随着时间的推移, Java 技术的应用会更加的广泛。 4.2 编程工具的选择 本系统是以 Eclipse 为主要开发工具,Eclipse 是免费的开发工具。Eclipse 具有 强大的 IDE,这套强大的集成开发环境中,除了具备常用的编辑、编译、调试等基本功 能外,还具备了开发者精心为程序员打造的项目管理、重构和 UML 建模等扩展功能。 目前全球有上百万人在使用 Eclipse 进行开发。为什么 Eclipse 拥有如此众多的拥趸? 这与 Eclipse 集众多特性于一身有很大关系。 Eclipse 是开放源代码的软件。这意味着 Eclipse 不仅可以免费使用,还可以通 过研究源代码学习世界上顶尖开发人员的编程技术,并可以共享遍布全球的开发人员 所贡献的公共开放源代码库。 Eclipse 是真正可扩展并可配置的。Eclipse 采用插件机制,犹如一个花瓶,你可 以随时向花瓶里面插花,也可以很容易将不再需要的花取出。目前,互联网上免费的、 收费的插件遍地开花,插件开发工作在国内外也如火如荼。 Eclipse 支持众多的开发语言而不仅仅是 Java。Eclipse 只是给开发人员提供了 一个能够扩展系统功能的最小核心,基于扩展点的插件体系结构使得 Eclipse 支持多 种语言成为可能。只要安装相应语言的插件,Eclipse 就可以支持该种语言的开发。 目前,Eclipse 已经可以支持 C/C+、 COBOL、PHP、Perl、Python 等多种语言。 (尽 管 Eclipse 主要是一个 Java 开发环境,但其体系结构确保了对其它编程语言的支持) 。 Eclipse 提供了对多重平台特性的支持。开发者可以使用他们感觉最舒适、最熟 悉的平台,例如 Windows、Linux、MacOS 等。Eclipse 对每个平台都有其单独的图形 工具包,这使得应用程序具有接近本地操作系统的外观和更好的性能。 基于业界领先的 OSGi 规范。OSGi 规范最早由 Sun Microsystems、IBM、爱立信等 于 1999 年推出,其服务平台包括:服务网关、汽车、移动电话、工业自动化、建筑物 自动化、PDA 网格计算、 娱乐(如 iPronto)和 IDE 等。基于 OSGi 的系统以微内核 形式运行,因而能够轻松实现软件业界梦寐以求的可热插拔、动态改变行为、稳定高 效的系统。Eclipse 从 3.1 开 始,毅然抛弃了其原有的已经获得业界认可的框架,采 用 OSGi 作为其架构。从 Eclipse3.2 版本开始,Eclipse 提供了基于 OSGi 开发的支 持,开发者可以利用其开发基于 OSGi 的系统了。 Eclipse 美轮美奂的人机界面受到广泛赞誉。Eclipse 提供了全新的 SWT/JFace API(而不是 AWT/Swing) ,一改 SWT/Swing 单调、沉闷的界面风格,使得开发基于本 地的具有丰富图形界面的应用程序成为可能,犹如一股春 风吹进 Java 的桌面开发领 太原理工大学毕业设计 (论文)用纸 14 域,给人耳目一新的感觉。 Eclipse 由业界领先者推出,具有强大的行业力量。Eclipse 基金会吸收了大量学 术研究机构、商业组织,领导 Eclipse 的长远规划和发展,并确保 Eclipse 处于软件 工具行业的领先地位。 4.3 数据库系统的实现 首先建设一个数据库名称 QQChat,该数据库主要由 userInfo 表和各个用户表构 成。其中 userInfo 表主要是用来保存通过注册的用户的相关信息,而各个用户表是用 来保存对应用户的好友。其中各个表的结构如下所示: 表 4.1 userInfo 表的结构如下表: FieldTypeNullKey 说明 IDVarchar(20)PRI id 是用户的登录名 PasswordVarchar(50)Yes 用户的登录密码,以密文 的方式进行了保存 NicknameVarchar(20)Yes 用户为自己命名的昵称 表 4.2 各个用户表的结构如下表: FieldType 说明 Friends_IDVarchar(20) 此用户的好有名 GroupsVarchar(20) 这位好友所在的组 4.4 数据库的连接设计 首先数据库的连接方式采用 JDBC 的方式进行的连接。JDBC 是 Sun 提供的一套数 据库编程接口 API 函数,由 Java 语言编写的类、界面组成。JDBC(Java Data Base Connectivity,java 数据库连接)是一种用于执行 SQL 语句的 Java API,可以为多种 关系数据库提供统一访问,它由一组用 Java 语言编写的类和接口组成。JDBC 提供了 一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应 用程序。用 JDBC 写的程序能够自动地将 SQL 语句传送给相应的数据库 管理系统。不 但如此,使用 Java 编写的应用程序可以在任何支持 Java 的平台上运行,不必在不同 的平台上编写不同的应用。Java 和 JDBC 的结合可以 让开发人员在开发数据库应用程 序时真正实现“WriteOnce,RunEverywhere!”数据库的连接工作主要通过服务器由 一个 java 类来完成。请见附录中Conn.java 代码实现部分。创建一个以 JDBC 连接数据库 的程序,包含 7 个步骤: 1、加载 JDBC 驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到 JVM(Java 虚拟机) , 太原理工大学毕业设计 (论文)用纸 15 这通过 java.lang.Class 类的静态方法 forName(String className)实现。成功加载 后,会将 Driver 类的实例注册到 DriverManager 类中。 2、提供 JDBC 连接的 URL 连接 URL 定义了连接数据库时的协议、子协议、数据源标识。 书写形式:协议:子协议:数据源标识 协议:在 JDBC 中总是以 jdbc 开始 子协议:是桥连接的驱动程序或是数据库管理系统名称。 数据源标识:标记找到数据库来源的地址与连接端口。 3、创建数据库的连接 要连接数据库,需要向 java.sql.DriverManager 请求并获得 Connection 对象, 该对象就代表一个数据库的连接。 使用 DriverManager 的 getConnectin(String url , String username , String password )方法传入指定的欲连接的数据库的路径、数据库的用户名和 密码来获得。 4、创建一个 Statement 要执行 SQL 语句,必须获得 java.sql.Statement 实例,Statement 实例分为以下 3 种类型: 执行静态 SQL 语句。通常通过 Statement 实例实现。 执行动态 SQL 语句。通常通过 PreparedStatement 实例实现。 执行数据库存储过程。通常通过 CallableStatement 实例实现。 5、执行 SQL 语句 Statement 接口提供了三种执行 SQL 语句的方法:executeQuery 、executeUpdate 和 execute ResultSet executeQuery(String sqlString): 执行查询数据库的 SQL 语句,返回一个结果集(ResultSet)对象。 int executeUpdate(String sqlString):用于执行 INSERT、UPDATE 或 DELETE 语句以及 SQL DDL 语句,如:CREATE TABLE 和 DROP TABLE 等 execute(sqlString):用于执行返回多个结果集、多个更新计数或二者组合的 语句。 6、处理结果两种情况: 执行更新返回的是本次操作影响到的记录数。 执行查询返回的结果是一个 ResultSet 对象。 ResultSet 包含符合 SQL 语句中条件的所有行,并且它通过一套 get 方法提供了 对这些行中数据的访问。 7、关闭 JDBC 对象 操作完成以后要把所有使用的 JDBC 对象全都关闭,以释放 JDBC 资源,关闭顺序 和声明顺序相反: 关闭记录集 关闭声明 关闭连接对象 太原理工大学毕业设计 (论文)用纸 16 5. 系统设计的独特思想 5.1 对腾讯 QQ 的基本功能的调查 腾讯 QQ(简称“QQ” )是腾讯公司开发的一款基于 Internet 的即时通信(IM)软 件。 标志是一只戴着红色围巾的小企鹅。腾讯 QQ 支持在线聊天、视频聊天以及语音聊 天、点对点断点续传文件、共享文件、网络硬盘、自定义面板、远程控制,QQ 邮箱等 多种功能,并可与移动通讯终端等多种通讯方式相连。1999 年 02 月,腾讯正式推出 第一个即时通信软件“OICQ” ,后改名为腾讯 QQ。 QQ 注册用户由 1999 年的 2 人(马化腾和张志东)到现在已经发展到上亿用户, 2014 年 4 月 11 日 21 点 11 分在线人数突破两亿,如今已成为腾讯公司的代表之作, 是中国目前使用最广泛的聊天软件。 QQ 支持显示朋友在线信息、即时传送信息、即时交谈、即时发送文件和传送语音 网址。QQ 可以自动检查您是否已联网,如果您的电脑已连入 Internet,可以搜索网友、 显示在线网友,可以根据 QQ 号、昵称、姓名、Email 地址等关键词来查找,找到后 可加入到通讯录中。当您的通讯录中的网友在线时,QQ 中朋友的头像就会显示 Online,根据提示就可以发送信息,如果对方登记了寻呼机或开通了 GSM 手机短消息, 即使离线了,您的信息也可“贴身追踪” ,及时将信息传递给您的好友。 左键单击好友的头像,有收发讯息、传送文件、传送语音、二人世界、手机短讯、 发送邮件、个人主页、查看信息等功能。具体如下: 收发消息:这是 QQ 最常用的功能,当您的 QQ 上线以后,您可以接收好友发来的 QQ 消息或者发送、回复消息给好友。 传送文件:您的好友在线时,只需用左键点击图标,选择“传送文件” ,选定要传 送的文件,点击发送,等待对方接受请求即可。 传送语音:利用此功能可以传送语音信息。插好话筒,左键点击图标,选择“传 送语音” ,按提示先录好音,或者打开已录好的文件,发送出去。附言栏里可加入附言 文字。 发送邮件:可以直接给 QQ 上的网友发邮件,而无须再输入 Email 地址。 查看资料:查看及更新 QQ 上网友的个人信息资料。 邮件检查:设置您自己的 Email,填好邮件 POP3 地址及 SMTP 地址,您可以选 择定时检查时间,QQ 就会自动检查有否新邮件到达。 BP 机短讯:您可以将短讯以文字的方式传给好友的 BP 机,不管他是否在网上。 手机短讯:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论