您当前的位置: 首页 >> 资讯 >  >> 
我的第一个项目(十五) :完成数据保存功能(后端,改update)
来源:博客园      时间:2023-06-03 00:01:45


(资料图片)

好家伙,

代码已开源(Gitee)

PH-planewar: 个人开发的全栈小游戏 前端:vue2 + element-ui 后端: Springboot + mybatis-plus 数据库: mysql 目前实现功能: 1.注册登陆 2.游戏数据保存 3.游戏运行 (gitee.com)

后端这边update方法改了一下

controller类:

package com.wulaoda.loginhouduan.controller;import com.wulaoda.loginhouduan.entity.SysUserEntity;import com.wulaoda.loginhouduan.req.SysUserLoginReq;import com.wulaoda.loginhouduan.req.SysUserSaveReq;import com.wulaoda.loginhouduan.req.SysUserUpdateReq;import com.wulaoda.loginhouduan.resp.CommonResp;import com.wulaoda.loginhouduan.resp.SysUserLoginResp;import com.wulaoda.loginhouduan.service.SysUserService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.util.DigestUtils;import org.springframework.web.bind.annotation.*;@RestController//绑定数据库表名@RequestMapping("/sys-user")public class SysUserController {    @Autowired    private SysUserService sysUserService;    @PostMapping("register")//    zxcv1234    //@RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的);    public CommonResp register(@RequestBody  SysUserSaveReq req){        //对密码进行md5加密        req.setPassword(DigestUtils.md5DigestAsHex(req.getPassword().getBytes()));        //resp为返回数据        CommonResp resp = new CommonResp<>();        //真正的注册        SysUserEntity saveResp = sysUserService.register(req);        if(saveResp ==null){            resp.setSuccess(false);        }        return resp;    }    @PostMapping("login")    public CommonResp login(@RequestBody SysUserLoginReq req){//        zxcv1234        req.setPassword(DigestUtils.md5DigestAsHex(req.getPassword().getBytes()));        CommonResp resp = new CommonResp<>();        SysUserLoginResp loginResp = sysUserService.login(req);        if (loginResp == null) {            resp.setSuccess(false);        }        resp.setContent(loginResp);        return resp;    }    @PostMapping("update")    public CommonResp update(@RequestBody SysUserUpdateReq req){        CommonResp resp = new CommonResp<>();        sysUserService.update(req);        return resp;    }    @GetMapping("getallscore")    public CommonResp getallscore(){        CommonResp resp = new CommonResp<>();        sysUserService.getallscore();        return resp;    }}

service类

