SSM四个分层架构详细解析

mac2024-04-22  18

前言

最近一直想把学习maven SSM Spring + SpringMvc+ Mybatis 框架以及前端框架 Vue + ElementUI的学习收获分享出来,但是迫于一堆DDL只能现在捋一捋。从这篇文章我将陆续更新基于maven + 后端框架SSM+ 前端框架VUE+ ElementUI的文章,完全是从小白的角度介绍学习的心路历程(我太难了一路的坑)。

说明

关于IDEA以及Eclipse 等环境配置maven以及Tomcat我会陆陆续续的更新

关于本文

此文章主要设计SSM的代码结构以及四个层之间的说明

代码结构(基于IDEA)

各个层的说明

按照数据库到后端到前端的顺序,现将对应的UserMapper.xml文件放出来

UserMapper.xml

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!-- 设置为IUserDao接口方法提供sql语句配置 --> <mapper namespace="com.ssm.dao.IUserDao"> <resultMap id="userList" type="com.ssm.pojo.User"> <id column="ID" property="ID" ></id> <id column="Account" property="Account" ></id> <id column="Pwd" property="Pwd" ></id> </resultMap> <select id="getAllUser" resultMap="userList"> SELECT * FROM login where id=1; </select> </mapper>

dao层

dao层,又称为mapper层 、持久层。主要是与对应的Mapper.xml文件里面的SQL语句形成映射。用于对数据库的数据操作

示例代码

// 注意包名 package com.ssm.dao; import com.ssm.pojo.User; import org.springframework.stereotype.Repository; import java.util.List; @Repository public interface IUserDao { public List<User> getAllUser(); }

这里的函数名都要与对应的mapper.xml文件的id对应

pojo层

如果你记不住,请看下图

pojo实体层,又名entity层 主要是和数据库的表的名称对应计科,这层比较简单

代码

package com.ssm.pojo; public class User{ private int ID; public int getID() { return ID; } public void setID(int ID) { this.ID = ID; } public String getAccount() { return Account; } public void setAccount(String account) { Account = account; } public String getPwd() { return Pwd; } public void setPwd(String pwd) { Pwd = pwd; } private String Account; private String Pwd; }

service 层

这一层称为服务层 主要是写一下接口 便于Controller层调用。其中包含Serviceiml,有的地方将其分开放,这里我选择放在一起。

package com.ssm.service; import com.ssm.pojo.User; import java.util.List; public interface IUserService { public List<User> getUser(); }

实现Service

package com.ssm.service; import com.ssm.dao.IUserDao; import com.ssm.pojo.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service public class UserServiceImpl implements IUserService{ @Autowired private IUserDao userDao; public List<User> getUser() { return userDao.getAllUser(); } }

Controller层

Controller称为控制层,主要是负责前后端的数据交互,Controller用的是Service类

示例代码

package com.ssm.controller; import com.ssm.pojo.User; import com.ssm.service.IUserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import java.util.List; @Controller public class UserController { @Autowired private IUserService userService; @RequestMapping("/login") @ResponseBody @CrossOrigin public List<User> userInfor(){ System.out.println( userService.getUser().size()); return userService.getUser(); } }

心得

刚刚开始学的,还不是很熟悉 但是我觉得只要默默的努力,终有一天别人会的我也必将会。既然输在了起跑线上,那我们后面当然要付出的更多鸭~
写的可能不是很好,有问题的留言,我会第一时间回复你~

今天也要加油啊!

最新回复(0)