1. 新建数据库表 ims-learn.user

1.png
2.png

2. Model包下新建User类

3.png
注: 因为之前初始化项目时添加了lombok依赖, 所以model类可以不用写setter/getter, 直接使用@Data注解替代

3. 编写UserDao接口类

4.png

4. 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="cn.coralcloud.ims.dao.UserDao">
    <resultMap id="userResultMap" type="User">
        <id property="id" column="id" />
        <result property="createTime" column="create_time" />
        <result property="updateTime" column="update_time" />
    </resultMap>
    <select id="login" resultMap="userResultMap">
        select * from user where email = #{email} and password = #{password}
    </select>
</mapper>

5.mybatis.xml

编写mybatis基础配置, 新建resources/mybatis/mybatis.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

    <settings>
        <setting name="logImpl" value="STDOUT_LOGGING" />
        <setting name="lazyLoadingEnabled" value="true"/>
        <setting name="aggressiveLazyLoading" value="false"/>
        <setting name="lazyLoadTriggerMethods" value="" />
    </settings>

</configuration>

6. UserService.java

7.png

7. UserController.java

package cn.coralcloud.ims.controller;

import cn.coralcloud.ims.model.User;
import cn.coralcloud.ims.service.UserService;
import com.sun.org.apache.xpath.internal.operations.Mod;
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;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.View;

import javax.servlet.http.HttpSession;

/**
 * @author c-geff
 * @name UserController
 * @description
 * @date 2020-11-03 10:45
 */
@Controller
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserService userService;

    @PostMapping("/login")
    public ModelAndView login(String email, String password, HttpSession session){
        ModelAndView view = new ModelAndView();
        view.setViewName("user/login");
        User user = userService.login(email, password);
        if(user != null){
            session.setAttribute("AdminUserKey", user);
            view.setViewName("redirect:/index");
            return view;
        }
        view.addObject("errmsg", "用户名或密码错误! ");
        return view;
    }

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

}

8. login.ftl

8.png

9. IndexController改造

9.png

10. index.ftl改造, 展示用户登录后的用户名

10.png

11. 数据库添加一条用户数据, 然后在/user/login页面登录测试

11.png