千家信息网

SSM框架下各层的示例分析

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章给大家分享的是有关SSM框架下各层的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。SSM框架SSM框架是spring MVC ,Spring和Mybatis
千家信息网最后更新 2026年10月31日SSM框架下各层的示例分析

这篇文章给大家分享的是有关SSM框架下各层的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

SSM框架

SSM框架是spring MVC ,Spring和Mybatis框架的整合,是标准的MVC模式,将整个系统划分为表现层(web),controller层,service层,dao层四层,使用spring MVC负责请求的转发和视图管理。

Spring实现业务对象管理,Mybatis作为数据对象的持久化引擎。

  • 表现层(web):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。

  • 业务逻辑层(service):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。

  • 数据访问层(dao):该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找等。

DataBase ===> Entity ===> Mapper.xml ===> Dao.Java ===> Service.java ===> Controller.java ===> html css js(thymeleaf)

各层解释说明

用IDEA创建一个maven项目结构如左图所示,在该项目中,有五个包,分别是controller、dao、entity、service和serviceimpl:

层描述
实体层数据库在项目中的类,主要用于定义与数据库对象应的属性,提供get/set方法,tostring方法,有参无参构造函数。
持久层与数据库交互,dao层首先会创建dao接口,接着就可以在配置文件中定义该接口的实现类;接着就可以在模块中调用dao的接口进行数据业务的处理,而不用关注此接口的具体实现类是哪一个类,dao层的数据源和数据库连接的参数都是在配置文件中进行配置的。
业务层控制业务,业务模块的逻辑应用设计,和dao层一样都是先设计接口,再创建要实现的类,然后在配置文件中进行配置其实现的关联。接下来就可以在service层调用接口进行业务逻辑应用的处理。
实现层实现service接口的所有方法,整合service和dao
控制层controller层主要调用Service层里面的接口控制具体的业务流程,控制的配置也要在配置文件中进行。Controller和Service的区别是:Controller负责具体的业务模块流程的控制;Service层负责业务模块的逻辑应用设计

entity层(model层)

实体层用于存放我们的实体类,与数据库中的属性值基本保持一致,实现set和get的方法。

1.导入lombok小辣椒驱动依赖,用来生成get/set方法依赖:

package com.dvms.entity;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;import lombok.ToString;import lombok.experimental.Accessors;import java.util.Date;@Data@ToString@AllArgsConstructor@NoArgsConstructor@Accessors(chain = true) //链式调用public class Emp {    private String id;    private String name;    private Double salary;    private Integer age;    private Date bir;}

2.传统方式

