概述
仿抖音项目持续更新中:
仿抖音短视频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中查看:
修改成功。
最后
以上就是拼搏泥猴桃为你收集整理的仿抖音短视频用户业务模块----完成用户信息增删改查并通过接口文档联调(模拟工作环境)1.根据nickname或者mobile来查询用户信息 2.根据用户id删除用户信息3.根据用户id修改用户信息的全部内容,希望文章能够帮你解决仿抖音短视频用户业务模块----完成用户信息增删改查并通过接口文档联调(模拟工作环境)1.根据nickname或者mobile来查询用户信息 2.根据用户id删除用户信息3.根据用户id修改用户信息所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复