zoukankan      html  css  js  c++  java
  • 小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返回给前端

    后续请看下节课程!




     

  • 相关阅读:
    16.14
    16.13
    JAVA JLabel自定义子类无法显示
    16.12
    16.11
    css实现垂直居中
    HTML5学习笔记
    HTML、Css中插入图片的一些问题
    MySQL的if函数
    java实现将汉字转为首字母、拼音
  • 原文地址:https://www.cnblogs.com/wangjunwei/p/11486051.html
Copyright © 2011-2022 走看看