仿抖音项目持续更新中:
仿抖音短视频APP专栏
练习:
目录
1.根据nickname或者mobile来查询用户信息
2.根据用户id删除用户信息
3.根据用户id修改用户信息
1.根据nickname或者mobile来查询用户信息
首先在controller层中,写一个路由地址,这里我们的用户信息用列表返回。
注:我们这里传参是DTO,这里我在model层重写了一个类来存放nickname和mobile,
接着在我们的service接口中写方法:
在实现类中调用mapper层的接口:
在mapper接口中:
最后就需要在我们的xml文件里来操作数据库查询用户信息:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15<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接口:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20@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标签,应该直接:
1
2
3
4
5
6
7<delete id="deleteUser" > DELETE FROM users WHERE id =#{userId} </delete>
重启,打开我们的接口文档:
打开navicat检查:
删除成功。
3.根据用户id修改用户信息
首先在controller层中,用Map接受返回的键和值
这里Uptate我写了一个类来传入我们需要修改的信息:
接着在service接口:
在service实现类中:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20@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文件中来操作我们的数据库完成修改:
1
2
3
4
5
6
7
8
9<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中查看:
修改成功。
最后
以上就是拼搏泥猴桃最近收集整理的关于仿抖音短视频用户业务模块----完成用户信息增删改查并通过接口文档联调(模拟工作环境)1.根据nickname或者mobile来查询用户信息 2.根据用户id删除用户信息3.根据用户id修改用户信息的全部内容,更多相关仿抖音短视频用户业务模块----完成用户信息增删改查并通过接口文档联调(模拟工作环境)1内容请搜索靠谱客的其他文章。
发表评论 取消回复