package com.umf.entity;import java.io.Serializable;public class UpdataSettingEntity implements Serializable {        private static final long serialVersionUID = 1L;        //        private Integer id = 1;        //        private int updataflag;        /**         * 设置:         */        public void setId(Integer id) {                this.id = id;        }        /**         * 获取:         */        public Integer getId() {                return id;        }        /**         * 设置:         */        public void setUpdataflag(int updataflag) {                this.updataflag = updataflag;        }        /**         * 获取:         */        public int getUpdataflag() {                return updataflag;        }}

dao层(mapper层)

dao层(接口类)对数据库进行数据持久化操作,他的方法语句是直接针对数据库操作的,主要实现一些增删改查操作,在Mybatis中方法主要与与xxxDao(Mapper).xml内相互一一映射。

Mybatis可以用.xml进行数据操作,也可以在dao层用注解的方式,也可以采取xml和dao层接口组合使用的方法(常用)。

package com.dvms.dao;import com.dvms.entity.User;import org.apache.ibatis.annotations.Param;import org.springframework.stereotype.Repository;import java.util.List;@Repositorypublic interface UserDao {    //登录    User login(@Param("username") String username, @Param("password") String password);// 在mybatis中传递多个参数要做参数的绑定    //新增用户(注册)    void save(User user);    //查询所有用户    List findAlluser();    //删除用户    void delete(String id);    //修改用户信息(先查再改)    User update(String id);    void add(User user);}

xxxDao(Mapper).xml:

关键: < mapper namespace="com.dvms.dao.UserDao">

前提:基本数据库语法

            insert into user (id,username,password,sex,phone,email,role) values (#{id},#{username},#{password},#{sex},#{phone},#{email},#{role})                        delete from user where id=#{id}                            update user set username=#{username},password=#{password},sex=#{sex},phone=#{phone},email=#{email},role=#{role} where id=#{id}    

在dao层用注解的方式:

public interface StudentDao {        @Select("select * from student where stu_id=#{stuId}")    public Student queryById(int stuId);}

service层

service层(接口类)为controller层的类提供接口进行调用,一般就是自己写的方法封装起来,具体实现在serviceImpl中。

service层是建立在dao层之上的,建立了dao层后才可以建立service层,而service层又是在controller层之下的,因而service层应该既调用dao层的接口,又要提供接口给Controller层的类来进行调用,它刚好处于一个中间层的位置。每个模型都有一个service接口,每个接口分别封装各自的业务处理方法。

package com.dvms.service;import com.dvms.entity.User;import java.util.List;public interface UserService {    //新增用户    void save(User user);    //登录    User login(String username, String password);    //查询所有用户    List findAlluser();    //删除用户    void delete(String id);    //修改用户信息    User update(String id);    void add(User user);}

servicedmpl(实现service层,整合service和dao)(导入dao层)(接口实现类)

package com.dvms.service.Impl;import com.dvms.dao.UserDao;import com.dvms.entity.User;import com.dvms.service.UserService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import java.util.List;import java.util.UUID;@Servicepublic class UserServiceImpl implements UserService {    @Autowired    private UserDao userDao;    @Override    public void save(User user) {        user.setId(UUID.randomUUID().toString());        userDao.save(user);    }    @Override    public User login(String username, String password) {        return userDao.login(username,password);    }    @Override    public List findAlluser() {        return userDao.findAlluser();    }    @Override    public void delete(String id) {        userDao.delete(id);    }    @Override    public User update(String id) {        return userDao.update(id);    }    @Override    public void add(User user) {        userDao.add(user);    }}

Controller层(web 层)

负责具体模块的业务流程控制(获取参数(前端传过来)返回响应(前端或数据库或一个指定路径)),需要调用service逻辑设计层的接口来控制业务流程(导入service层)。

package com.dvms.controller;import com.dvms.entity.Emp;.....@Controllerpublic class EmpController {    @Autowired    private EmpService empService;    @GetMapping("emp/findAll")    public String findAll(@RequestParam(defaultValue = "1") int pageNum,                          @RequestParam(defaultValue = "5") int pageSize,                          Model model){        PageHelper.startPage(pageNum,pageSize);//        PageInfo pageInfo = new PageInfo<>(empService.findAll());        model.addAttribute("pageInfo",pageInfo);//        List emps = empService.findAll();//        model.addAttribute("emps",emps);        return "ems/tables";    }    @RequestMapping("/emp/save")    public String save(Emp emp){        empService.save(emp);        return "redirect:/emp/findAll";    }}

Controller层调用了Service层的接口方法,Service层调用Dao层的方法,其中调用的参数是使用Entity层进行传递的。View层与Controller层协同工作,主要负责界面展示。

感谢各位的阅读!关于"SSM框架下各层的示例分析"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

接口 数据 业务 方法 数据库 用户 控制 配置 逻辑 框架 参数 模块 文件 流程 处理 设计 业务流程 实体 对象 方式 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网新科技 高科技互联网 互联网品科技 奇酷互联网科技 奇酷互联网络科技 互联网科技的英文 奇酷互联网络科技公司 智慧科技互联网 掌上梦互联网科技 互联网金融监管科技 互联网科技素材视频竖屏 恒生科技互联网指数分析 广西互联网科技孵化中心 深圳艾果互联网通讯科技 佛山市拉法互联网科技有限公司 每天都有哪些好的互联网科技 九思连强互联网电子科技有限公司 上海乐五互联网科技有限公司 云鲸互联网络科技有限公司 广西科技产业互联网是什么 博彦科技互联网金融 苏州找大状互联网科技有限公司 科技互联网技术 汉立互联网科技有限公司联系电话 中国的互联网科技企业的崛起 和信科技工业互联网 新兴科技互联网创新大赛颁奖典礼 浙南科技城互联网大厦建设工程 佛山市翊博互联网络科技有限公司 科技互联网专业务虚会材料
0