SSM四个分层架构详细解析

前言

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

说明

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

关于本文

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

代码结构(基于IDEA)

SSM四个分层架构详细解析_第1张图片

各个层的说明

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

UserMapper.xml

SSM四个分层架构详细解析_第2张图片

<?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语句形成映射。用于对数据库的数据操作

示例代码

SSM四个分层架构详细解析_第3张图片

// 注意包名
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层

如果你记不住,请看下图

SSM四个分层架构详细解析_第4张图片

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

SSM四个分层架构详细解析_第5张图片

代码

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();
    }
    
}

心得

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

今天也要加油啊!

你可能感兴趣的:(全栈,前后端分离,SSM,MAVEN,VUE,TOMCAT,ElementUI)