笔记

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返回给前端

后续请看下节课程!

小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_5-8.用户模块开发之保存微信用户信息的更多相关文章

  1. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_3-2.使用Mybatis注解开发视频列表增删改查

    笔记 2.使用Mybatis注解开发视频列表增删改查     讲解:使用Mybatis3.x注解方式 增删改查实操, 控制台打印sql语句              1.控制台打印sql语句      ...

  2. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_汇总

    2018年Spring Boot 2.x整合微信支付在线教育网站高级项目实战视频课程 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_1-1.SpringBoot整合微信支付开发在 ...

  3. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_1-1.SpringBoot整合微信支付开发在线教育视频站点介绍

    笔记 第一章项目介绍和前期准备 1.SpringBoot整合微信支付开发在线教育视频站点介绍     简介: 课程介绍,和小D课堂在线教育项目搭建开发 1.课程大纲介绍         2.微信支付项 ...

  4. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_5-1.数据信息安全--微信授权一键登录功能介绍

    笔记 1.数据信息安全--微信授权一键登录功能介绍 简介:讲解登录方式优缺点和微信授权一键登录功能介绍         1.手机号或者邮箱注册             优点:              ...

  5. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_5-7.授权登录获取微信用户个人信息实战

    笔记 7.授权登录获取微信用户个人信息实战         简介:讲解使用授权码code获取用户个人信息接口 关键点:看微信文档,字段尽量用拷贝 1.通过code获取access_token      ...

  6. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_5-6.微信扫码登录回调本地域名映射工具Ngrock

    笔记 6.微信扫码登录回调本地域名映射工具Ngrock         简介:讲解微信扫码回调本地域名ngrock讲解 1.为什么要用这个,微信扫码需要配置回调,需要配置对应的域名          ...

  7. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_2-7.接口配置文件自动映射到属性和实体类配置

    笔记 7.接口配置文件自动映射到属性和实体类配置     简介:使用@value注解配置文件自动映射到属性和实体类 1.添加 @Component或者Configuration 注解:        ...

  8. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_6-2.申请微信支付介绍和不同场景的支付方式

    笔记 2.申请微信支付介绍和不同场景的支付方式         简介:介绍微信商户平台,支付方式和使用场景,申请微信支付流程                  1.什么是微信商户平台:        ...

  9. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_6-3.微信网站扫码支付介绍

    笔记 3.微信网站扫码支付介绍     简介:讲解微信网页扫码支付         1.扫码支付文档:https://pay.weixin.qq.com/wiki/doc/api/native.php ...

随机推荐

  1. TLV320AIC3268寄存器读写

    该芯片支持I2C和SPI读写寄存器,本人用的是SPI1接口. 以下是对手册中SPI接口读写寄存器相关内容的翻译(英文版可以看手册的94页~) 在SPI控制模式下,TLV320AIC3268使用SCL_ ...

  2. 002.MVC开发方法和步骤--用一个简单的加法程序来演示

    MVC的工作原理: 注:ASP.NET MVC中的url 特殊:构成 http//....../控制器名/方法名 默认: 1.Url请求直接来到Controller中 2.Controller从Mod ...

  3. Redis5.0.3单机版安装

    一.创建redis源码包存放目录 cd /usr/local/ mkdir redis 二.进入创建的目录,下载最新版Redis yum -y install wget wget http://dow ...

  4. PAT Basic 1059 C语言竞赛 (20 分)

    C 语言竞赛是浙江大学计算机学院主持的一个欢乐的竞赛.既然竞赛主旨是为了好玩,颁奖规则也就制定得很滑稽: 0.冠军将赢得一份“神秘大奖”(比如很巨大的一本学生研究论文集……). 1.排名为素数的学生将 ...

  5. python -m pip install [package] --no-deps

    python -m pip install [package]  --no-deps 有些 packages 会依赖一些其它的 package,当我们离线安装 whl 的时候,就无法联网下载依赖包,所 ...

  6. redis常见问题(转)

    常见问题:1.为什么使用redis(一)性能我们在碰到需要执行耗时特别久,且结果不频繁变动的SQL,就特别适合将运行结果放入缓存.这样,后面的请求就去缓存中读取,使得请求能够迅速响应.(二)并发在大并 ...

  7. 4、docker镜像:花卷结构、commit镜像

    1.是什么 docker images 镜像是一种轻量级.可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码.运行时.库.环境变量和配置文件. ...

  8. .net core 自动注入。。。。懵逼。。

    using Microsoft.AspNetCore.Http; using System.Globalization; using System.Threading.Tasks; namespace ...

  9. removeClass([class|fn])

    removeClass([class|fn]) 概述 从所有匹配的元素中删除全部或者指定的类.直线电机生产厂家   参数 classStringV1.0 一个或多个要删除的CSS类名,请用空格分开 f ...

  10. 透彻tarjan

    tarjan 求强连通分量: #include<cstdio> #include<iostream> #include<cstdlib> #define N 100 ...