注:结构:①Controller(与前端交互) ② Service (业务) ③Mapper(数据库)
一.用户
1.在数据库中建用户表(存放用户的信息(用户名和密码))
2.用户登陆操作
(1)前后端交互
① 接口定义:url:User/login
②参数:前端向后端传数据 (userName, password)
③ 返回结果是 Boolean
(2)后端:
①验证前端传过来的密码是否在数据库中(1.判断userName和password是否为空(注意:传过来的userName和password和前端写的字符是一样的),若为空则就返回false
if (!StringUtils.hasLength(userName) || !StringUtils.hasLength(password)) { log.error("传来的数据为空"); return false; }
②判断前端传过来的用是否在数据库(从数据库中查找用户信息
)中 若没有就返回空
UserInfo userInfo=userInfoService.selectUserInfoByName(userName);
if (userInfo==null||userInfo.getId()<=0){
log.info("没有给用户的信息");
return false;
}
③密码也正确就创建对话
if(password.equals(userInfo.getPassword())){ //密码正确 userInfo.setPassword(""); session.setAttribute(Constant.SESSION_USER_KEY,userInfo); return true; }
)
二.图书
1.在数据库中创建图书信息表
2.(1)获取图书列表页(完成翻页功能:
①可以由前端完成,也能是后端(推荐:因为请求了多次)完成
②确定当前页currentPage和每页的数据条数pageSize
③在数据库中查找数据时确定开始记录数offSet=(currentPage-1)*pageSize和限制条数limit=pageSize
④最后把返回的数据包装成PageResult(total,record,PageRequest)):
1.前后端交互
①接口定义url:book/getBookListByPage
②从前端获取当前页和每页数据条数(这个可以封装成PageRequest类
)
③返回参数 Result
2.后端
①判断从前端拿到的数据是否小于0
if(pageRequest.getPageSize()<0||pageRequest.getCurrentPage()<1){ return null; }
②从数据库中拿数据
③把数据返回到页面上:返回的结果有总条数+记录数据
Result是返回的最后结果,PageResult是返回的数据
(2)添加图书:
1. 前后端交互:
①接口定义url:book/addBook
②参数:BookInfo
③返回:告述前端是否添加成功
1)Boolean true添加成功 false添加失败
2)String “”添加成功 不为空添加失败
3)对象 不为空返回数据添加成功
2.后端
①这里用的返回参数是String 因为String传到前端的数据是文本所以 要修改类型
②接收前端传过来的数据bookInfo
③检验传到后端的数据
④插入数据库中
⑤添加成功 返回“”
(3)通过bookId来查找数据
1.前后端交互:
①接口定义url:book/querySelectBookInfo
②参数bookId
③返回对象
2.后端
①直接根据bookId到数据库中查找
前后端写的bookId要相同
(4)修改图书
1.前后端交互:
①接口定义:book/updateBook
②参数:bookInfo
③返回:String类型 若返回“”则修改成功 否则返回错误信息
2.后端
①根据前端传的书的信息 来修改图书的信息
(5)分批删除图书
1.前后端接口:
①接口定义url:book/batchDeleteBook
②参数:List<Integer > ids (因为传输前端的事集合类型,所以用@RequestParam)
③返回:String类型 若返回“”则修改成功 否则返回错误信息
2.后端:
①根据前端传到后端的 ids来批量删除(就是把status改为0)
(6)登陆拦截(每个用户登上后创建一个对话(这里是创建了一个常量类Constant 表示常量,把用户的信息放到常量里)
)
①创建一个登陆拦截类,preHandle是执行方法前处理 向前端请求获取会话,如果获取到登陆的用户信息就返回true放行成功 否则就设置状态401
②注册配置拦截器(让通过web拦截)
(7)结果统一返回
①设置一个统一返回类Result 分别是成功 未登陆 和各种方法操作失败
②统一返回 (1.请求返回类型为Result就不需要在做处理了 2.请求返回类型为字符串时要进行转换)