实现SSM简易商城项目的登录注册功能

实现SSM简易商城项目的登录注册功能

项目背景介绍

在互联网时代,电商行业蓬勃发展,越来越多的人开始关注电子商务。为了实现一个简易商城项目,我们选择了SSM框架作为项目的基础架构。SSM分别代表了Spring、SpringMVC和MyBatis三个框架,它们能够很好地协同工作,大大提高了开发效率和代码质量。

在这篇博客中,我们将详细介绍如何使用SSM框架实现登录注册功能。我们从mapper层、service层、controller层和前端页面设计开始,逐步完成这个功能。

1. 数据库设计

在登录注册功能中,我们需要使用数据库存储用户信息。我们创建一个名为user的表,用于存储用户的用户名和密码。

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(50) NOT NULL,
  `password` varchar(50) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

2. Mapper层

在Mapper层,我们使用MyBatis框架来操作数据库。首先,我们创建一个名为UserMapper的接口,定义用户相关操作的方法。在UserMapper.xml中,我们将实现这些方法。

2.1 UserMapper.java

package com.example.mapper;

import com.example.model.User;

public interface UserMapper {
    User selectByUsername(String username);
    void insert(User user);
}

2.2 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">
<mapper namespace="com.example.mapper.UserMapper">
    <resultMap id="BaseResultMap" type="com.example.model.User">
        <id column="id" property="id" jdbcType="INTEGER"/>
        <result column="username" property="username" jdbcType="VARCHAR"/>
        <result column="password" property="password" jdbcType="VARCHAR"/>
    </resultMap>

    <select id="selectByUsername" resultMap="BaseResultMap">
        SELECT id, username, password
        FROM user
        WHERE username = #{username}
    </select>

    <insert id="insert" parameterType="com.example.model.User">
        INSERT INTO user (username, password)
        VALUES(#{username}, #{password})
    </insert>
</mapper>

3. Service层

在Service层,我们编写业务逻辑代码。首先,我们创建一个名为UserService的接口,在UserServiceImpl实现这些方法。在这个例子中,我们主要实现了用户注册和用户登录两个功能。

3.1 UserService.java

package com.example.service;

import com.example.model.User;

public interface UserService {
    boolean register(User user);
    boolean login(String username, String password);
}

3.2 UserServiceImpl.java

package com.example.service.impl;

import com.example.mapper.UserMapper;
import com.example.model.User;
import com.example.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class UserServiceImpl implements UserService {
    @Autowired
    private UserMapper userMapper;

    @Override
    public boolean register(User user) {
        User existingUser = userMapper.selectByUsername(user.getUsername());
        if (existingUser != null) {
            return false;
        }
        userMapper.insert(user);
        return true;
    }

    @Override
    public boolean login(String username, String password) {
        User user = userMapper.selectByUsername(username);
        if (user == null) {
            return false;
        }
        return user.getPassword().equals(password);
    }
}

4. Controller层

在Controller层,我们处理请求并返回视图。在这个例子中,我们提供了用户注册和用户登录的接口。

4.1 UserController.java

在 src/main/java 目录下创建 UserController.java 文件,并定义 UserController 类,用于处理前端请求。

package com.example.controller;

import com.example.model.User;
import com.example.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/user")
public class UserController {

    private UserService userService;

    @Autowired
    public UserController(UserService userService) {
        this.userService = userService;
    }

    @GetMapping("/login")
    public String showLoginForm() {
        return "login";
    }

    @PostMapping("/login")
    public String login(String username, String password, Model model) {
        // 处理登录逻辑
    }

    @GetMapping("/register")
    public String showRegisterForm() {
        return "register";
    }

    @PostMapping("/register")
    public String register(User user, Model model) {
        // 处理注册逻辑
    }
}

前端页面设计

在前端页面设计中,我们将使用HTML、CSS和JavaScript来创建用户友好且美观的登录和注册页面。以下是前端页面设计的示例代码。

登录页面设计

<!DOCTYPE html>
<html>
<head>
  <title>登录页面</title>
  <style>
    /* 样式代码省略,可根据需求进行自定义样式设计 */
  </style>
</head>
<body>
  <h1>欢迎登录</h1>
  <form action="/login" method="post">
    <label for="username">用户名:</label>
    <input type="text" id="username" name="username" required><br><br>
    <label for="password">密码:</label>
    <input type="password" id="password" name="password" required><br><br>
    <input type="submit" value="登录">
  </form>
</body>
</html>

注册页面设计

<!DOCTYPE html>
<html>
<head>
  <title>注册页面</title>
  <style>
    /* 样式代码省略,可根据需求进行自定义样式设计 */
  </style>
</head>
<body>
  <h1>用户注册</h1>
  <form action="/register" method="post">
    <label for="username">用户名:</label>
    <input type="text" id="username" name="username" required><br><br>
    <label for="password">密码:</label>
    <input type="password" id="password" name="password" required><br><br>
    <input type="submit" value="注册">
  </form>
</body>
</html>

这篇文章我们重点介绍了在SSM框架中实现登录和注册功能的步骤。首先我们设计了简洁美观的前端页面,包括登录页面和注册页面。然后通过后端代码实现了登录功能和注册功能。

在登录功能的实现中,我们使用SpringMVC框架来处理前端发送的登录请求。我们通过注入UserService来调用相应的服务方法,通过用户名从数据库中查询用户信息,然后进行密码校验,最后根据校验结果返回相应的结果信息。

在注册功能的实现中,我们同样使用SpringMVC框架来处理前端发送的注册请求。我们通过注入UserService来调用相应的服务方法,将前端传递的用户名和密码封装成User对象,然后将其插入到数据库中。

值得注意的是,后端的服务实现部分通常需要依赖于MyBatis框架来与数据库进行交互。在UserService中,我们注入了UserMapper,并通过其提供的方法来对数据库表进行操作。

通过以上步骤,我们完成了简易商城系统中的登录和注册功能的实现。可以根据实际需求,在此基础上进行扩展和优化。

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

竹山全栈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值