天天看点

二:SSM框架整合之用户信息管理及分页插件

接着上篇文字完成得登陆操作

今天目标:完成用户管理以及分页插件的目标

(1) 编写dao层方法

package com.zhongruan.dao;/*
    @author: hedgehog
    @date 2020/2/19  14:43
*/

import com.zhongruan.bean.UserInfo;

import java.util.List;

//IUserInfoDao 接口,数据库访问层,直接可以访问数据库
public interface IUserInfoDao {
//    验证登录
//    查询 Select
    UserInfo doLogin(String username);
//    全部查询
    List<UserInfo> findAll();
//添加操作
    void  addUser(UserInfo userInfo);
//    删除,根据主键ID
    void  delUserById(int id);
//    修改前的查询
    UserInfo  updSelUserInfoById(int id);
//    修改(更新)
    void updUserInfo(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.zhongruan.dao.IUserInfoDao" >
  <!--namespace="命名空间"-->
    <!--    登录  id 值是 dao层一样 -->
    <select id="doLogin" parameterType="String" resultType="com.zjitc.bean.UserInfo">
        select * from tb_user where username=#{username}
    </select>
<!--    全部查询-->
    <select id="findAll" resultType="com.zjitc.bean.UserInfo">
        select * from tb_user
    </select>
<!--    增加-->
    <insert id="addUser" parameterType="com.zjitc.bean.UserInfo">
        insert into tb_user(id,username,password)value (#{id},#{username},#{password})
    </insert>
<!--    删除-->
    <delete id="delUserById" parameterType="Integer">
        delete from tb_user where id=#{id}
    </delete>
<!--    修改前的查询-->
    <select id="updSelUserInfoById" parameterType="Integer" resultType="com.zjitc.bean.UserInfo">
        select * from tb_user where id=#{id}
    </select>
<!--    修改(更新)-->
    <update id="updUserInfo" parameterType="com.zjitc.bean.UserInfo">
        update tb_user set username=#{username},password=#{password} where  id=#{id}
    </update>
</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>
           

此分页配置一定要放在配置sqlSessionFactory对象中。

二:SSM框架整合之用户信息管理及分页插件

(4)service层

二:SSM框架整合之用户信息管理及分页插件

(5) controller层

package com.zjitc.controller;/*
    @author: 李叶露
    @date 2020/2/21  17:13
*/

import com.github.pagehelper.PageInfo;
import com.zjitc.bean.UserInfo;
import com.zjitc.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;

/**
 * UserInfoController -变现层/控制器
 */

@Controller
@RequestMapping("/user")
public class UserInfoController {
//登录系统
    @Autowired
    private IUserInfoService userInfoService;
    @RequestMapping("/doLogin.do")
    public String doLogin(String username, String password, HttpSession session){
//        1.调用service,查询得到结果 ,自动补全返回值 ctrl+alt+v
        UserInfo userInfo = userInfoService.doLogin(username);
//        2.判断
        if (userInfo!=null){
            if (userInfo.getPassword().equals(password)){
                System.out.println("密码正确,登录成功!");
                session.setAttribute("userInfo",userInfo);
                System.out.println(userInfo);
                return "main";
            }else {
                System.out.println("密码错误,登陆失败");
                session.setAttribute("type","密码错误,请重新登陆!");
                return "../login";
            }
        }else {
            System.out.println("用户不存在,请重新输入");
            session.setAttribute("type","用户不存在,请重新输入");
            return "../login";
        }

    }


//    全部查询
//    所有需要返回数据到页面显示的全部都需要封装到ModelAndView里面
    @RequestMapping("/findAll.do")
    public ModelAndView findAll(@RequestParam(defaultValue = "1") Integer page,
                                @RequestParam(defaultValue = "5") Integer size){
//        调用service中的方法,得到查询结果
        List<UserInfo> userInfoList= userInfoService.findAll(page,size);
//        把得到的数据存放到PageInfo中
        PageInfo pageInfo=new PageInfo(userInfoList);

        ModelAndView mv=new ModelAndView();
        mv.addObject("pageInfo",pageInfo);
        mv.setViewName("user-list");
        return mv;
    }

//    增加
    @RequestMapping("/addUser.do")
    public String addUser(UserInfo userInfo){
//        调用pagesservice,得到结果
        userInfoService.addUser(userInfo);
//        增加成功,放回重新查询
        return "redirect:findAll.do";
    }

//    删除
    @RequestMapping("/delUser.do")
    public String delUserById(int id){
        userInfoService.delUserById(id);
//        检测是否删除成功
        System.out.println("删除成功");
        //更新成功  返回重新查询
        return "redirect:findAll.do";
    }

//    修改前的查询
//    JDBC和mybatis有什么区别
//    所有的框架都在JDBC上完成的
//    mybatis自动封装
    @RequestMapping("/UpdSelUserById.do")
    public ModelAndView UpdSelUserInfoById(int id){
         UserInfo userInfo= userInfoService.updSelUserInfoById(id);
         ModelAndView mv=new ModelAndView();
         mv.addObject("userInfo",userInfo);
         mv.setViewName("user-update");
         return mv;
    }
//    修改更新
    @RequestMapping("/updUserInfo.do")
    public String updUserInfo(UserInfo userInfo){
        userInfoService.updUserInfo(userInfo);
        System.out.println("修改成功");
        //更新成功  返回重新查询
        return "redirect:findAll.do";
    }

}

           

(6) 修改jsp页面

基本都已经完成 剩下的就是修改了用户jsp页面的情况

二:SSM框架整合之用户信息管理及分页插件

点击aside.jsp用户管理后跳转查询方法

二:SSM框架整合之用户信息管理及分页插件

user-list.jsp的参数设置

二:SSM框架整合之用户信息管理及分页插件

c标签里item的值就是从findAll方法ModelAndView传过来的

分页插件的配置也如下

二:SSM框架整合之用户信息管理及分页插件

全部查询完成

进行新增的操作

修改user-list新增按钮的路径

二:SSM框架整合之用户信息管理及分页插件

user_add.jsp页面

二:SSM框架整合之用户信息管理及分页插件

做删除用户功能,主要是controller层的方法编写

二:SSM框架整合之用户信息管理及分页插件

更新功能需要传值,需要单个查询的功能,传个id进去,直接跳转单个查询方法

user-update.jsp

二:SSM框架整合之用户信息管理及分页插件

今日目标已完成。

本人是在校学生,疫情使我在家学习,如有错误或更加简便的方法,可以指出来噢~