IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 仿抖音短视频用户业务模块----完成用户信息增删改查并通过接口文档联调(模拟工作环境) -> 正文阅读

[大数据]仿抖音短视频用户业务模块----完成用户信息增删改查并通过接口文档联调(模拟工作环境)

仿抖音项目持续更新中:
仿抖音短视频APP专栏

练习:

目录

1.根据nickname或者mobile来查询用户信息

?2.根据用户id删除用户信息

3.根据用户id修改用户信息


1.根据nickname或者mobile来查询用户信息

首先在controller层中,写一个路由地址,这里我们的用户信息用列表返回。

?注:我们这里传参是DTO,这里我在model层重写了一个类来存放nickname和mobile,

?接着在我们的service接口中写方法:

在实现类中调用mapper层的接口:

?在mapper接口中:

最后就需要在我们的xml文件里来操作数据库查询用户信息:

  <select id="getUserListByQuery" resultType="com.imooc.vo.UsersVO">
    SELECT
      id,mobile,nickname,imooc_num,face,sex,birthday,
      country,province,city,district,description,
      bg_img,can_imooc_num_be_updated
    FROM users
    WHERE 1=1
    <if test="nickname != null">
        AND nickname= #{nickname}

    </if>
    <if test="mobile != null">
        And mobile = #{mobile}
    </if>
  </select>

这里为什么会使用1=1,因为我们sql语句中没有 where和AND连用的语法,if是标签.

随后我们在接口文档中测试:

?打开navicat检查:

成功。

?2.根据用户id删除用户信息

在我们的controller层来随便写一个路由名字,我们这里用HashMap来接受返回的用户信息,键是成功,值是service层返回的结果。

?在service写接口:

?注:这里返回的是布尔类型,传入的参数是String类型。

实现Service接口:

    @Transactional
    @Override
    public boolean deleteUser(String userId) {
        if (StringUtils.isNotBlank(userId)) {
            try {

                int effectedNum = usersMapper.deleteUser(userId);
                if (effectedNum > 0) {
                    return true;
                } else {
                    throw new RuntimeException("删除用户信息失败!");
                }
            } catch (Exception e) {
                throw new RuntimeException("删除用户信息失败:" + e.toString());
            }
        }else{
                throw new RuntimeException("Id不能为空!");
            }
        }

?这里我们要清除一点,我们的数据库完成增加或删除后返回的是影响行数,我们这里需要用int来接受。如果影响行数大于1,则说明删除成功。

在mapper层写接口:

?最后在xml文件中,完成用户信息删除:

这里其实我后来发现我犯了一个错误,这里如果传入的UserId为空,就会导致所有表被删除,这是个很严重的错误,我们不应该使用1=1 和 if标签,应该直接:

  <delete id="deleteUser" >
    DELETE FROM
        users
    WHERE
       id =#{userId}
  </delete>

?重启,打开我们的接口文档:

打开navicat检查:

?删除成功。

3.根据用户id修改用户信息

首先在controller层中,用Map接受返回的键和值?

这里Uptate我写了一个类来传入我们需要修改的信息:

?

接着在service接口:

?在service实现类中:

    @Transactional
    @Override
    public boolean modifyUserInfo(UpdateDTO updateDTO) {
        if (StringUtils.isNotBlank(updateDTO.getUserId())) {
            try {

                int effectedNum = usersMapper.modifyUserInfo(updateDTO);
                if (effectedNum > 0) {
                    return true;
                } else {
                    throw new RuntimeException("用户信息修改失败!");
                }
            } catch (Exception e) {
                throw new RuntimeException("修改用户信息失败:" + e.toString());
            }
        }else{
            throw new RuntimeException("Id不能为空!");
        }
    }

注:我们这里调用了updateDTO中的get方法获取UserId,虽然我们DTO中没有写方法,但我们的注解会帮助我们自动生成。

接着我们要在mapper层写接口:

?最后就是在xml文件中来操作我们的数据库完成修改:

?

  <update id="modifyUserInfo" parameterType="com.imooc.vo.UsersVO">
    update users
    <set>
      <if test="nickname != null">nickname= #{nickname},</if>
      <if test="mobile != null">mobile = #{mobile},</if>
    </set>
    where id=#{userId}
  </update>

接着重启类:

然后在接口文档中修改:

?

?在navicat中查看:

?修改成功。

?

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-10-22 21:22:24  更:2022-10-22 21:26:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年3日历 -2025/3/4 6:14:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码