模块划分
- 用户模块:登录注册修改密码,退出
- 笔记本模块:创建 删除 更新 查看
- 笔记模块:创建 删除 更新 查看 转移
- 分享、收藏模块:分享 收藏 查看 搜索
- 回收模块:先看 彻底删除 恢复
- 活动模块:查看活动 参加活动
设计思想
MVC设计思想
表现层:HTML+CSS+JQuery+ajax
控制层:springmvc
业务层:service组件
持久层:Dao组件技术架构
1.开发环境:WindowsXP+Tomcat+mysql
2.采用技术:java+jQuery+ajax+springmvc+IOC+AOP+mybatis
java:开发核心技术
jQuery:简化前端JavaScript($对象和API)
ajax:局部处理页面,提升用户体验度
spring(IOC/AOP):管理相关组件
IOC:负责管理Controller/service/dao,维护他们之间的关系
AOP:面向切面编程,不改变原有的代码,给系统增加新的功能
mybatis:对数据库进行操作整体规范
- 所有的请求ajax方式访问
- 前端页面采用HTML
- 对所有的请求结果进行json响应{status: ,”msg”: ,”data”:}
数据库构建
mysql
mysql -uroot -t //启动数据库命令行
show databases;//查看有哪些数据库
create database cloud_note; //创建数据库
drop database cloud_note; //删除数据库
use 数据库名; //连接数据库
show tables; //查看有哪些表
source /…/../**.sql//导入SQL文件
E-R 实体–关系模型图
由业务分析产生,作为实体类和数据库设计的依据。
关联关系
一对多关系
多对多关系
绘图工具
Microsoft Office vision
Mysql workbench
项目流程
cmmi
阶段产品
项目总计划
需求阶段
需求规格说明书 用户需求
设计阶段
概要设计说明书
详细设计说明书
编码阶段
需求源码
单元测试文档
测试阶段
测试案例
测试报告
人员结构
项目经理
QA CM dev test 测试经理
SSM框架 springMVC+spring+Mybatis
spring-mybatis
创建云笔记的环境
导包
添加配置文件
- conf/spring-mvc.xml
- conf/spring-mybatis.xml
- mapper/SQL文件
- web.xml
划分包结构
- io.codegit.cloud_note.dao
- io.codegit.cloud_note.service
- io.codegit.cloud_note.controller
- io.codegit.cloud_note.entity
- io.codegit.cloud_note.util
将html目录下的内容拷贝到webApp下
登录功能
发送ajax请求
- 事件绑定
- 获取参数
- $.ajax发送请求
服务器处理
请求–>DispatcherServlet
–>HandlerMapping
–>Controller.execute()
–>Service–>Dao–>cn_user
–>返回数据
ajax回调处理
- 成功:edit.html
- 失败:提示信息,重新操作
注册功能
发送ajax请求
- 发送事件:注册按钮的单击
- 获取参数:用户名 昵称 密码
- 请求地址:/user/add.do
服务器处理
请求->DispatchServlet
–>HandlerMapping
–>Controller.execute
–>Service(addUser)
//检查用户
findByName(name)
user!=null
result
//添加用户
createId()
//处理password
user.set()
save(user)
//设置result
–>Dao–cn_user(insert)
1.UserDao(save(User))
2.UserMapper.xml(insert)
–>json响应
ajax回调处理
success:
注册成功
注册失败
error(异常):
提示:注册失败
- 成功:edit.html
- 失败:提示信息,重新登录
UUID
是一个生成字符串的算法
用于生成数据库的主键
生成主键有两种方式:
在应用服务器端生成主键
在数据库端生成主键
MD5:摘要算法,加密处理
- 最初用于文本比较
- 将任意长度的字节处理成等长的结果
- 不可逆
Base64
将自己转换成字符串输出
构成
- (a-z A-Z)
- (0-9)
- (+ =)
更新数据库密码:
update cn_user set cn_user_password=’4QrcOUm6Wau+VuBX8g+IPg==’
笔记本显示功能
发送ajax请求
- 发送事件:进入到edit.html发送请求
- 请求参数:userId
- 请求地址:/book/loadBooks.do
服务器处理
/book/loadBookds.do
–>LoadBooksController.execute
测试:
http:localhost:8080/cloud_note/book/loadBooks.do?userId=ecd976d53a88484eaf911049241073ad
–>BookService.LoadUserBooks
ecd976d53a88484eaf911049241073ad - 1.BookService接口loadUserBooks
NoteResult<List<Book>> loadUserBooks (userId)
- 2.实现类中调用dao.findByUserId
调用dao.findByUserId(userId)
3.实现类中构建Result结果
构建Result结果
–>BookDao.findByUserId
BookDao接口定义findByUserId
- 配置BookMapper.xml
–>cn_userbook(查询)
–>JSON响应ajax回调处理
success:
解析JSON数据,循环生成笔记本列表项(li) <ul> <li class="online"> <a class='checked'> <i class="fa fa-book" title="online" rel="tooltip-bottom"> </i> bookName</a></li> error: alter("笔记本加载失败");