《基于JAVA的电话号码查询系统设计毕业论文.docx》由会员分享,可在线阅读,更多相关《基于JAVA的电话号码查询系统设计毕业论文.docx(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、摘 要摘 要电话发展到现在已经成为千家万户最常用的通信工具,电话质量好的大家的首选之一,通话费用比别的通讯工具要便宜得多,基本上各家各户都拥有固定电话,由于使用的人不断的增加,带给管理的要求也越来越高,本管理系统的需要从实际情况出发,对业务经过详细的系统调查,开发出的操作简单而且方便实用的一个电话号码查询系统。本系统使用Myeclipse开发工具,主要使用Hibernate和Strtus2,结合Oracle数据库来实现数据库的操作。 电话号码查询系统主要对电话号码管理日常工作中遇到的实际问题,例如添加,修改,删除维护操作等。 关键词:Myeclipse Oracle数据库 电话号码 Hiber
2、nate Struts2ABSTRACT The telephone developed now already becomes everyone most commonly used communication facility, one of telephone quality good everybody first choices, the telephone conversation expense had to be much cheaper than other communication facilities, the basically various each househ
3、old all had the fixed telephone, because used persons unceasing increase, took to the management the request also more and more high, this management system management system need embarked from the actual situation, passed through the detailed system investigation to the service, developed the opera
4、tion was simple moreover facilitates a practical telephone number inquiry system. This system uses the myeclipse development kit, mainly uses the hql sentence, unifies the oracle database to realize the database operation.The telephone number inquiry system mainly the actual problem which meets to t
5、he telephone number management routine work in, for example the increase, the revision, deletes the maintenance operation and so on.This system after the test, the movement is stable, may put into the use. Keywords: Myeclipse Oracle Telephone number Hibernate struts 2目 录i目 录第一章 绪论11.1 系统开发背景11.2系统开发
6、意义11.3 开发技术21.3.1 JSP技术21.3.2 Struts2技术31.3.3 Hibernate技术31.4 开发工具31.4.1 Myeclipse31.4.2 Oracle31.4.3 Tomcat4第二章 系统的可行性分析52.1 可行性分析52.1.1 技术可行性52.1.2 经济可行性52.1.3 操作可行性62.1.4 社会因素可行性62.2 可行性研究结论6第三章 需求分析73.1 信息需求73.2 功能需求73.3系统流程图83.4 数据字典8第四章 系统总体设计与实现94.1 系统E-R图94.2 数据库表的设计104.3 详细设计114.3.1 数据库详细设计
7、114.3.2 功能模块介绍13第五章 软件测试与调试215.1测试概要215.1.1 测试目的215.1.2 定义215.1.3 测试对象215.1.4 测试工具215.1.5 测试执行225.2 测试用例225.2.1 功能性225.2.2 易用性225.3 测试方法225.4 测试结果及缺陷分析235.4.1 数据和数据库完整性测试235.4.2 功能测试245.4.3 用户界面测试24第六章 设计总结27致谢29参考文献31致谢29第一章 绪论1.1 系统开发背景计算机的应用及普及到经济和社会生活的各个领域。使原本的旧的管理方法越来越不适应现在社会的发展。许多人还停留在以前的手工操作。
8、这大大地阻碍了人类经济的发展。近年来,随着电话的日益增多,电话查询也越来越频繁。随之而来的是查询工作日趋复杂繁重,要耗费大量人力、物力,而现有查询的管理水平不高,一直以来人们使用传统人工的方式管理信息,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。这样的机制已经不能适应时代的发展,已愈来愈成为管理工作的一个瓶颈。在信息时代这种传统的管理方法必然被计算机为基础的信息管理所取代。在科学技术的不断提高,计算机科学日渐成熟的今天,计算机已经要成为我们学习和工作的得力助手。今天,计算机的价格已经十分低廉,性能却有了长足的
9、进步,它以及被应用于许多的领域,计算机之所以如此流行的原因主要有以下几个方面:首先,计算机可以代替人工进行许多的复杂的劳动。其次,计算机可以大大的提高人们的工作效率。第三,计算机可以节省许多资源。第四,计算机可以使敏感文档更加安全。1.2系统开发意义我们现在管理与我们联系的人的信息有多种,比如说,存储电话号码到手机上,有记录电话号码信息到本子上的,还有用名片夹存放名片的,也有记录在word文档中或者打印出来的,等等很多种形式。对于存储电话号码到手机上的方式,比较方便,随时随地可以联系,不过只能通过电话联系,没有记录其他的联系方式,如果手机丢了谁也联系不上了;对于记录电话等信息到本子上的方式,第
10、一有可能丢失,第二是查找起来也比较麻烦,需要人工查找,而且更新时也不容易,需要涂改以前记录的信息,第三格式也比较死板,不利于跟随用户的扩展;对于用名片夹的方式,查找起来也很补方便,有丢失的危险;对于记录到word中或者打印出来,扩展性不是很强,查找起来也不是很方便的。如此多的方式我们都感觉不方便,有一定的缺陷,那我们如何管理我们的联系人通讯资料呢?现在计算机,网络也都非常的普遍,为何不用计算机网络对通讯录人员管理呢,而现在我们的手机也逐渐智能化,也都可以连接网络了,这样我们可以随时随地查找任意信息,查找快速、维护方便、丢了手机也不会丢失联系方式、而且也可以更具用户的需要定制、比较灵活,这个可能
11、是最完美的方案了。1.3 开发技术1.3.1 JSP技术JSP全名为java server page,其根本是一个简化的Servlet设计,他实现了Html语法中的java扩张(以 形式)。JSP与Servlet一样,是在服务器端执行的,通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户端。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。JSP的强势之处有以下几点:(1)一次编写,到处运行。除了系统之外,代码不用做任
12、何更改。(2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP的局限性JSP的优势是显而易见的。(3)强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。(4)多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。(5)支持服务器端组件。web应用需要强大的服务器
13、端组件来支持,开发人员需要利用其他工具设计实现复杂功能的组件供web页面调用,以增强系统性能。JSP可以使用成熟的JAVA BEANS 组件来实现复杂商务功能。1.3.2 Struts2技术Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts 2可以理解为WebWork的更新产品。虽然从
14、Struts 1到Struts 2有着太大的变化,但是相对于WebWork,Struts 2的变化很小。1.3.3 Hibernate技术Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。1.4 开发工具1.4.1 MyeclipseMyEclipse
15、是一个十分优秀的用于开发Java, J2EE的 Eclipse 插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。MyEclipse目前支持Java Servlet,AJAX, JSP, JSF, Struts,Spring, Hibernate,EJB3,JDBC数据库链接工具等多项功能。可以说MyEclipse几乎囊括了目前所有主流开源产品的专属eclipse开发工具。1.4.2 OracleORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或
16、B/S体系结构的数据库之一。比如SilverStream就是基于数据库的一种中间件。ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。但它的所有知识,只要在一种机型上学习了ORACLE知识,便能在各种类型的机器上使用它。其特点如下:(1)数据的大量性(2)数据保存的持久性(3)数据共享性(4)数据的可靠性(5)数据安全性强、稳定性强1.4.3 TomcatTomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系
17、统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML 页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。第二章 系统的可行性分析2.1 可行性分析 可行性研究的目的是用最小的代价在尽可能的时间内确定问题是否能够解决。只要资源和时间不加以限制, 所有的项目都是可行的, 然而, 由于资源缺乏和交付时间限制的困扰, 给基于计算机系统的开发带来了困难。 因此对软
18、件项目的可行性做出细致而谨慎的评估是十分必要的。如果在定义阶段尽早发现将来可能在开发过程中遇到的问题, 及早做出决定, 可以避免大量的人工, 金钱, 时间上的浪费。 因此, 在开发本管理系统之前, 对本次开发的可行性进行了分析。2.1.1 技术可行性 数据库技术在计算机软件邻域研究中一直是非常重要的主题,产生于60年代,40多年来数据库技术得到了迅速发展,并已形成较为完整的理论体系和一大批实用系统。面向对象是一种新兴的程序设计方法,或者是一种新的程序设计规范(paradigm),其基本思想是使用对象、类、继承、封装、消息等基本概念来进行程序设计。许多程序开发工具,如VB、Java等等,都支持面
19、向对象的程序开发。因此从技术上分析,要开发一个电话号码查询系统是可行的。2.1.2 经济可行性电话号码查询系统只是一个小型的数据库管理系统,它的经济可行性可以从一下几方面考虑:软件资源:目前网络上有很多供用户免费下载的软件,学校校园网的下载速度也非常快速,所以可以从网上下载开发系统所需的各种软件,或是去电脑城购买,花费个人完全可以承受。硬件资源:已经拥有一台配置完全能够开发电话号码查询系统的计算机。参与人员:开发这个系统的人员就是自己,不需要花费金额聘请专业人士。资源和时间:资源和时间方面相对都是比较充足的。学校的图书馆藏书很多,想找到自己需要的资料并不困难,再者可以从书店购买自己所需书籍。综
20、合以上多方面的考虑结果,开发一个电话号码查询系统在经济上是完全可行的。2.1.3 操作可行性用户仅需具有基本的电脑操作能力即可。2.1.4 社会因素可行性从法律因素和安全用正版和免费角度考虑,所有技术参考资料都经授权,所有软件都选。2.2 可行性研究结论依据以上因素,本电话号码查询系统开发项目不仅方便快捷、高效,而且社会效益比较好,从而使本系统开发者相信该系统开发出来之后将取得的成功。 综上所述,此项目在技术、经济、操作和社会效益上是完全可行的。第三章 需求分析3.1 信息需求通讯录信息:人员编号,人员姓名,人员电话号码,人员Emial,人员QQ,人员公司/学校名称,人员公司/家庭地址,人员备
21、注。用户信息:用户号,姓名,登录系统密码,用户身份,权限等。3.2 功能需求系统要实现的功能有:(1)用户登录,用户通过输入正确的用户名和密码登录此电话号码查询系统,用户进入此系统后,可以对他的通讯名单进行管理,添加、删除、修改、插入等操作。(2)用户注册,没有账户的可以通过注册,添加一个自己的帐号,之后就可以用这个账户登录此系统了。(3)对通讯录信息的添加,用户进入系统后点击添加按钮,可以添加一个自己的好友信息。(4)对通讯录信息的删除,用户可以点击删除按钮删除自己选中的人员。(5)对通讯录信息的修改,用户进入系统后点击修改按钮,修改选中的的人员的信息。(6)查询功能的实现,用户进入系统后可
22、以输入用户名和电话号码检索自己要查看的通讯人员信息。3.3系统流程图图3.1 系统结构功能图3.4 数据字典名字:用户信息别名:用户信息描述:用户注册后存储的信息定义:用户信息=用户id+用户姓名+用户密码位置:存储供用户登录 名字:通讯录信息 别名:通讯录描述: 用户存储的通讯人员定义:通讯录=通讯人员id+通讯人员姓名+telephone+Emial+QQ+地址+备注位置:存储第四章 系统总体设计与实现4.1 系统E-R图图4.1 用户E-R图图4.2 通讯人员信息E-R图4.2 数据库表的设计(1)用户数据表:Telephone_user 表4.1用户数据表列名数据类型长度主外键是否为空
23、含义IDInt10主键否IdNameVarchar230否姓名PasswordVarchar230否密码Ageint10年龄QQVarchar215QQ(2) 通讯信息数据表:Telephone_book 表 4.2通讯信息数据表列名数据类型长度主外键是否为空含义IdInt10主键否IdnameVarchar230否姓名TelephongVarchar230否电话QQVarchar215QQEmialVarchar230电子邮箱SchoolVarchar250学校AddressVarchar250地址NoteVarchar2150备注4.3 详细设计4.3.1 数据库详细设计此系统选用的是Or
24、acle数据库 路川,胡欣杰,阎文丽编著Oracle 10g宝典(第2版)电子工业出版社,2010,采用的是hibernate框架对数据的管理 (美)罗森维格等著Oracle PL/SQL实例精解,机械工业出版社,2009年,Telephone_user数据表与Telephone_book数据表之间存在依赖关系,Telephone_user.id作为主键,Telephone_book.id作为外键建立依赖关系 刘京华,JavaWeb整合开发王者归来M.北京:清华大学出版社。数据库的关系图如下:图4.3 数据库表关系图由于两张表之间存在主外键的关联关系,每一条通讯信息都会对应一个用户,方便用户对
25、自己的通讯录信息的管理。 Telephone_user数据表与Telephone_book数据表之间存在一对多与多对一的关联关系,建立这种关系的好处是,当用户登录到系统里面以后就会直接在系统里反映出他的通信信息。Hibernate中的配置信息 夏昕,曹晓钢,唐勇 深入浅出Hibernate M.北京:电子工业出版社 2005.6.1如下(Hibernate.cfg.xml):oracle.jdbc.driver.OracleDrivjdbc:oracle:thin:localhost:1521:orclzhbrzhbrorg.hibernate.dialect.OracleDialectthr
26、eadtrue在hibernate实体类的映射文件中的配置如下:1. Person.hbm.xml中配置多对一的关联关系2.User.hbm.xml中配置一对多的关联关系关联关系 4.3.2 功能模块介绍该系统共有六个模块:登录模块,注册模块,增加联系人模块,删除联系人模块,修改联系人模块,查询联系人模块。1.用户登录模块:当用户进入系统后首先就直接进入到系统的登录界面,这这个界面上用户输入正确的登录名和密码就可以进入系统,登录界面如下:图4.4 用户登录模块在用户输入登录名和密码点击登录按钮时,在后台中会拿到用户输入的数据,再进行判断用户名和密码是否正确 美Rogers Cadenhead.
27、 Java编程入门经典.梅兴文译.第4版.北京:人民邮电出版社,2007,进而到数据库中拿到数据返回到客户端页面中,主要的核心代码如下:public String getPassword(String name) String hql=select password from User u where u.name=+name+;Session session=sessionFactory.openSession();Query query=session.createQuery(hql);Iterator it=query.iterate();if(it.hasNext()return it
28、.next();return 不存在;public String login()if(user.getPassword().equals(userService.getPassword(user.getName()personList=personService.getPerson();return success;elsereturn false;2.用户注册模块:用户进入登录界面后可以点击注册按钮注册一个新用户,图示如下:图4.5 用户注册界面用户注册时,首先判断此用户是否存在,如果不存在则可以注册,否则注册失败 李兴华,Java开发实战经典编著/2009年08月/清华大学出版社 2009
29、,实现此模块的核心代码如下: public String getPassword(String name) String hql=select password from User u where u.name=+name+;Session session=sessionFactory.openSession();Query query=session.createQuery(hql);Iterator it= query.iterate();if(it.hasNext()return it.next();return 不存在;如果用户存在则跳出提示框重新注册,如果用户名可用则把新注册的用户保
30、存到数据库中,具体实现代码见附录public void saveUser(User u) Session session=sessionFactory.openSession(); session.getTransaction().begin(); session.persist(u); session.getTransaction().commit();session.close();3.添加联系人模块用户登录成功后就会跳转到用户的通讯录界面,在这个界面里可以对他的联系人实现各种管理操作 孙卫琴精通Struts:基于MVC的Java Web设计与开发北京:电子工业出版社,2004: 1-9,
31、界面如下:用户登录成功后在主页面中就要把他的联系人反映出来,在这个模块中需要根据数据库的关联关系从数据库中取出正确的数据,实现此模块的核心代码如下:public List searchPerson(String arg) / TODO Auto-generated method stubList listPerson=new ArrayList();Session session=sessionFactory.openSession();session.getTransaction().begin(); if(arg.matches(0-9+)/全部为数字String hql=from Per
32、son as p where p.telephone=+arg+;Query query=session.createQuery(hql);listPerson=query.list();elseString hql=from Person as p where p.telephone=+arg+;Query query=session.createQuery(hql);listPerson=query.list();return listPerson;图4.6 用户通讯录界面当点击添加按钮的会系统就会跳到添加联系人界面,在这个界面里面要添加的内容有联系人姓名、电话号码、电子邮箱、公司学校地址
33、等,实现的界面如下:图4.7 添加联系人界面在添加联系人界面里,姓名和电话号码不为空,并且不能重复,当点击保存按钮之后就会把所添加的联系人添加到数据库里面,并且会马上返回到通讯录界面里 赵丽,杨国良 JAVA面向对象程序设计 西安电子科技大学出版社,2009.,在这个界面里也就可以看到刚才添加的好友信息,实现添加联系人模块的核心代码如下: public void savePerson(Person p) Session session=sessionFactory.openSession(); User user=(User)session.get(User.class, Integer.va
34、lueOf(2);p.setUser(user);session.getTransaction().begin();session.persist(p); session.getTransaction().commit();session.close();4.删除联系人模块在这个模块里面,当勾选了右边的单选框之后,点击删除按钮,就可以删除你要删除的通讯人员了,也可以勾选多条,同时删除多条通讯信息,点击了删除按钮之后数据库里面就会删除这条记录,随后就跳转到个人的通讯录界面 陈轶,姚晓昆编著.Java程序设计实验指导.北京:清华大学出版社,2006,实现删除联系人模块的核心代码如下: public
35、 void deletePerson(String telephone) Session session=sessionFactory.openSession();session.getTransaction().begin(); String hql=delete from Person as p where p.telephone=+telephone+;Query query=session.createQuery(hql);query.executeUpdate();session.getTransaction().commit();session.close();public Str
36、ing deletePerson()throws ExceptionString telephone=request.getParameter(hidden);personService.delete(telephone);personList=personService.getPerson();return deleteSuccess;5.修改联系人模块在通讯录里面,勾选上要修改的通讯人员,点击修改按钮,系统就会跳转到修改页面,在这个页面里面就可以对这个人的信息进行修改了,实现的界面如下:图4.8 修改联系人界面实现修改联系人模块的核心代码如下:public List getUpdatePe
37、rson(String telephone) / TODO Auto-generated method stubSession session=sessionFactory.openSession();session.getTransaction().begin(); String hql=from Person as p where p.telephone=+telephone+;Query query=session.createQuery(hql);List listPerson=query.list();session.getTransaction().commit();session
38、.close();return listPerson;6.查询联系人模块在通讯录查找模块中,我们可以查看某个人的详细信息,如姓名,联系电话,地址等等,也可以按照归类来进行模糊查询以便快速的找到要查看的联系人,也就是无论联系人哪个信息只要包含所类别的信息,都会把该用户搜索出来,这无疑是给用户带来了很大的方便,用户不需要选择要查询的字段就可以快速的查询 辛运帏Java程序设计(第二版)清华大学出版社2006,实现的界面如下:图4.9 查看联系人信息界面该界面通过如下代码跟数据库内用户信息表连接,具体实现代码见附录public List searchPerson(String arg) List l
39、istPerson=new ArrayList();Session session=sessionFactory.openSession();session.getTransaction().begin(); if(arg.matches(0-9+)String hql=from Person as p where p.telephone=+arg+;Query query=session.createQuery(hql);listPerson=query.list();elseString hql=from Person as p where p.telephone=+arg+;Query
40、query=session.createQuery(hql);listPerson=query.list();return listPerson;第五章 软件测试与调试5.1测试概要5.1.1 测试目的此系统的测试目的在于总结测试阶段的测试以及分析测试结果,描述系统是否符合需求,主要有以下几点:1通过对测试结果的分析,得到对软件质量的评价。2分析测试的过程,产品,资源,信息,为以后制定测试计划提供参考。3评估测试执行和测试计划是否符合。4分析系统存在的缺陷,为修复和预防 bug 提供建议。5.根据测试结果修复系统bug,完善系统功能。5.1.2 定义严重 bug:出现以下缺陷,测试定义为严重
41、bug1) 系统无响应,处于死机状态,需要其他人工修复系统才可复原。2) 点击某个菜单后出现“The page cannot be displayed”或者返回异常错误。3) 进行某个操作(增加、修改、删除等)后,出现“The page cannot be displayed” 或者返回异常错误。4) 当对必填字段进行校验时,未输入必输字段,出现“The page cannot be displayed”或者返回异常错误。5) 系统定义不能重复的字段输入重复数据后,出现“The page cannot be displayed” 或者返回异常错误。5.1.3 测试对象测试对象为此电话号码查询系统,编写每一个模块后,进行单元测试,寻找此模块中的bug与不足,每一个模块完成单元测试后,对软件进行各种综合测试。5.1.4 测试工具此系统的主要测试工具Myeclipse和IE中自带的脚本测试工具。5.1.5 测试执行此次测试严格按照项目计划和测试计划执行,按时完成了测试计划规定的测试对象的测试。针对测试计划规定的测试策略,在测试执行中都有体现,在测试执行过程中,依据测试计划和测试用例,对系统进行了完整的测试。5.2 测试用例5.2.1 功能性系统实现的主要功能,包括查询,添加,修改,删除。系统实现的次要功能,包括