SSM框架下的登录功能,分页功能以及crud的实现

本文介绍了如何在SSM(Spring、SpringMVC、MyBatis)框架下实现登录功能、分页展示以及CRUD操作。通过详细代码展示了Department和User模块的控制器、拦截器、Mapper接口及XML配置、Service接口及实现、测试用例等关键部分,并提供了相关页面设计截图。

效果图:
登录页面:
在这里插入图片描述
输入正确的姓名密码:
在这里插入图片描述
初始页面(已存入内容):在这里插入图片描述
点击新增(增加功能):
在这里插入图片描述
在输入栏中输入内容进行查找后(查找功能):
在这里插入图片描述
点击修改后(修改功能)(自带回显):
在这里插入图片描述
删除功能点击删除即可

分页功能:
在这里插入图片描述
代码:
结构框图:
在这里插入图片描述
在这里插入图片描述
详细代码:
Department.java:

package text.ssm.bean;

import lombok.*;

/**
 * Created by Administrator on 2019/9/10.
 */
@Getter@Setter@ToString
@AllArgsConstructor@NoArgsConstructor
public class Department {
   
   

    private Integer id;

    private String name;

    private String location;

}

DepartmentController.java:

package text.ssm.controller;

import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import text.ssm.bean.Department;
import text.ssm.query.QueryObject;
import text.ssm.service.IDepartmentService;

import java.util.List;

/**
 * Created by Administrator on 2019/9/10.
 */
@Controller
public class DepartmentController {
   
   


    /*
    * 只做四件事
    * 1、接收请求参数
    * 2、调用业务方法
    * 3、共享数据
    * 4、控制页面跳转
    * */
    @Autowired
    private IDepartmentService service;

    @RequestMapping("/query")
    public String query(@ModelAttribute("qo") QueryObject qo, Model model){
   
   

        //调用业务的方法执行查询
        /*List<Department> list = service.query(qo);
        model.addAttribute("list",list);*/
        PageInfo pageInfo = service.query2(qo);
        model.addAttribute("pageInfo",pageInfo);
        return "department/list";
    }





    @RequestMapping("/list")
    public String list(Model model){
   
   
        List<Department> list = service.list();
        model.addAttribute("list",list);
        return "department/list";
    }



    @RequestMapping("/edit")
    public String edit(Integer id,Model model){
   
   
        if(id!=null){
   
   
            model.addAttribute("dept",service.get(id));
        }
        return "department/edit";
    }



    @RequestMapping("/saveOrUpdate")
    public String saveOrUpdate(Department dept){
   
   
        if(dept.getId()!=null){
   
   
            service.update(dept);
        }else{
   
   
            service.save(dept);
        }
        return "redirect:/query.do";
    }

    @RequestMapping("/delete")
    public String delete(Integer id){
   
   
        if(id!=null){
   
   
            service.delete(id);
        }
        return "redirect:/query.do";
    }

}

UserController.java:

package text.ssm.controller;

import org.springframework.stereotype.Controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import text.ssm.service.IUserService;

import javax.servlet.http.HttpSession;

/**
 * Created by thinkpad on 2019/9/10.
 */
@Controller
public class UserController {
   
   


    @Autowired
    private IUserService service;

    @RequestMapping("/login")
    public String login(String username, String password, HttpSession session){
   
   
        //调用业务方法
        Boolean res = service.login(username, password);
        if(res){
   
   
            //把登录的用户存入session作用域
            session.setAttribute("USER_IN_SESSION","rose");
            return "redirect:/query.do";
        }else{
   
   
            return "redirect:/login.html";
        }
    }
}

LoginInterceptor.java:

package text.ssm.interceptor;
import org.springframework.web.servlet.HandlerInterceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Created by thinkpad on 2019/9/10.
 */
public class LoginInterceptor implements HandlerInterceptor{
   
   
    public boolean preHandle(HttpServletRequest request,
                             HttpServletResponse response, Object handler) throws Exception {
   
   

        //判断用户是否登录,
        Object obj = request.getSession().getAttribute("USER_IN_SESSION");
        if(obj == null){
   
   
            //没有登录,跳转到登录页面,并且拦截
            response.sendRedirect("/login.html");
            return false;
        }
        //已经登录,放行
        return true;
    }
}

DepartmentMapper.java(接口):

package text.ssm.mapper;

import text.ssm.bean.Department;
import text.ssm.query.QueryObject;

import java.util.List;

/**
 * Created by Administrator on 2019/9/10.
 */
public interface DepartmentMapper {
   
   

    Integer save(Department d);

    Integer update(Department d);

    Integer delete(Integer id);

    Department get(Integer id);

    List<Department> list();

    List<Department> query(QueryObject qo);
}

DepartmentMapper.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="text.ssm.mapper.DepartmentMapper">
    
    <resultMap id="departmentMap" type="text.ssm.bean.Department">
        <id column="id" property="id"></id>
        <result column="name" property="name"></result>
        <result column="location" property="location"></result>
    </resultMap>

    <insert id="save" useGeneratedKeys="true" keyProperty="id">
        insert into department(name,location) values(#{name},#{location})
    </insert>

    <update id="update">
        update department set name = #{name},location = #{location}
        where id = #{id}
    </update>

    <delete id="delete">
        delete from department where id = #{id}
    </delete>

    <select id="get" resultMap="departmentMap">
        select id,name,location from department where id = #{id}
    </select>


    <select id="list" resultMap="departmentMap">
        select id,name,location from department
    </select>

    <select id="query" resultMap="departmentMap">
        SELECT * FROM department
        <where>

            <if test="deptName != null">
                and name LIKE CONCAT('%',#{deptName},'%')
            </if>

            <if test="deptLocation != null">
                AND location LIKE CONCAT('%',#{deptLocation},'%')
            </if>
        </where>

    </select>
</mapper>

QueryObject.java:

package text.ssm
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值