SpringMVC篇(二)——实现登录、列出数据及删除功能

前言

在上一篇中我们做好了项目的前期主备工作,接下来让我们来实现页面的登录、列出数据和删除功能

项目所需文件总览

以下是本次项目所需要的所有代码文件
在这里插入图片描述

其中
dao文件夹内是dao层接口文件
bean文件夹内是实体类文件
service文件夹内是service接口文件及继承service接口使用dao接口的文件
controller文件夹内是前端数据接收处理文件、使用service接口的文件

初始化UserMapper

<?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.zr0701.dao.UserDao">
</mapper>

编写User类

package com.zr0701.bean;
public class User {
    private int id;
    private String name;
    private String password;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
}

注意最后的重写toString

初始化UserController类

@Controller
@RequestMapping("/user")

public class UserController {

    @Autowired
    private UserService userService;
}

接下来按照功能逐一展示代码

项目编写

1、登录

dao

package com.zr0701.dao;

import com.zr0701.bean.User;

import java.util.List;

public interface UserDao {
    User findUserByName(String name);
}

}

SQL语句

<select id="findUserByName" parameterType="String" resultType="User">
        select * from user where name=#{name}
    </select>

Service

package com.zr0701.service;

import com.zr0701.bean.User;

import java.util.List;

public interface UserService {
    boolean login(String name,String password);//接口
}

Impl

@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserDao userDao;

    @Override
    public boolean login(String name, String password) {
        User user = userDao.findUserByName(name);
        if (user!=null&&user.getPassword().equals(password)){
            return true;
        }
        return false;
    }
}

Controller

@RequestMapping("/login.do")
    public ModelAndView login(User user, HttpSession session){
        boolean flag = userService.login(user.getName(),user.getPassword());
        ModelAndView modelAndView = new ModelAndView();
        if (flag){
            session.setAttribute("user",user);
            modelAndView.setViewName("../ok");
        }else {
            modelAndView.setViewName("../failure");
        }
        return modelAndView;
    }

创建登录成功和失败页面

在这里插入图片描述

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>成功!</title>
</head>
<body>

</body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>操作失败</title>
</head>
<body>
<h1>
    操作失败
</h1>

</body>
</html>

2、显示数据

dao

public interface UserDao {
    User findUserByName(String name);
    List<User> findAll();
}

SQL语句

<select id="findAll" resultType="User">
        select * from user
    </select>

Service

List<User> findAll();
}

Impl

@Override
    public List<User> findAll() {
        return userDao.findAll();
    }

Controller

@RequestMapping("/findAll.do")//..../findAll.do?name=
    public ModelAndView findAll(){
        ModelAndView modelAndView = new ModelAndView();
        List<User> userList = userService.searchByName(name);
        System.out.println("userList中的内容为:"+userList);
        modelAndView.addObject("userList",userList);
        modelAndView.setViewName("../main");
        System.out.println("modelAndView中的内容为:"+modelAndView);
        return modelAndView;
    }

创建页面文件

在这里插入图片描述

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>列表</title>
</head>
<body>
<div>
    <table>
        <thead>
        <tr>
            <th>ID</th>
            <th>用户名</th>
            <th>密码</th>
            <th>操作</th>
        </tr>
        </thead>
        <tbody>
        <c:forEach items="${userList}" var="user">
            <tr>
                <td>${user.id}</td>
                <td>${user.name}</td>
                <td>${user.password}</td>
            </tr>
        </c:forEach>
        </tbody>
    </table>
</div>

</body>
</html>

3、删除

dao

public interface UserDao {
    User findUserByName(String name);
    List<User> findAll();
    int deleteById(Integer id);
}

SQL语句

<delete id="deleteById" parameterType="Integer">
        delete from user where id=#{id}
    </delete>

Service

boolean delete(Integer id);
}

Impl

@Override
    public boolean delete(Integer id) {
        int del = userDao.deleteById(id);
        if (del>0){
            return true;
        }
        return false;
    }

Controller

@RequestMapping("/delete.do")
    public String delete(int id){
        boolean del = userService.delete(id);
        if (del){
            return "redirect:findAll.do";
        }
        return "../failure";
    }

在main.jsp中添加以下代码

<a href="${pageContext.request.contextPath}/user/delete.do?id=${user.id}">删除</a>
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值