package com.wulaoda.loginhouduan.service.impl;import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;import com.wulaoda.loginhouduan.entity.SysUserEntity;import com.wulaoda.loginhouduan.mapper.SysUserMapper;import com.wulaoda.loginhouduan.req.SysUserLoginReq;import com.wulaoda.loginhouduan.req.SysUserSaveReq;import com.wulaoda.loginhouduan.req.SysUserUpdateReq;import com.wulaoda.loginhouduan.resp.SysUserLoginResp;import com.wulaoda.loginhouduan.resp.SysUserUpdateResp;import com.wulaoda.loginhouduan.service.SysUserService;import com.wulaoda.loginhouduan.utils.CopyUtil;import com.wulaoda.loginhouduan.utils.SnowFlake;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import org.springframework.util.CollectionUtils;import org.springframework.util.ObjectUtils;import javax.annotation.Resource;import java.util.List;@Service//implements表示接口的实现,必须实现接口中的所有方法//此处继承SysUserService的方法并改写public class SysUserServiceImpl extends ServiceImpl implements SysUserService {    @Resource    @Autowired    private SysUserMapper sysUserMapper;    @Autowired    private SnowFlake snowFlake;//注册    @Override    public SysUserEntity register(SysUserSaveReq req) {        //        SysUserEntity user = CopyUtil.copy(req, SysUserEntity.class);        //ObjectUtils.isEmpty判断对象是否为空        if(ObjectUtils.isEmpty(req.getId())){            //查看用户名是否已注册            SysUserEntity userDb = selectByLoginName(req.getLoginName());            //用户名未被注册            if(ObjectUtils.isEmpty(userDb)){                //用算法给帮它设置一个新id                user.setId(snowFlake.nextId());                //这步是真正的往数据库里插数据了                sysUserMapper.insert(user);                //哈哈,没东西返回了            }else{                //用户名已被注册,返回null                return null;            }        }        //无用返回        return user;    }//登陆    @Override    public SysUserLoginResp login(SysUserLoginReq req) {        SysUserEntity userDb = selectByLoginName(req.getLoginName());        QueryWrapper wrapper = new QueryWrapper<>();        if(ObjectUtils.isEmpty(userDb)){            //用户不存在            return null;        }else {            String s1 = userDb.getPassword();            String s2 = req.getPassword();            //进行字符串校验            if(s1.equals(s2)){                //密码验证成功                int a = userDb.getLife();                SysUserLoginResp userLoginResp = CopyUtil.copy(userDb, SysUserLoginResp.class);                return userLoginResp;            }else {                //密码校验失败                return null;            }        }    }//数据更新    @Override    public SysUserUpdateResp update(SysUserUpdateReq req){//        SysUserEntity userDb = selectByLoginName(req.getLoginName());//        QueryWrapper wrapper = new QueryWrapper<>();//        LambdaUpdateWrapper wrapper1 = new LambdaUpdateWrapper<>();//        wrapper1.set(SysUserEntity::getLife, req.getLife());//        sysUserMapper.update(userDb,wrapper1);          //重写          //网上的例子//        LambdaUpdateWrapper lambdaUpdateWrapper = new LambdaUpdateWrapper<>();//        lambdaUpdateWrapper.eq(User::getName, "rhb").set(User::getAge, 18);//        Integer rows = userMapper.update(null, lambdaUpdateWrapper);        //以下版本只能修改单项数据//          LambdaUpdateWrapper wrapper1 = new LambdaUpdateWrapper<>();//          wrapper1.eq(SysUserEntity::getLoginName, req.getLoginName()).set(SysUserEntity::getLife, req.getLife());//          sysUserMapper.update(null,wrapper1);        LambdaUpdateWrapper wrapper1 = new LambdaUpdateWrapper<>();        wrapper1.eq(SysUserEntity::getLoginName, req.getLoginName()).set(SysUserEntity::getLife, req.getLife());        wrapper1.eq(SysUserEntity::getLoginName, req.getLoginName()).set(SysUserEntity::getScore, req.getScore());        sysUserMapper.update(null,wrapper1);          return null;    }//获取所有分数getallscore//    @Override//    public void getallscore(){//        // 查询多个字段,其它不需要查询的字段则为null////        List objects = sysUserMapper.selectObjs(new QueryWrapper()////                .lambda().select(SysUserEntity::getLoginName, SysUserEntity::getScore));//        // 查询单个字段////        List strings = adminService.listObjs(new QueryWrapper()////                .lambda().select(Admin::getAdminMobile), Object::toString);//// 查询多个字段,其它不需要查询的字段则为null////        QueryWrapper userQueryWrapper = Wrappers.query();////////        userQueryWrapper.select(SysUserLoginResp.class , e -> !e.getColumn().equals("loginName")).lt("score" , 50);////        List userList = sysUserMapper.selectList(userQueryWrapper);////        userList.forEach(System.out::println);//////        return (SysUserLoginResp) userList;////        return null;////        QueryWrapper userQueryWrapper = new QueryWrapper<>();//        userQueryWrapper.select(SysUserLoginResp.class , e->!e.getColumn().equals("password"))//                .like("username" , "k")//                .between("age" , 25 , 35)//                .isNotNull("password");//        List userList = sysUserMapper.selectList(userQueryWrapper);//        userList.forEach(System.out::println);//    }    //查询loginName是否被注册    public SysUserEntity selectByLoginName(String loginName){        //QueryWrapper<>()        QueryWrapper wrapper = new QueryWrapper<>();        //wrapper.lambda().eq()单表查询,在"SysUserEntity::getLoginName"找一个指定的"loginName"        wrapper.lambda().eq(SysUserEntity::getLoginName,loginName);        //BaseMapper的selectList()方法,根据id批量查询        List userEntityList = sysUserMapper.selectList(wrapper);        //CollectionUtils.isEmpty()判断集合是否为空        if(CollectionUtils.isEmpty(userEntityList)){            //若判断为空,则返回null,意思是没被注册过            return  null;        }else {            //查到了,将这条数据返回            return userEntityList.get(0);        }    }}

