小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_5-8.用户模块开发之保存微信用户信息
笔记
8、用户模块开发之保存微信用户信息
简介:开发User数据访问层,保存微信用户信息
问题:
微信回调 用户昵称乱码
解决:
nickname = new String(nickname.getBytes("ISO-8859-1"), "UTF-8");
1、封装User对象
2、插入数据库
获取openid后,查询是否有此用户,如果有则不发请求去获取用户信息
方法:保存用户,根据id查询用户,根据openid查询用户
3、mybatis参数注意
取值用 #{} ,别用${},因为存在sql注入风险
开始
sex是double类型的。nickName乱码
中文的转码,try catch一下
nickName进行转码
sex先用Double类型去接收,然后再转换成int类型
运行程序进行测试
封装user,保存用户信息
创建UserMapper
复制过来的就是insert的sql语句
这里根据openId去查询,如果查询到了的话,那么直接返回这个user对象,因为从第一次用户扫描登陆后,一般很少去修改用户的信息了。 这里直接根据openid去本地的数据库内查询就可以了。
保存数据后。拿到主键的信息
启动应用测试。扫码登陆
保存之前用户的id为null
保存之后id有了值
看下数据库内 ,数据已经保存进来了
剩下一个小问题 城市和省份是中文的问题
看文档。这里需要一个lang参数
地址后面加上中文的参数
再次测试,需要把刚才数据库那条记录删除掉。断点到这里
把拼接万的字符串 最后进行转码
把刚才那条数据也删除掉。因为也是乱码的
再次测试
转换之前还是乱码
转换之后了。变成中文了。
把头像地址复制出来测试
再测试一遍。用户已经保存了 还会不会再保存一遍。进入断点,一步步往下走
根据openId找到数据库内已经存在的数据
这样用户User对象不为null 我们就可以生成jwt返回给前端
后续请看下节课程!