工作中的Bug:import sun.misc.BASE64Encoder和数据库int类型,第一个数字不能为0

一、功能测试:

测试已开发功能的完整性:
线上服务器测试:将开发好的项目部署到公司购买的服务器上,通过网址访问
线下项目测试:使用开发工具运行项目,通过本地浏览器打开,
测试线下测试的优点:
1.功能报错,可以直接查看后台报什么错误,方便查找更改
2.开发人员解决bug,将代码提交至Git上,测试人员可以及时git代码,及时回归测试
但是,项目终究是要给外人用的,他们只能通过外网访问,而线下没问题,不代表线上也没问题,所以线上测试才是必要的。

谷歌浏览器:
1. 使用谷歌浏览器登录项目
2. 新增用户
3. 资料填写完毕后,点击提交
4. 系统报错:
工作中的Bug:import sun.misc.BASE64Encoder和数据库int类型,第一个数字不能为0bug解决
1.因为是线上服务器测试,所以无法通过后端报错,查找是哪里的代码问题
2.通过线上浏览器的开发工具来寻找问题
3.谷歌和火狐等浏览器,都内部嵌套了调试工具(就好比微信的开发者工具一样,浏览器是基于PC端的)
按F12,查看Network页签,Network页签一般展示的是后端问题:
工作中的Bug:import sun.misc.BASE64Encoder和数据库int类型,第一个数字不能为0
4.因为是新增,所以方法名使用的是add,如果是后端问题,这里add会报红
5.点击add,便会出现后端该方法的路径,我们可以根据该路径找到该方法,审核代码。
工作中的Bug:import sun.misc.BASE64Encoder和数据库int类型,第一个数字不能为0
6.因为这里并非后端问题,所以Status Code 是绿色,并且显示200;404,500等都是这样的错误;
关于Network页签的详细,可查看:
https://blog.****.net/angboom/article/details/107729880
6.1.如果是后端问题,我们复制文件路径,打开开发工具,以Idea为例:
6.2.点击Ctrl+Shift+R,全局搜索,输入路径;
工作中的Bug:import sun.misc.BASE64Encoder和数据库int类型,第一个数字不能为0
6.3.Ctrl+f,当前页面搜索,前端也是如此。
7.不是后端问题,就查看前端Console控制台,Console控制台可查看后端通过前端传递的参数,从数据库中返回给前端的数据
8.也就是说,我们可以通过Console控制台查看,前端是不是把该给的参数给到位了,后端是不是把该返回的数据,返回到了
9.就这么简单,但是Console控制台和Network页签作为谷歌开发的工具还有很多功能这里我就不一一赘述了,只是通过自己一次改Bug的经历,希望给萌新们指条小路
10.Console控制台详细: https://blog.****.net/pinbolei/article/details/83541630

https://www.html.cn/doc/chrome-devtools/console/
工作中的Bug:import sun.misc.BASE64Encoder和数据库int类型,第一个数字不能为0
11.既然不是前端和后端的问题,那就是数据库了
工作中的Bug:import sun.misc.BASE64Encoder和数据库int类型,第一个数字不能为0
12.当我输入0 的时候,系统报错不能为null,打开数据库找到用户存储表,点击鼠标右键,选择设计表,查看里面签约年费的属性
工作中的Bug:import sun.misc.BASE64Encoder和数据库int类型,第一个数字不能为0
13.百度一下int在数据库红属性可能为0.(度娘还是可以的): https://zhidao.baidu.com/question/1893724281876080420.html
工作中的Bug:import sun.misc.BASE64Encoder和数据库int类型,第一个数字不能为0
14.答案呼之欲出,int类型,不能为0,所以,年费输入0 的时候,报错。

import sun.misc.BASE64Encoder报错
今天导入一个新项目,运行的时候,报了一个错: import sun.misc.BASE64Encoder报红。
BASE64是JDK内置的加密功能,属于JDK1.8,但是新版JDK觉的该功能不好,所以新发布的JDK版本不支持,而是提供了新的加密功能: java.util.Base64.Decoder
https://docs.oracle.com/javase/9/docs/api/java/util/Base64.Decoder.html

java.util.Base64.Encoder
https://docs.oracle.com/javase/9/docs/api/java/util/Base64.Encoder.html
可以将原先的加密方法改成新的,具体如下:
https://blog.****.net/qq_40600414/article/details/107786711

如果是公司项目,自会有项目经理来解决,如果没解决,那么就不建议更替,不然更新代码的时候,可能会影响整个项目,那就只能将JDK降级到1.8,就ok了。
工作中的Bug:import sun.misc.BASE64Encoder和数据库int类型,第一个数字不能为0
工作中的Bug:import sun.misc.BASE64Encoder和数据库int类型,第一个数字不能为0