Spring+thymeleaf完成用户管理页面的增删查改功能

目录

知识点: 路由重定向 redirect:/***

登录

控制层代码

接口

sql配置

页面效果

添加用户

控制层代码

接口

sql配置

页面效果

查看信息

控制层代码

接口

sql配置

页面效果

修改信息

控制层代码

接口

sql配置

页面效果

条件查询

控制层代码

接口

sql配置

页面效果

删除数据

控制层代码

接口

sql配置

页面效果


知识点: 路由重定向 redirect:/***

使得一个路由地址A与另一个路由地址B联系起来,执行A的时候会跳转执行B 。不仅 “/” 可以被重定向,其他普通路由地址互相也可以重定向。重定向会使得路由再次发生调用请求。

登录

输入用户名和密码,根据用户名和密码查询,如果查到,则登录成功。

控制层代码

/**
     * 登录 判断用户名和密码是否正确
     */
    @RequestMapping("/index")
    public ModelAndView goindex(User user) {
        System.out.println(user);
        System.out.println(user.getUsername() + "  " + user.getPassword());
        User login = userService.getUser(user);
        if (login != null) {
            mav.addObject("name", user.getUsername());
            mav.setViewName("index");
        } else {
            mav.addObject("error", "用户名和密码错误");
            mav.setViewName("login");
        }
        return mav;
    }

接口

   

//登录
    public User getUser(User user);

sql配置

 <!--登录 根据用户名和密码查询-->
    <select id="getUser" resultType="User">
        select *
        from user
        where username = #{username}
          and password = #{password}
    </select>

页面效果

登录页面

用户名密码错误时

用户名密码正确时

添加用户

点击添加用户,进入添加用户页面,表单输入完成后提交,添加表单内容到数据库

控制层代码

   

/**
     * 新建用户
     * @param user
     * @return
     */
    @RequestMapping("/userAdd")
    public Object goUserAdd(User user) {
        System.out.println("5555555555555555555555555"+user);
        if(user.getUsername()!=null){
            userService.insert(user);
            return "redirect:/userList";
        }else {
            mav.setViewName("userAdd");
            return mav;
        }
    }

接口

   /**
     * 新增数据
     *
     * @param user 实例对象
     * @return 影响行数
     */
   public Integer insert(User user);

