项目debug,是否真的要被淘汰了?总结下debug的用法

1、项目遇到的问题

讲讲在Java项目下的debug,起因是在项目中遇到一个问题,在接口写完之后,以及controller层代码都已经写完,使用postman调试路径,获取返回数据,发现咋缺失了一个字段。

思考了一下,看着没问题啊,咋会发生这个问题呢,思考了很久,还是叫来了同事,同事使用他的debug,三下两下解决了问题,还是我看代码不仔细啊。

问题复现:

在这里插入图片描述
而返回的类数据为:
在这里插入图片描述

代码逻辑是,从数据库查询出来数据,然后返回QiScoreCriteriaDTO类型数据,发在QiScoreCriteriaDTO类中,levelName和sql中的level_name是无法对应起来的,导致查询的数据为null。

解决方法:

在这里插入图片描述

或者使用resultMap,建立映射,返回接口数据:
在这里插入图片描述

里面的property是对应到相应的sql字段中,以后在实际mybatis的xml文件中,可以直接使用resultMap,做映射文件。

这是其中一个问题,这次主要的一次认识,我还是得学下Java项目中的debug,这块是挺重要的,之前我一直是这样解决问题的:

System.out.print("---->" + 具体的变量);

这样解决问题也可以,不过有时定位问题还是有些难度,还是需要学会debug。

2、IDEA使用debug

bug起源于一位叫葛丽丝霍波的工程师,有一天在调试设备的时候出现故障,拆开电器后,发现有只飞蛾被压扁在触点中间,卡住了机器的运行,因此他就把这个程序故障,成为bug(臭虫),把排除程序故障叫DEBUG。

  1. 比较原始的是使用:

    System.out.print("---->" + 具体的变量);
    
  2. 使用IDEA中自带的debug

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传在这里插入图片描述

启动项目后,不使用run,而是用debug形式启动项目,有需要的时候,在其中加断点。

在debug模式启动,如果无法运行,但run形式可以运行,此使需要查找下,是不是因为有方块断点的原因导致的无法debug,这是我在工作中遇到的。

在这里插入图片描述

这是以debug调试模式启动的项目

在这里插入图片描述

不加断点会像run模式一样执行,如果加了断点,就会如下运行:
在这里插入图片描述

可以看到具体的执行断点,打断点的具体程序信息。

如果想要看到变量的具体值,可以使用Evaluate Expression(Ctrl+F8)查看到具体值。

在这里插入图片描述

在项目中多使用几次debug就熟悉了。

3、IDEA中debug快捷键

附上一份debug快捷键表:

Win 快捷键介绍
F7进入下一步,如果当前断点是一个方法,则进入方法体内,如果该方法体还有方法,则不会进入该内嵌的方法中**(必备)**
F8进入下一步,如果当前那行断点是一个方法,则不进入当前方法体内**(必备)**
F9恢复程序运行,如果下面还有一个断点,则停在下一个断点**(必备)**
ALT+F8选中对象,弹出可输入计算表达式调试框,查看该输入内容的调试结果**(必备)**
CTRL+F8设置光标当前行为断点,如果是断点则去掉断点
SHIFT+F7智能步入,断点所在行有多个方法调用,会弹出进入哪个方法
SHIFT+F8跳出,效果和F9一样
CTRL+SHIFT+F8指定断点进入条件
ALT+SHIFT+F7进入下一步,如果当前行断点是一个方法,则进入当前方法体内,如果方法体还有方法,则会进入该内嵌的方法中,依此循环进入
ALT+SHIFT+F8返回上一步

关注我的公众号: 我只是个码字的,一起学习计算机编程知识。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值