数据库通讯录系统实验报告.docx
- 文档编号:11749073
- 上传时间:2023-03-31
- 格式:DOCX
- 页数:19
- 大小:331.41KB
数据库通讯录系统实验报告.docx
《数据库通讯录系统实验报告.docx》由会员分享,可在线阅读,更多相关《数据库通讯录系统实验报告.docx(19页珍藏版)》请在冰豆网上搜索。
数据库通讯录系统实验报告
摘要
互联网的出现与迅速发展,信息技术步伐的加快,使得个人面临着众多的挑战与竞争,在竞争过程中,对信息的掌握程度、信息获取是否及时、信息能否得到充分的利用、对信息的反应是否敏感准确,也越来越成为衡量一个人竞争能力的重要因素。
随着中国加入WTO,每个人在努力提高自身的竞争力。
通过用java编写通讯录管理系统,利用软件工程原理,数据库原理采用面向对象的编程方法,其开发主要包括后台数据库的建立和维护以及前端应程序的开发两个方面,实现了通讯录中联系人的记录。
本系统介绍了一个简单实用的个人通讯录管理系统java工程,详细描述了本人在编程时候的编程思想,数据库的建立和在MyEclipse8.0中调试运行的步骤,个人通讯录管理系统含有添加、删除、查找等基本功能,同时也添加了一些有趣的小功能——支持背景图片的更换。
在程序中完成了与数据库的通信,并同样可以对数据库进行添加、查找、删除等功能。
关键词:
通讯录管理系统;MicrosoftSQLServer2005数据库;Java编码设计;开发
第1章系统定义
1.1设计目的
本课程设计是数据库及java语言学习中很重要的实践性环节之一,是在学习完数据库课程后进行的一次全面的综合练习,巩固和加深我们对数据库的基本知识的理解和掌握,掌握数据库的建立,基本技能,利用java语言进行基本的软件设计,掌握书写程序设计说明文档的能力,提高运用java语言解决实际问题的能力。
1.2设计内容
在设计一个完整的系统中,我从系统的管理员登录界面开始做,另外依据相关要求,对系统增加了数据库支持(MicrosoftSQLServer2005做的数据库),还有对数据库里的数据进行用户登录,增加、删除、显示所有记录、查询记录、退出。
另外为了界面美观,增加了系统主界面背景界面图片的支持。
为了保证数据库的安全,在系统中设立了管理员权限,即只有正确的用户名,密码才可以进入该系统。
1.3数据库及Java简介
SQLServer2005是一个全面的数据库平台,SQLServer2005数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。
SQLServer2005针对行业和分析应用程序提供了一种更安全可靠和更高效的数据平台。
SQLServer的最新版本不仅是迄今为止SQLServer的最大发行版本,而且是最为可靠安全的版本。
Eclipse是一个开放源代码的、基于Java的可扩展开发平台。
就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。
幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentKit,JDK)。
第2章需求分析
2.1系统调研
随着网络与信息技术的发展,很多陌生人之间都有了或多或少的联系。
如何更好地管理这些信息是没跟人必须面临的问题,特别是那些很久没有联系的朋友,再次见面无法马上想起关于这个人的记忆,造成一些不必要的尴尬。
基于上述种种原因,开发一套通讯录管理系统很重要,我们结合这次课程设计开发以下的通讯录管理系统方案。
编写目的本系统主要是为了更好的管理个人的通讯录,给每个人提供一个井然有序的管理平台,防止手工管理混乱,造成不必要的麻烦。
功能需求通过对自己及朋友的通讯录的询问以及了解,一个完整的通讯录管理系统应该包括:
数据集模块,登录窗体模块,系统管理模块,主窗体模块,通讯录数据管理模块,信息管理模块,登录信息
查询模块。
本系统主要实现我们信息的管理,包括我们平时朋友信息的添加、修改、查询和删除,及一些辅助项目的管理,如登录系统用户管理。
2.2系统的综合要求
设计一个通讯录管理软件,要求如下:
添加、删除记录、显示所有记录、查询记录、修改、退出。
通讯录记录信息包括:
姓名,性别,年龄,电话,地址等。
(1)通讯录的每一条信息包括姓名,性别,年龄,电话,地址
(2)添加功能:
可以一次完成若干条信息的添加;(添加时必须按要求填写,电话必须是数字,性别必须是输入男,女)
(3)显示功能:
完成全部通讯录信息的显示
(4)查找功能:
完成按姓名,性别,年龄,电话,地址查找通讯信息;
(5)删除功能:
完成按通讯录中的信息删除通讯信息;
(6)修改:
根据表格中的信息进行修改,可以修改姓名,性别,年龄,电话,地址
(7)应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观;
2.3系统E-R图
1.用户E-R实体图
用户的实体具有用户ID、密码、姓名、性别、电话、E-mail、用户权限7个属性,ER图如图所示。
用户E-R实体图
2.学校E-R实体图
学校的实体具有学校名称、学校所在地区、在校学生人数3个属性,可用E-R图表示,如图所示。
学校E-R实体图
3.通讯录E-R实体图
通讯录的实体具有联系人姓名、地址、联系电话、性别、年龄、,E-R图如图所示。
通讯录E-R实体图
4.系统的功能
添加:
可以添加通讯录记录,依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱后,会提示是否继续添加。
显示:
可以以表格形式输出所有通讯录里的记录
删除:
输入欲删除的那个人的名字后,会自动删除他(她)的记录内容
查询:
可以选择用姓名、电话、地址三种方式查询
修改:
输入欲修改的那个人的名字后,再依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱即可完成修改
保存:
,输入文件名(带后缀名)后,即可将通讯录信息保存到文件
第3章系统设计
3.1逻辑结构设计
1.在数据库中创建表
--createdatabaset;
uset;
--用户表
createtabletel_book(t_idintprimarykeyidentity(1,1),t_namevarchar(50),
t_sexvarchar(20),t_agevarchar(4),t_phonevarchar(20),t_addressvarchar(200))--每插入一条语句时这个字段的值增1,
select*fromtel_book;
insertintotel_book(t_name,t_sex,t_age)values('ni','测试','55')select@@identity;
--droptabletel_book;
select*fromtel_book;
--管理员表
uset;
createtableadmin(t_idintprimarykeyidentity(1,1),t_accountnvarchar(50),t_passwordnvarchar(50));
select*fromadmin;
insertintoadmin(t_account,t_password)values('lyx','123')select@@identity;
droptableadmin;
管理员表如图所示
用户表如下
3.3子模块划分及功能概述
功能描述:
添加、删除记录、显示所有记录、查询记录、修改、退出。
通讯录记录信息包括:
姓名,性别,年龄,电话,地址等。
(1)通讯录的每一条信息包括姓名,性别,年龄,电话,地址
(2)添加功能:
可以一次完成若干条信息的添加;(添加时必须按要求填写,电话必须是数字,性别必须是输入男,女)
(3)显示功能:
完成全部通讯录信息的显示
(4)查找功能:
完成按姓名,性别,年龄,电话,地址查找通讯信息;
(5)删除功能:
完成按通讯录中的信息删除通讯信息;
(6)修改:
根据表格中的信息进行修改,可以修改姓名,性别,年龄,电话,地址通讯信息;
第4章详细设计
4.1开发平台及工具
1.开发工具MyEclipseJava8.0
DBMS:
MicrosoftSQLServer2005
SQLServer2005是一个全面的数据库平台,SQLServer2005数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。
SQLServer2005针对行业和分析应用程序提供了一种更安全可靠和更高效的数据平台。
SQLServer的最新版本不仅是迄今为止SQLServer的最大发行版本,而且是最为可靠安全的版本。
Eclipse是一个开放源代码的、基于Java的可扩展开发平台。
就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。
幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentKit,JDK)
数据库系统的电子通讯录用户登陆界面如下
通讯录的界面
添加通讯录界面,显示添加成功
删除界面,选择要删除的记录,点击删除按钮,即可删除所选记录
修改界面,选择要修改的记录,点击修改的选项,修改内容,则即可修改成功
按照姓名,性别,年龄,地址,电话等进行查询
4.2触发器及存储设置
触发器可以查询其他表,而且可以包含复杂的SQL语句。
它们主要用于强制服从复杂的业务规则或要求。
例如:
您可以根据客户当前的帐户状态,控制是否允许插入新订单。
触发器也可用于强制引用完整性,以便在多个表中添加、更新或删除行时,保留在这些表之间所定义的关系。
然而,强制引用完整性的最好方法是在相关表中定义主键和外键约束。
如果使用数据库关系图,则可以在表之间创建关系以自动创建外键约束。
SQLServer包括三种常规类型的触发器:
DML触发器、DDL触发器和登录触发器。
DML触发器
当数据库中表中的数据发生变化时,包括insert,update,delete任意操作,如果我们对该表写了对应的DML触发器,那么该触发器自动执行。
DML触发器的主要作用在于强制执行业务规则,以及扩展SqlServer约束,默认值等。
因为我们知道约束只能约束同一个表中的数据,而触发器中则可以执行任意Sql命令。
DDL触发器
它是SqlServer2005新增的触发器,主要用于审核与规范对数据库中表,触发器,视图等结构上的操作。
比如在修改表,修改列,新增表,新增列等。
它在数据库结构发生变化时执行,我们主要用它来记录数据库的修改过程,以及限制程序员对数据库的修改,比如不允许删除某些指定表等。
登录触发器
登录触发器将为响应LOGON事件而激发存储过程。
与SQLServer实例建立用户会话时将引发此事件。
登录触发器将在登录的身份验证阶段完成之后且用户会话实际建立之前激发。
因此,来自触发器内部且通常将到达用户的所有消息(例如错误消息和来自PRINT语句的消息)会传送到SQLServer错误日志。
如果身份验证失败,将不激发登录触发器。
4.3创建SQL语法
DELIMITER|
CREATETRIGGER`
<[BEFORE|AFTER]><[INSERT|UPDATE|DELETE]>
ON[dbo]
FOREACHROW
BEGIN
--dosomething
END|
insert触发器示例
createtriggertri_insert
onstudent
forinsert
as
declare@student_idchar(10)
select@student_id=s.student_idfrom
studentsinnerjoininsertedi
ons.student_id=i.student_id
if@student_id='0000000001'
begin
raiserror('不能插入1的学号!
',16,8)
rollbacktran
end
go
update触发器示例
createtriggertri_update
onstudent
forupdate
as
ifupdate(student_id)
begin
raiserror('学号不能修改!
',16,8)
rollbacktran
end
go
delete触发器示例
createtriggertri_delete
onstudent
fordelete
as
declare@student_idvarchar(10)
select@student_id=student_idfromdeleted
if@student_id='admin'
begin
raiserror('错误',16,8)
rollbacktran
end
4.4编码设计
1.DB-util.java文件做的就是java与数据库的链接。
主要的编码语句为:
publicclassDB_util{
publicstaticfinalStringURL="jdbc:
jtds:
sqlserver:
//localhost:
1433/t";
Connectioncon;
Stringsql;
ResultSetrs;
PreparedStatementpre=null;
List
publicDB_util(){
try{
Connect();//单例模式,连接数据库
}catch(Exceptione){
//TODO自动生成catch块
e.printStackTrace();
}
}
/*连接到数据库*/
publicConnectionConnect()throwsException{
try{
/*注册并加载驱动*/
Class.forName("net.sourceforge.jtds.jdbc.Driver");
/*获得连接对象*/
con=DriverManager.getConnection(URL,"sa","123");
System.out.println("已连接数据库!
");
}catch(ClassNotFoundExceptione){
System.out.println("加载驱动失败!
");
}catch(SQLExceptione){
System.out.println("未连接到数据库!
");
e.printStackTrace();
}
returncon;
}
/*按条件查询*/
privatevoidqueryBy(Stringst1,Stringst2)throwsException{
sql="select*fromtel_bookwhere"+st2+"?
";//t_name
/*创建预编译语句对象以便编译SQL语句*/
pre=con.prepareStatement(sql);
pre.setString(1,st1);
/*执行SQL接收返回的结集*/
rs=pre.executeQuery();
userList=newArrayList
this.break_out();
}
/*遍历并取出结果集里的数据*/
privatevoidbreak_out()throwsSQLException{
while(rs.next()){
Useruser=newUser(rs.getString
(2),rs.getString(3),rs
.getString(4),rs.getString(5),rs.getString(6));
userList.add(user);
}
}
4.5界面设计
数据库系统的电子通讯录用户登陆界面如下
通讯录的界面
添加通讯录界面,显示添加成功
删除界面,选择要删除的记录,点击删除按钮,即可删除所选记录
修改界面,选择要修改的记录,点击修改的选项,修改内容,则即可修改成功
按照姓名,性别,年龄,地址,电话等进行查询
第5章课程设计总结
到此已完成毕业论文选题系统的开发。
在本次开发过程中,遇到了许多方面的困难,包括数据库设计方面、与现在工作冲突方面等,同时,在这次开发过程中让我也受到了一些启发,此系统还存在一些缺陷,望同学、老师多多指教。
希望通过以后的学习,自己能够对本系统在安全性方面进行进一步的完善。
在这次课程设计初步设想是比较好的,但由于个人原因以及能力问题通讯录中的一些预期效果还没有实现比如说对校外人员和校内人员进行分组、排列以及对登陆者进行权限限制,有待进一步加强并完善。
两个星期的时间非常快就过去了,这两个星期不敢说自己有多大的进步,获得了多少知识,但起码是了解了项目开发的部分过程。
虽说上过数据库上过管理信息系统等相关的课程,但是没有亲身经历过相关的设计工作细节。
这次实习证实提供了一个很好的机会。
通过这次课程设计发现这其中需要的很多知识我们没有接触过,去亲身体验了一回系统的设计开发过程。
很多东西书上写的很清楚,貌似看着也很简单,思路非常清晰。
但真正需要自己想办法去设计一个系统的时候才发现其中的难度。
经常做到后面突然就发现自己一开始的设计有问题,然后又回去翻工,在各种反复中不断完善自己的想法。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 通讯录 系统 实验 报告