SSM 电影后台管理项目
概述
通过对数据库中一张表的CRUD,将相应的操作结果渲染到页面上。
笔者通过这篇博客还原了项目(当然有一些隐藏的坑),然后将该项目上传到了Github、Gitee,在末尾会附上有源码地址,读者可参考。
该项目使用的是Spring+SpringMVC+Mybaits(SSM)后端架构,POJO—Dao—Service—Controller的结构,简单易懂。
- POJO:实体类层,封装的是数据中的设计的表对应的元素。
- Dao:Mapper的接口以及Mapper.xml文件,实现sql操作。
- Service:服务实现层,调用Dao层方法进行实现。
- Controller:控制层,调用一个个Service层的实现方法完成一个个具体功能。
项目使用了前端JS检错和后端JSR303参数校验,能把绝大部分的问题都包括其中。类似于输入信息错误以及输入信息不合法,违规跳转等,也加入了过滤器,使用户可以有更好的体验。
电影后台管理系统的管理员在工作中需要查阅和管理如下信息:后台管理的管理员、电影信息、新闻信息以及类型信息。如下图:
准备
- 环境:
- IDEA
- MySQL 5.1.47
- Tomcat 9
- Maven 3.6
- 要求:
- 掌握MySQL数据库
- 掌握Spring
- 掌握MyBatis
- 掌握SpringMVC
- 掌握简单的前端知识
实现
1.前置准备
1.1 创建数据库film
CREATE DATABASE `film`; |
1.2 导入需要的依赖
<dependencies> |
1.3 Maven资源过滤以及JDK设置
<build> |
1.4 创建好项目架构
先创建好com.zc.xxx路径下的文件;resources资源文件夹下的文件可以先不创建,下面会逐步创建。
2.Mybaits
2.1 数据库配置文件
数据库配置文件 db.properties
com.mysql.jdbc.Driver = |
2.2 关联数据库
IDEA关联数据库,用idea登陆上自己的数据库
2.3 编写MyBatis的核心配置文件
MyBatis的核心配置文件:mybatis-config.xml
|
3.Spring
配置Spring整合MyBatis,我们这里数据源使用c3p0连接池;
3.1 Spring整合Dao层
配置文件名:spring-dao.xml
|
3.2 Spring整合Service层
配置文件名:spring-service.xml
|
如果这个文件出错,是因为Spring的几个配置文件没有整合在一起,有两个方法:
一、手动关联
File—Project Structure中:
如果三个不在同一个里面,点 “+” 添加文件。
二、语句引用
在配置文件applicationContext.xml
中加入引用语句:
|
这样这三个xml文件就关联起来了。
4.SpringMVC层
4.1 web.xml
|
4.2 springmvc.xml
|
4.3 applicationContext.xml
|
以上SSM架构,搭建完成
5.POJO层
因为设计的数据库中有4个表,分别是:user
、type
、news
、film
所以对应创建四个实体类
public class user { |
public class types { |
news实体类中使用了JSR303检验机制,不加注解也是可以的
public class news { |
public class film { |
在这些实体类中,我使用的是直接添加构造方法;如果觉得麻烦,可以使用Lombok插件
6.Dao层
每一个Dao类都分别对应着一个实体类的操作
Mapper接口+Mapper.xml
6.1 UserMapper
public interface UserMapper { |
|
6.2 TypesMapper
public interface TypesMapper { |
6.3 NewsMapper
public interface NewsMapper { |
6.4 FilmMapper
public interface FilmMapper { |
7.Service层
每个Dao层也会有一个对应的Service实现层
7.1 UserService
public interface UserService { |
|
7.2 TypesService
public interface TypesService { |
7.3 NewsService
public interface NewsService { |
7.4 FilmService
public interface FilmService { |
8.Controller层
Controller层的代码都是实现具体功能的代码
因为代码过长,在此只举例User、types的Controller层代码
|
|
9.过滤器、拦截器
9.1 过滤器
public class LoginFilter implements Filter { |
9.2 拦截器
public class LoginInterceptor implements HandlerInterceptor { |
在ApplicationContext.xml中配置:
<mvc:interceptors> |
10.项目展示
该项目地址为: