2020-11-24
一个关于ssm项目的简单实战练习
项目主要是参考的b站上的攀登网的水果商城的项目,前端资源都是直接引用的他提供的资源,后端使用的是springmvc+spring+mybatis+mysql,后端使用IDEA进行开发,数据库使用navicat,
主要是框架的配置 ,mybatis文件夹中的sqlMapConfig.xml进行mybatis的配置,注意其中的“别名”;
spring文件夹中有4个文件,applicationContext-dao.xml,applicationContext-service.xml,applicationContext-transaction.xml,springmvc.xml,主要进行一些整合操作,springmvc中还定义了jsp页面的前缀和后缀路径,这样在controller层可以更加方便进行页面跳转的配置等,另外db.properties,log4j.properties分别定义数据库和日志相关的一些量
WEB-INF中的web.xml的配置主要进行一些filter的配置。
项目还是和ssh项目类似,只不过多了controller层,以及mapper文件夹中,mapper接口,以及mapper.xml进行数据库与实体的一些映射关系,以及sql语句相关的定义
controller层主要是处理前端的不同请求,对应前端不同的请求,去到对应的方法中执行其中的代码,调用该controller类中注入的service,调用service的方法进行后续操作,
需要注意的是controller类需要在类的最上方进行注释@Controller,@RequestMapper("/user");以及其中需要用到的service的注入,例如需要用到userService,则 UserService userService(进行注入);
具体如下:
service层主要是接口,serviceImpl层是业务实现层
需要注意的是serviceImpl类上方注释@Service,表明这是一个service,也需要在其中注入需要用到的mapper类,UserMapper userMapper,调用mapper的方法,serviceImpl 需要 implements service,注入的mapper对象,需要在实现的方法中返回这个mapper对象,具体如下:
mapper层 主要是mapper接口,以及mapper.xml文件,mapper.xml文件进行sql语句相关的定义,以及查询返回的resultMap定义等,
需要注意的是数据库中实体类的对应关系,比如item商品中有很多评论,那它的resultMap中就有一个comment的list,有的地方可能会有association,select后面是对应mapper中的方法,将商品的id传过去,在comment表中找item_id = id的comment返回;
po层,主要是定义的各个实体类,注意实体类之间的关系
item中有comment的一个列表,
comment又有它对应的user对象,表明其由哪个对象发布
最后就是util中的一些实用类的汇总,这个主要是放一些实用类,这个项目中主要用到的实用类如下:
项目其实只要把基本框架搭好了,后面其实主要是设计逻辑相关的东西,分为了一个前端系统和一个后台的管理系统;
前端系统具体界面如下:
1 前端首页:
2.商品的详情页:
3 .个人中心页:
4.我的购物车页面:
后台管理系统页面主要如下:
其实整个项目的架构是很清晰的,但是实际开发起来还是会出现一些问题,比如他提供的代码有id属性,但是id是自增的,在我实现这部分功能时只能在mapper.xml中把id
去掉才不报500;
此外该项目目前还是很粗糙的,进一步的优化有如下:
1.密码存入数据库前的加密
2.登录注册等一些部分的提示信息的展示,比如密码错误等,这些目前都是没有的