二:SSM框架整合之用户增删改查及分页插件

接着上篇文字完成得登陆操作 今天来完成用户得增删改查以及分页插件的完成

1 编写dao层方法

package com.gm.dao;

import com.gm.bean.UserInfo;

import java.util.List;

/**
 * @author 起风
 * @date 2020/2/19 14:43
 *
 * 接口 数据库访问层  直接可以访问数据库
 */
public interface IUserInfoDao {

    //验证登陆 (查询操作Select)
    UserInfo doLogin(String username);


    //全部查询
    List<UserInfo> findAll();

    //添加
    void adduser(UserInfo userInfo);


    // 删除  根据id
    void delUserById(int id);

    //查询单个
    UserInfo findById(int id);

    //更新
    void updateUser(UserInfo userInfo);

}

2 mapper层

<?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.gm.dao.IUserInfoDao" >


    <!-- 登陆-->

    <select id="doLogin" parameterType="String" resultType="com.gm.bean.UserInfo">
        select * from tb_user where username=#{username}
    </select>


    <!--  全部查询 -->

    <select id="findAll"  resultType="com.gm.bean.UserInfo">
        select * from tb_user
    </select>

    <!--  添加-->
    <insert id="adduser" parameterType="com.gm.bean.UserInfo">
        insert  into tb_user(id,username,password) values (#{id},#{username},#{password})
    </insert>

    <!-- 删除-->
    <delete id="delUserById" parameterType="java.lang.Integer">
        delete from tb_user where id=#{id}
    </delete>

    <!--更新-->
    <update id="updateUser" parameterType="com.gm.bean.UserInfo">
        update tb_user set username=#{username},password=#{password} where id=#{id}
    </update>

    <!--查询单个-->

    <select id="findById" parameterType="Integer" resultType="com.gm.bean.UserInfo">
        select * from tb_user where id=#{id}
    </select>

</mapper>

注意他们的返回值以及传入参数类型

3 修改配置文件

因为有了分页插件 所以需要修改下
pom.xml添加架包

 <!--   分页架包      -->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>5.1.2</version>
        </dependency>

applicationContext.xml添加配置

 <!--   分页配置     -->
        <property name="plugins">
            <array>
                <bean class="com.github.pagehelper.PageInterceptor">
                    <property name="properties">
                        <props>
                            <prop key="helperDialect">mysql</prop>
                            <prop key="reasonable">true</prop>
                        </props>
                    </property>
                </bean>
            </array>
        </property>

在这里插入图片描述注意添加的位置,我刚开始添加错了 搞得我心态崩了

4 service层

在这里插入图片描述

5 controller层

package com.gm.controller;

import com.github.pagehelper.PageInfo;
import com.gm.bean.UserInfo;
import com.gm.service.IUserInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpSession;
import java.util.List;

/**
 * @author 起风
 * @date 2020/2/19 16:17
 * <p>
 * 前端控制器
 */
@Controller
@RequestMapping("/user")
public class UserInfoController {

    @Autowired
    private IUserInfoService userInfoService;


    /*   登陆  */
    @RequestMapping("/doLogin.do")
    public String doLogin(String username, String password, HttpSession session) {
//        调用service 查询结果
        UserInfo userInfo = userInfoService.doLogin(username);

//        判断
        if (userInfo != null) {
            if (userInfo.getPassword().equals(password)) {
                System.out.println("密码正确  登陆成功");
                session.setAttribute("userInfo", userInfo);
                return "main";
            } else {
                System.out.println("密码错误,登陆失败");
                session.setAttribute("message", "密码错误,登陆失败");
                return "../login";

            }
        } else {
            System.out.println("用户不存在,请重新输入");
            session.setAttribute("message", "用户不存在,登陆失败");
            return "../login";

        }

    }

    /* 全部查询
     * 所有需要返回数据到页面的全部都需要封装到ModelAndView中
     * */
    @RequestMapping("/findAll.do")
    public ModelAndView findAll(ModelAndView modelAndView,@RequestParam(defaultValue ="1")  Integer page ,
                                @RequestParam(defaultValue = "5")Integer size  ) {
        // 调用方法
        List<UserInfo> userInfoList = userInfoService.findAll(page,size);
        PageInfo pageInfo=new PageInfo(userInfoList);
        modelAndView.addObject("pageInfo", pageInfo);
        modelAndView.setViewName("user-list");


        return modelAndView;
    }


    /*增加*/
    @RequestMapping("/addUser.do")
    public String addUser(UserInfo userInfo) {

        //调用service 得到结果
        userInfoService.adduser(userInfo);


        /*增加成功  返回重新查询*/
        return "redirect:findAll.do";

    }

    /*删除*/
    @RequestMapping("/delUserById.do")
    public String delUserByID(int id) {

        userInfoService.delUserById(id);

        /*删除成功  返回重新查询*/
        return "redirect:findAll.do";
    }


    /*查询单个*/
    @RequestMapping("/findById.do")
    public ModelAndView findById(int id, ModelAndView modelAndView) {
        UserInfo userInfo = userInfoService.findById(id);
        modelAndView.addObject("user", userInfo);
        modelAndView.setViewName("user-update");
        return modelAndView;

    }

    /*更新*/
    @RequestMapping("/updateUser.do")
    public String updateUser(UserInfo userInfo) {
        userInfoService.updateUser(userInfo);

        /*更新成功  返回重新查询*/
        return "redirect:findAll.do";
    }

}

6 修改jsp页面

基本都已经完成 剩下的就是修改了
用户jsp页面的情况
在这里插入图片描述

点击main.jsp用户管理后跳转查询方法
后面的?page=1&size=5 是默认页面第一页,页面信息条数5条。

user-list.jsp的参数设置
在这里插入图片描述
c标签里item的值就是从findAll方法ModelAndView传过来的

分页插件的配置也如下
在这里插入图片描述全部查询完成

进行新增的操作

修改user-list新增按钮的路径
在这里插入图片描述
user-add.jsp页面
在这里插入图片描述
新增也完成

做删除的
这个简单,一句就可以,主要是controller层的方法编写
在这里插入图片描述
删除完成

来更新
更新需要传值,需要单个查询的功能,传个id进去,直接跳转单个查询方法
在这里插入图片描述

user-update.jsp
在这里插入图片描述这样点更新的时候,id传过去执行了查询方法,页面就会有默认的用户账户信息,方便修改

然后修改提交方法
在这里插入图片描述
这样子更新也完成了

7 测试

没问题

在校大二学生,疫情在家网课学习,如有错误请指出,谢谢。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值