sql配置

 <!--新增-->
    <insert id="insert">
        insert into user values (0,#{username}, #{password}, #{gender}, #{age}, #{phone}, #{type})
    </insert>

页面效果

查看信息

点击查看,根据id查询到信息,显示在页面上

控制层代码

 /**
     * 查看数据
     *
     * @return
     */
    @RequestMapping("/userView/{id}")
    public ModelAndView goUserView(@PathVariable("id") Integer id) {
        User user = userService.queryById(id);
        System.out.println(user);
        mav.addObject("item", user);
        mav.setViewName("userView");
        return mav;
    }

接口

 /**
     * 通过ID查询单条数据
     *
     * @param userid 主键
     * @return 实例对象
     */
    public User queryById(Integer userid);

sql配置

   

  <select id="queryById" resultType="User">
        select *
        from user
        where userid = #{userid}
    </select>

页面效果

修改信息

将原本信息显示在页面上,在输入框输入修改后信息,提交表单,更新数据库数据。

控制层代码

/**
     * 修改数据
     * 点击修改时:首先取缓存中数据和该行数据对比,一致则能修改,不一致则不允许修改。
     * @return
     */
    @RequestMapping("/userUpdate/{id}")
    public Object goUserUpdate(@PathVariable("id") Integer id, User user) {
//        先查看  修改前
        User user1 = userService.queryById(id);
        mav.addObject("former", user1);
        mav.setViewName("userUpdate");
//       再获取表单数据
        System.out.println("goUserUpdate" + user);
        if (user.getUsername() != null) {
            user.setUserid(user1.getUserid());
            userService.update(user);
            return "redirect:/userList";
        }
        return mav;
    }

接口

/**
     * 修改数据
     *
     * @param user
     * @return
     */
    public Integer update(User user);

sql配置

<!--通过主键修改数据-->
    <update id="update">
        update user
        <set>
            <if test="username != null and username != ''">
                username = #{username},
            </if>
            <if test="password != null and password != ''">
                password = #{password},
            </if>
            <if test="gender != null and gender != ''">
                gender = #{gender},
            </if>
            <if test="age != null">
                age = #{age},
            </if>
            <if test="phone != null and phone != ''">
                phone = #{phone},
            </if>
            <if test="type != null and type != ''">
                type = #{type},
            </if>
        </set>
        where userid = #{userid}
    </update>

页面效果

条件查询

根据输入条件,点击查询后页面显示数据。如果未输入,则显示所有,进入页面则显示所有

控制层代码

/**
     * 页面显示列表
     *
     * @return
     */
    @RequestMapping("/userList")
    public ModelAndView goUserList(User user) {
        System.out.println(user);
        List<User> users = userService.UserList(user.getUsername());
//        存缓存
        redisTemplate.opsForValue().set("users", users);
        List<User> userList = (List<User>) redisTemplate.opsForValue().get("users");
//        存页面
        mav.addObject("users", userList);
        mav.setViewName("userList");
        return mav;
    }

接口

 //显示列表
    public List<User> UserList(String username);

sql配置

  <!--显示列表-->
    <select id="UserList" resultType="User">
        select *
        from user
        <where>
            <if test="username!=null and username!=''">
                username like '%${username}%'
            </if>
        </where>
    </select>

页面效果

输入条件

点击查询后

再次点击

删除数据

点击删除按钮,删除此条数据。

控制层代码

 /**
     * 删除数据
     *
     * @param userid 主键
     * @return 删除是否成功
     */
    @RequestMapping("/userdelet/{id}")
    public String userdelet(@PathVariable("id") Integer userid) {
        userService.deleteById(userid);
        return "redirect:/userList";
    }

接口

 /**
     * 通过主键删除数据
     *
     * @param userid 主键
     * @return 影响行数
     */
   public Integer deleteById(Integer userid);

sql配置

<!--通过主键删除-->
    <delete id="deleteById">
        delete
        from user
        where userid = #{userid}
    </delete>

页面效果

删除小绿后:

  • 13
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
SpringCloud是一个基于Spring框架的开发工具集合,可以用于构建分布式系统的各个组件。Thymeleaf是一种用于构建Java应用程序的Java模板引擎,用于将数据渲染到HTML页面上。MyBatis-Plus是一个基于MyBatis框架的增强工具,提供了一些便捷的功能,如自动生成SQL语句、分页查询等。 在SpringCloud中,我们可以使用Thymeleaf来构建前端页面,通过MyBatis-Plus来操作数据库进行增删改查操作。 首先,我们需要在SpringCloud项目中引入Thymeleaf的依赖,并配置Thymeleaf的相关属性,如模板文件的存放位置、前缀后缀等。然后我们可以创建一个Controller类,使用@RequestMapping注解来处理请求,并返回视图模板。在视图模板中,我们可以使用Thymeleaf的语法来渲染数据,如插入变量、循环、条件判断等。 在MyBatis-Plus中,我们需要引入MyBatis-Plus的依赖,并配置MyBatis的相关属性,如数据库连接信息、Mapper接口扫描路径等。然后我们可以创建一个Mapper接口,使用@Mapper注解来标识该接口是一个Mapper,并编写相应的增删改查方法。MyBatis-Plus提供了一些注解,如@Select、@Insert、@Update、@Delete等,可以通过这些注解来实现对数据库的操作。 在Controller类中,我们可以通过@Autowired注解来注入Mapper接口,并调用相应的方法来实现对数据库增删改查操作。通过前端页面的请求,Controller类将数据传递给Thymeleaf视图模板进行渲染,最后将渲染后的页面返回给前端展示。 通过SpringCloud、Thymeleaf、MyBatis-Plus的结合使用,我们可以方便地实现对数据库增删改查操作,并将数据展示在前端页面上,实现一个完整的CRUD功能

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

随便1007

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值