效果图:
登录页面:

输入正确的姓名密码:

初始页面(已存入内容):
点击新增(增加功能):

在输入栏中输入内容进行查找后(查找功能):

点击修改后(修改功能)(自带回显):

删除功能点击删除即可
分页功能:

代码:
结构框图:


详细代码:
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

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





