云笔记系统毕业论文doc.docx
《云笔记系统毕业论文doc.docx》由会员分享,可在线阅读,更多相关《云笔记系统毕业论文doc.docx(48页珍藏版)》请在冰豆网上搜索。
云笔记系统毕业论文doc
本科毕业论文
题目云笔记系统
姓名刘远龙
学号20111081214
系(院)信息科学与技术学院
专业计算机科学与技术
指导教师孙建勇
2015年3月30日
云笔记系统的设计与实现
云笔记系统的设计与实现
摘要:
随着社会教育行业的发展,使用云笔记系统以解决学生和老师全凭原始的手工记笔记效率低、易出错的缺陷已成为必然趋势,云笔记系统一般应具有用户登陆、用户注册、用户改密、用户退出登陆、笔记本管理、笔记管理、回收站管理、收藏夹管理、搜索笔记等功能。
本文以MyEclipse、MySql、JS、HTML作为后前台开发工具开发了云笔记系统,系统实现了登陆模块、笔记本模块、笔记模块、回收站模块、收藏夹模块、搜索模块6个功能模块,从实际运行效果看,系统具有操作简单、界面友善、灵活性好、系统安全性高、运行稳定等特点,提高了学生和老师管理笔记的效率。
论文简要介绍了“云笔记系统”的项目背景和意义,着重阐述了该系统开发实现过程,对系统的需求分析、方案论证、模块设计、数据库设计等各个环节进行了详尽的分析和描述。
还介绍了云笔记系统所采取的关键技术,包括Mybatis的数据库访问技术。
关键词:
云笔记系统;MyEclipse;Mybatis;MySql
Thedesignandimplementationofcloudnotessystem
Abstract:
withthedevelopmentofeducationindustry,usingcloudnotessysteminordertosolveallbystudentsandteachers,lowefficiencyoftheoriginalmanualnotes,error-pronedefectshasbecomeaninevitabletrend,cloudnotessystemshouldbeprovidedwithgeneralchangeuserlogin,userregistration,user,userloggedout,notebooks,notesmanagement,recyclebin,favoritesmanagement,search,notes,andotherfunctions.BasedonMyEclipseandMySqlasadevelopmenttooldevelopedatthefrontdeskaftercloudnotessystem,thesystemhasrealizedthelandingmodule,notebooks,notesmodule,therecyclebinmodule,favoritesmodule,searchmodule6functionmodules,lookfromactualoperationeffect,thesystemhasasimple,friendlyinterface,goodflexibility,highsystemsecurity,stableoperation,etc,toimprovetheefficiencyofstudentsandtheteachertomanagenotes.
Paperbrieflyintroducedthe"cloudnotessystem"projectbackgroundandsignificance,emphaticallyelaboratedthesystemdevelopmentprocess,thesystemdemandanalysis,schemedemonstration,moduledesign,databasedesignandsooneachlinkhascarriedonthedetailedanalysisanddescription.Mainlyintroducedthekeytechnologyofcloudnotessystemadopted,includingMybatisdatabaseaccesstechnology.
Keywords:
cloudnotessystem;MyEclipse.Mybatis;MySql
1.前言
1.1系统的开发背景
云笔记,是达内在线教育平台上的一个子项目,用于学生和老师进行在线学习时随时记录、分享、收藏笔记,以及参与笔记的社区活动。
之前一些笔记系统本身提供了简单的笔记功能,并且提供了简单的笔记分享,但是由于笔记内容随着时间的推移越来越多,但是老系统使用的架构趋于传统业务处理模型,这样导致系统没有办法应付如此大规模的笔记数据,并且笔记的分享能力有限,也无法做到笔记的随时随地可用。
但是学生对在线记录笔记的需求仍然很强烈,对笔记的要求也远远超过了简单的笔记工具的实现能力,每天建议平台都可以看到学员提出达内开发笔记平台的建议,为了满足学生的要求,我们需要研发一款适合教学和学生使用方式的笔记产品。
1.2系统目标
系统目标乃系统开发的依据及归宿。
在总体系统分析基础上从云笔记系统目标出发,确定云笔记系统的系统目标为:
(1)时间效率性:
系统运行效率高,反映速度快。
(2)可靠性:
系统能连续准确的处理业务,有较强的容错能力。
(3)可理解性:
用户容易理解和使用系统。
(4)可维护性和适应性:
系统应易于修改、易于扩充、易于维护,能够适应业务不断发展变化的需要。
(5)可用性:
目标系统功能齐全,能够完全满足业务需求。
(6)安全保密性:
保证系统的物理安全、数据存储和存取的安全与保密、数据传输的安全与保密,做好使用人员的授权管理。
2.系统分析
2.1可行性分析
可行性分析要从多个方面去研究确定项目的研发在必要性和可能性方面达到的程度,具体的方面包括经济方面的可行性、技术方面的可行性、操作方面的可行性等,调查研究要细致、准确,保证项目的研发取得成功,避免不必要的损失。
(1)经济可行性
云笔记系统可提高老师和学生记笔记和分享收藏笔记的管理水平,以解决学生和老师全凭原始的手工记笔记效率低、易出错的缺陷,保证老师和学生记笔记高速而有序地进行。
使用的开发工具不存在太大的经济负担。
在保障日常使用质量的情况下,低成本投入可以给企业带来最大的经济效益。
(2)技术可行性
本系统前台采用HTML和JS作为主要的开发工具,服务器采用MyEclipse开发平台,数据库选择Mysql数据库系统,该系统在安全性、准确性和运行速度方面都占有一定优势。
两种软件从技术上已经非常成熟,可以最简便快速的实现客房管理所需功能。
(3)操作可行性
开发出的系统直观,操作简单,适合计算机水平不高的学生使用。
系统维护简单,在系统运行出现故障时可以快速的修复,这就避免了系统故障给企业正常运转带来的困难。
2.2需求分析
2.2.1业务描述
达内云笔记是在吸收了多年的运营数据,经过精确的大数据分析指导需求模型的建立从而实现的。
云笔记通过大数据分布式存储解决方案解决了笔记信息量膨胀的问题,并且通过分布式搜索引擎服务以及数据分析推荐平台的建立提升了用户搜索分享比较的能力,系统可以有针对性的提供用户其他人分享的笔记资源扩充自己的知识行囊,并且在分享之外通过每个人的配额管理实现了非分享笔记的安全私有化,保证了学员的私人空间。
通过分布式解决方案用户空间被设计为无限大。
业务端同时提供了windows客户端,更加贴近学生的使用习惯,达到无处不学习,无处不笔记的效果。
2.2.2功能概述
notesystem云笔记系统具有的功能有:
注册、登录、修改密码、笔记本、笔记、回收站、收藏笔记本。
用户在使用云笔记时,需要先进行注册,注册成功后,系统会自动给该用户创建3个特殊的笔记本:
回收站笔记本
用来存放用户删除的笔记
收藏笔记本
用来存放用户收藏的笔记。
推送笔记本
默认的笔记本,用户可以在该笔记本下存放笔记,也可以另外创建其他的笔记本存放笔记。
图1系统业务流程图
由图1可以看出,云笔记系统的详细流程为:
用户先进行注册;
用户注册完登录后,可以修改密码;
用户登录后,可以创建笔记本;
在选择了笔记本后,用户可以创建笔记;
用户可以对笔记进行删除,删除后的笔记暂存于回收站中,对于回收站的笔记用户可以选择恢复或彻底删除;
用户可以搜索别人共享的笔记,并且收藏这些笔记,收藏后的笔记可以在收藏笔记本中看到;
2.2.3系统用例清单
编号
模块
用例定义
用例描述
重要程度
1
基础信息
注册
注册系统用户
A
登录
登录云笔记系统
A
修改密码
用户修改密码
A
退出登录
用户登出系统
A
2
笔记本
查询笔记本
查询用户所有的笔记本
A
创建笔记本
创建一个普通类型的笔记本
A
修改笔记本
修改笔记名的名称
A
删除笔记本
删除选中的笔记本
A
3
笔记
查询笔记
查看选中笔记本下所有的笔记
A
创建笔记
在选中笔记本下创建一个笔记
A
修改笔记
修改笔记的标题和内容
A
删除笔记
删除选中的笔记,将其移至回收站
A
移动笔记
将笔记移动到指定的笔记本中
A
分享笔记
分享选中的笔记
A
4
回收站
查询
查看所有删除的笔记
A
预览
预览选中的笔记
B
恢复
将选中的笔记恢复到指定的笔记本中
A
彻底删除
彻底删除选中的笔记
A
5
搜索
搜索
输入搜索条件,搜索匹配的笔记
A
预览
预览选中的笔记
A
收藏
收藏选中的笔记
A
6
收藏笔记本
查询
查看所有收藏的笔记
A
预览
预览选中的笔记
A
删除
将选中的笔记从收藏笔记本下删除,将其移至回收站
A
2.2.4系统用例图
云笔记系统的用例图如图2所示
图2
2.3系统开发工具介绍
云笔记系统以MyEclipse、tomcat作为前后台开发工具,以java代码作为主要服务器开发编程,Mysql数据库管理系统为后台数据库开发工具,前台用JS和HTML开发语言。
2.3.1MyEclipse的功能
MyEclipse,是在eclipse基础上加上自己的插件开发而成的功能强大的企业级集成开发环境,主要用于Java、JavaEE以及移动应用的开发。
MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持相当不错。
MyEclipse生成WAR包并在Tomcat下部署发布,首先是使用MyEclipse将web项目打包,右键选中项目,选择export;弹出Export的select窗体,选择JavaEE的WARfile(myeclipse)选项,然后选择工程名称和路径,单击完成就可以了。
打包完成以后我们将war放到tomcat的webapps目录下,并设置server.xml文件;然后运行tomcat,并输入项目的url就可以浏览了。
2.3.2Mybatis的数据库访问技术
iBatis是Apache组织推出的一款数据库操作框架。
2010该框架由Apache迁移到Google,变更为MyBatis,MyBatis也是对JDBC技术的一个封装,可以简化数据库访问代码。
1.Mybatis的功能:
(1)封装了获取连接、执行SQL、释放连接等过程
(2)封装了实体对象和SQL参数之间的自动映射
(3)封装了查询结果集和实体对象之间的自动映射
将SQL语句定义到XML文件,因此使用MyBatis操作数据库,只要引入框架,定义实体类,提供SQL语句即可。
2.MyBatis的体系结构
开发包,底层APIConfiguration,Mapper,MappedStatement等组件),SqlMapConfig.xml(只有一个),(主配置文件,定义数据库连接参数,框架参数,关联SQLXML文件),SqlMap.xml(可以有多个),(用于定义和存储SQL语句的XML),开发者在使用时,将数据以Map,Entity对象,int/string/date格式传入,处理完毕数据可以以Map,Entity对象,int/string/date格式传出。
3.MyBatis执行过如下:
首先加载、解析配置文件(SqlMapConfig.xml和SQL定义的SqlMap.xml),然后将SQL语句提取,封装成MappedStatement,然后接收SQL参数,利用SqlSession执行SQL操作,根据id名字调用对应的MappedStatement对象,根据规则设置SQL参数,发送到数据库执行,如果是查询最后将结果集数据映射成Map,Enity对象返回。
4.MyBatis基本使用
SqlSessionFactoryBuilder:
读取XML配置文件,构建SqlSessionFactory对象,SqlSessionFactory用于创建SqlSession对象,SqlSession:
封装了数据库增删改查方法
使用方法:
引入mybatis和驱动开发包,src添加SqlMapConfig.xml主配置,添加SqlMapper.xml定义SQL语句,根据表定义实体类,获取SqlSession触发SQL操作。
5.MyBatis的分页处理
mysql数据库:
select*fromEMPlimit从第几条开始抓,抓取数量。
oracle数据库:
select*from(selecte.*,rownumrnfromEMPe)wherern>=?
andrn
6.使用Mapper映射器
通过一个普通的接口调用SQL操作,首先编写一个EmpMapper接口,将EmpMapper.xml定义SQL的文件中,namespace指定为包名.接口名,在EmpMapper接口定义方法,方法名与XMl操作的id属性一致,方法参数与XML操作的parameterType类型一致,返回值参考resultType指定的类型,增删改可以用int或void,单行记录查询可以用resultType指定的类型,多行记录查询需要使用List,最后通过session.getMapper(EmpMapper.class)动态生成一个实现类,通过该对象触发SQL操作。
7.使用myBatis提供的工具类中的方法,从类路径或Configuration.xml文档所在位置加载资源文件。
8.使用工厂对象获取SqlSession对象
参数如果为true,表示该会话具有自动提交事务的功能,否则需程序员手动提交事务。
9.使用进行数据库访问
(1)构造返回值集合
(2)调用接口中的方法
(3)提交事务
(4)回滚事务
(5)关闭会话
2.3.3Mysql数据库
MySQL是一种开放源代码的关系型数据库管理系统,MySQL数据库系统使用最常用的数据库管理语言——结构化查询语言(SQL)进行数据库管理。
由于MySQL是开放源代码的,因此任何人都可以在GeneralPublicLicense的许可下下载并根据个性化的需要对其进行修改。
MySQL因为其速度、可靠性和适应性而备受关注。
大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。
MySQL这个名字,起源不是很明确。
一个比较有影响的说法是,基本指南和大量的库和工具带有前缀“my”已经有10年以上,而且不管怎样,MySQLAB创始人之一的MontyWidenius的女儿也叫My。
这两个到底是哪一个给出了MySQL这个名字至今依然是个迷,包括开发者在内也不知道。
MySQL的海豚标志的名字叫“sakila”,它是由MySQLAB的创始人从用户在“海豚命名”的竞赛中建议的大量的名字表中选出的。
获胜的名字是由来自非洲斯威士兰的开源软件开发者AmbroseTwebaze提供。
根据Ambrose所说,Sakila来自一种叫SiSwati的斯威士兰方言,也是在Ambrose的家乡乌干达附近的坦桑尼亚的Arusha的一个小镇的名字。
MySQL,虽然功能未必很强大,但因为它的开源、广泛传播,导致很多人都了解到这个数据库。
它的历史也富有传奇性。
3.概要设计
3.1系统功能结构
根据该系统的具体情况,将系统主要功能介绍如下:
登陆功能:
用户的登陆和注册。
笔记本功能:
笔记本的创建、删除、重命名。
笔记功能:
笔记的查询、创建、删除、修改、分享移动。
回收站功能:
笔记的恢复和彻底删除。
分享笔记功能:
用户分享的笔记可以进行搜索得到,搜索到的笔记可以进行收藏
收藏笔记功能:
对需要和喜欢的笔记进行收藏。
云笔记系统的功能模块图如图3所示:
图3
3.2数据库设计
3.2.1数据库概述
数据库名称为cloud_note,适用于Mysql数据库,用于支持notesystem云笔记系统项目。
3.2.2数据表清单
分析notesystem项目的需求文档,该项目所需要的数据表如表-1所示:
表-1数据表清单
表名
描述
cn_user
用户表,存储登陆系统的用户信息
cn_notebook_type
笔记本类型表,预置了笔记本的类型
cn_notebook
笔记本表,是针对笔记本的分类
cn_note_status
笔记状态表
cn_note_type
笔记类型表
cn_note
笔记表,存储用户记录的笔记信息
cn_share
分享笔记表,存储用户分享过的笔记
3.2.3E-R模型图
数据库的E-R图如下图4所示:
图4
由上图4可知:
通过外键连接PK可以把数据库中的用户表、笔记本表、笔记表、笔记类型表、共享表、笔记类型表等相互连接。
3.2.4数据表定义
1.用户表(cn_user)
(1)业务说明
用户在使用云笔记之前需要先进行注册,注册的信息存储到用户表中。
注意,在存储密码时需要对其进行加密。
(2)表结构
用户表的结构如表-2所示:
表-2用户表(cn_user)
字段名称
类型
备注
字段描述
cn_user_id
varchar(100)
PRIMARYKEY
NOTNULL
主键,用户ID
cn_user_name
varchar(100)
NULL
用户名
cn_user_password
varchar(100)
NULL
密码
cn_user_token
varchar(100)
NULL
令牌(用户等级)
cn_user_desc
text
说明
2笔记本类型表(cn_notebook_type)
(1)业务说明
用户创建的笔记需要存储在笔记本下,而笔记本具有不同的类型,这些类型存储在笔记本类型表中,其数据需要预置,目前预置的笔记本类型包括收藏、回收站、活动、推送、正常。
(2)表结构
笔记本类型表的结构如表-3所示:
表-3笔记本类型表(cn_notebook_type)
字段名称
类型
备注
字段描述
cn_notebook_type_id
varchar(100)
PRIMARYKEY
主键
cn_notebook_type_code
varchar(100)
NULL
笔记本类型编码
cn_notebook_type_name
varchar(500)
NULL
笔记本类型名称
cn_notebook_type_desc
text
说明
3笔记本表(cn_notebook)
(1)业务说明
用户创建的笔记需要存储在笔记本下,而笔记本存储在笔记本表中。
每个用户可以有很多不同的笔记本,分别存储不同类别的笔记。
其中,用户对于笔记也具有收藏、删除至回收站、参加活动等功能,在每个用户注册时,系统为其预置了收藏、回收站、活动类型的笔记本,用来支持这些业务。
另外,系统还为用户预置了一个默认的笔记本,用户可以直接在这个笔记本下存储笔记,当然用户也可以自己创建新的笔记本来存储笔记。
(2)表结构
笔记本表的结构如表-4所示:
表-4笔记本表(cn_notebook)
字段名称
类型
备注
字段描述
cn_notebook_id
varchar(100)
PRIMARYKEY
NOTNULL
笔记本ID
cn_user_id
varchar(100)
FORIEGNKEY
用户ID
cn_notebook_type_id
varchar(100)
FORIEGNKEY
笔记本类型ID
cn_notebook_name
varchar(500)
NULL
笔记本名
cn_notebook_desc
text
笔记本说明
cn_notebook_createtime
timestamp
NOTNULL
创建日期
4.笔记状态表(cn_note_status)
(1)业务说明
用来存储笔记的状态,此表作为备用表,目前并没有使用。
(2)表结构
笔记状态表的结构如表-5所示:
表-5笔记状态表(cn_note_status)
字段名称
类型
备注
字段描述
cn_note_status_id
varchar(100)
PRIMARYKEY
NOTNULL
笔记状态ID
cn_note_status_code
varchar(100)
NULL
笔记状态编码
cn_note_status_name
varchar(500)
NULL
笔记状态名字
5.笔记类型表(cn_note_type)
(1)业务说明
用来存储笔记的类型,此表作为备用表,目前并没有使用。
(2)表结构
笔记类型表的结构如表-6所示:
表-6笔记类型表(cn_note_type)
字段名称
类型
备注
字段描述
cn_note_type_id
varchar(100)
PRIMARYKEY
NOTNULL
笔记类型ID
cn_note_type_code
varchar(100)
NULL
笔记类型编码
cn_note_type_name
varchar(500)
NULL
笔记类型名称
cn_note_type_desc
text
说明
6.笔记表(cn_note)
(1)业务说明
用来存储用户创建的笔记,在保存时需要存储用户的ID和当前笔记所在的笔记本的ID。
对于笔记状态和笔记类型字段,是备用字段,暂时并未启用。
(2)表结构
笔记表的结构如表-7所示:
表-7笔记表(cn_note)
字段名称
类型
备注
字段描述
cn_note_id
varchar(100)
PRIMARYKEY
NOTNULL
笔记ID
cn_no