对象实体类:

package com.wulaoda.loginhouduan.resp;public class SysUserUpdateResp {    private String LoginName;    private int life;    private int score;    public String getLoginName() {        return LoginName;    }    public void setLoginName(String loginName) {        LoginName = loginName;    }    public int getLife() {        return life;    }    public void setLife(int life) {        this.life = life;    }    public int getScore() {        return score;    }    public void setScore(int score) {        this.score = score;    }    @Override    public String toString() {        return "SysUserUpdateReq{" +                "LoginName="" + LoginName + "\"" +                ", life=" + life +                ", score=" + score +                "}";    }}
标签:
  • 知识导航 踩到狗屎什么意思

    踩到狗屎即狗屎运,在中国旧社会时期,农村化肥少,大都是用粪便发酵后做肥料的。但是人的粪便往往不足,所以就有了一种现象,就是早上起来

    来源:      时间:2022-12-17
  • 经验分享 车险都有哪些公司

    车险公司有平安汽车保险、中国人保汽车保险、太平洋汽车保险、中华联合汽车保险等。购买车险的最终目的是为自己的爱车提供一份保障,车主应

    来源:      时间:2022-12-17
  • 经验知识 同济大学在哪

    同济大学校区,地址如下:1、杨浦校区:上海市杨浦区四平路1239号;2、嘉定校区:上海市嘉定区曹安公路4800号;3、沪西校区:上海市普陀区真南路5

    来源:      时间:2022-12-17
  • 知识分享 和弦转换怎么练

    想要在和弦上转换自如,爬格子和音阶可以说是必经的过程。开始练习时,不用把整个和弦去按好,对初学者来说,可以先从低音部分的弦开始练习

    来源:      时间:2022-12-17
  • 讲解百科 螨虫是什么

    螨虫是一种常见的微生物可以正常的在人体的皮肤上寄生,也是属于寄生虫的一种,大多数情况下只要皮肤的屏障没有受到破坏,寄生在皮肤上的螨

    来源:      时间:2022-12-17
  • 科普知识 中考多少分能上高中

    1、中考录取分数线要取决于当地中考试题的难易程度,还是所在地区,一般来说中考最低录取分数线大概在四百分左右,有的偏远地区也可能是三

    来源:      时间:2022-12-17
  • 知识库 中国春节传统习俗

    最佳答案买年货、扫尘、贴对联、吃年夜饭、守岁、拜岁、拜年、舞龙舞狮、拜神祭祖、祈福攘灾、游神、押舟、庙会、游锣鼓、游标旗、上灯酒、

    来源:      时间:2022-12-17
  • 知识大全 骄傲有几种意思

    骄傲。解释:骄指马背拱起,不让陌生人骑。傲指人昂首抬头的样子,引申指居高临下的态度。拼音:jiāo &agrave;o。词性:形容词、中性词。

    来源:      时间:2022-12-17
  • 知识领域 守株待兔说明了一个什么道理

    1、守株待兔比喻不主动努力,而存在侥幸的心理,希望得到意外收获,主要说明的人生道理是只有通过辛勤劳动,才能有所收获,否则终将一无所

    来源:      时间:2022-12-17
  • 知识探索 求穿越到射雕的小说

    1、《射雕之横剑》,作者:半张卡片。2、《射雕之陆冠英传》,作者:胖子金。3、《射雕之我是小人物》,作者:昨夜小楼东风。4、《射雕之轩

    来源:      时间:2022-12-17

X 关闭

X 关闭

Copyright ©  2015-2022 亚洲手机网版权所有  备案号:京ICP备2021034106号-51   联系邮箱:5 516 538 @qq.com