海航项目知识点

本文总结了Web开发中的调试技巧,包括使用F12开发者工具、全局搜索快捷键、查看请求响应和数据筛选。同时,文章介绍了数据库操作,如MySQL排序、获取表的主键和外键信息,以及数据的分页查询。此外,还分享了前端JS操作、版本控制、IDEA使用心得和SQL查询注意事项,为开发者提供实用的开发辅助方法。
摘要由CSDN通过智能技术生成

(1)

全局搜索快捷键

Ctrl+Shift+F

 

(2)

通过后台全部查询,再交由前端进行筛选记录

 

(3)

使用F12的好处可以直接获得请求与相应,F5开始记录

然后选择NetWork ->>XHR。这种方式比直接找页面然后再找

按钮方便多了,而且很清晰的看到前后端传递的数据。如果是修改

页面样式,直接对比即可

 

(4)

后台获取数据后,前端进行筛选 ,但怎么知道是哪个js在起作用

很简单,在NetWork查看Initlator可以知道这个页面那个js在用

 

(5)

如果是页面布局改了还是不行,那就改一下版本号

 

(6)

Mysql将查询的数据按照首字母进行排序

https://blog.csdn.net/qasxcvgh/article/details/54946632

 

(7)

两种获取MySql数据库中所有表的主键和外键约束信息的Sql语句

https://www.cnblogs.com/PatrickLiu/p/6269145.html

 

(8)

对于添加“请选择”下拉框,很可能是在js那里又重复使用了pageHolder参数,将它注释掉即可

 

(9)

使用Alt+ctrl+H可以查看当前方法被哪些控制层所调用,再决定是否需要另写一个方法

 

(10)

对于sql排序,可能一个字段有重复,可以用多个字段来联合排序。如果能直接使用现成的字段,就不需要在实体中加入新的字段了

 

(11)

对于F12,如果是href,那么跳转的就是jsp.如果是network,那么就是controller路径

 

(12)

左下角的Version Control可以有回退或者对比改之前的代码,非常便捷。如果不需要提交的

代码可以另存到一个文件夹里面即可

 

(13)

对于同一个方法,很可能是不同的service在进行调用,所以最为保险的方法就是

先进入service层里面详细查看,然后再找对应的Dao层,再查看对应的xml文件。其他同理

因为大项目很多会选择继承基类,然后再重写里面的方法,这样可以节省很多空间

 

(14)

如果在version Control里面提交不了,只需要在项目文件夹进行update+clean up操作即可提交

 

(15)

对于修改获取的数据,只需要在js修改名称即可。关键是要查看响应到哪些参数

 

(16)limit是mysql的语法

select * from table limit m,n

其中m是指记录开始的index,从0开始,表示第一条记录

n是指从第m+1条开始,取n条。

select * from tablename limit 2,4

即取出第3条至第6条,4条记录

这个limit和Page<CargoInfoImport> page = PageHelper.offsetPage(cargoInfoImport.getStart(), cargoInfoImport.getLength());

是一样功能的,所以在mybaties不需要在sql加上limit

 

(17)

在button后面加入display:inline,可以使属性内联。即按钮间可以

在同一行

<button οnclick="showAddStockWindow()" type="button" class="btn btn-sm btn-primary" style="display:inline">入库</button >

<button οnclick="showAddAssignWindow()" type="button" class="btn btn-sm btn-primary" style="display:inline">分配</button></div>

 

(18)

怎么样在第一次初始化页面的时候就触发JS中函数

body οnlοad="javascript:XXX()" XXX是你的函数名称

 

(19)

如果觉得哪部分查找起来很麻烦,可以使用全局变量来查找当前页面的特征关键字,很方便

 

(20)

function initData(){

var getAllOrgUrl = global.rootPath + '/auth/system/sysOrg/usedOrg';

global.asyncGet(getAllOrgUrl, function(res){

var orgData = $.map(res, function (obj) {

obj.text = obj.text || obj.name;

return obj;

});

$("#serach_usedUnit").select2({

data: orgData,

//placeholder: '请选择',

width: '100%'

});

});

}

添加请选择按钮需要两个要素:第一个是获取下拉列表名称,还有一个就是响应的url路径

整个过程就是:保存数据在一个ajax中,然后传到一个URL里面,再通过controller里面进行查询

 

(21)

对于某些请选择比较复杂,可以用如下代码来进行消除。类似层叠消融的原理

$("#cnvcaddress").select2({

placeholder: '请选择',

width: '100%'

});

也可以直接在对应的jsp页面删除option

 

(22)

如果前端请求的数据需要从数据库获取,那么通过ajax发送。如果不需要

,直接是option列举出来即可

 

(23)

idea里面的maven可以快速整合tomcat服务器,只需要点击maven project->plugins->tomcat7即可

 

(24)

debug主要是F7,F8用的比较多。F7是单步调试,如果有方法,就会进入。F8也是单步调试,不会进入所在行的方法

 

(25)

按一下F12,你的浏览器底部将会显示这个窗口 请选择console,这里是控制台输出窗口,在这里你可以直接写JS代码,然后回车,你的代码会马上执行

 

(26)

有时候改需求,很可能在业务层稍微改动就可以把问题解决

 

(27)

数据库中as关键字,前面是当前字段,后面是显示的名称

choose是列表中选择其中一项

左联,新增的数据在左表,on后面填的是两表关联的字段。

SELECT

a.id AS "id",

a.name AS "name",

a.enname AS "enname",

a.belongcity AS "belongcity",

a.provilegecities AS "provilegecities",

a.comments AS "comments",

a.type AS "type",

a.parentId AS "parentId",

city.cnvcCityCode

FROM sys_org a

left JOIN base_city city ON a.belongCity = city.id

-- WHERE a.type != '1'

ORDER BY a.id

 

(28)

$('#payment').not('#666').modal('show'); jquery加个not可以排除某个元素

 

(29)

mybatis是可以返回map的,关键返回的类型由谁存储,一般交由list存储

 

(30)

debug模式下,选中某个部分,按F8+ALT,可以查看当前变量

 

(31)

List可以装Map集合

 

(32)

String str=StringUtils.join(baseCityDao.getCityCode(),",");

可以将List集合里面的内容全部转为字符串

 

(33)

搜技术性问题,先百度,如果查不到,再进行谷歌搜索

 

(34)

在Mybatis里面的sql语句如果涉及到参数,需要进行debug模式,将参数一一代入

 

(35)

如果sql里面的参数涉及日期类和字符串,或者遇到不能查同一天的时间段时,很可能是日期格式不对,需要对传入的参数和数据库本身的数据进行

数据格式处理,例子如下

<if test="writeOffStartDate!=null and writeOffStartDate!=''">

AND date_format(a.writeOffDate,'%Y-%m-%d') >= date_format(#{writeOffStartDate},'%Y-%m-%d')

</if>

<if test="writeOffEndDate!=null and writeOffEndDate!=''">

AND date_format(a.writeOffDate,'%Y-%m-%d') &lt;= date_format(#{writeOffEndDate},'%Y-%m-%d')

</if>

 

(36)

Navicat里面的美化sql很好用

 

(37)

sql里面的记录是有分页的,找不到的数据可能在下一页

 

(38)

顺着debug往下走,理清每个值,传递的参数分别是什么,答案就很简单了

 

(39)

如果一个值需要匹配另外一个值,可以将list进行遍历,然后

将List的各个值存到map中,然后再进行比对

 

(40)

jQuery removeAttr() ,removeAttr() 方法从被选元素移除一个或多个属性。

用法如下:

$("button").click(function(){

$("p").removeAttr("style");

});

那么JQuery attr就和上面的方法相反了,attr()是增加一个属性,例子如下

$("#comm").attr("required", "required");

 

(41)

Jquery里的html方法,是为文本写进内容,例子如下

$("#write").html("本次分配票数 加 代理库存票数大于 协议票数"+temp+"票");

 

(42)

http://www.ip138.com/ 可以查看目前ip地址所在区域

 

(43)

siCarrierAccountingCollectSearchDTOList = baseAgentService.getSiCarrierAccountingCollectSearchDTOPage(vo);

List<SysOrg> sysOrgList = sysOrgService.findAll();

HashMap<Long,String> map=new HashMap();

for(int i=0;i<sysOrgList.size();i++){

map.put(sysOrgList.get(i).getId(),sysOrgList.get(i).getCnvcCityCode());

}

for(int i=0;i<siCarrierAccountingCollectSearchDTOList.size();i++){

for(int j=0;j<sysOrgList.size();j++) {

if (siCarrierAccountingCollectSearchDTOList.get(i).getSysOrgId() == sysOrgList.get(j).getId())

siCarrierAccountingCollectSearchDTOList.get(i).setSysOrgName(sysOrgList.get(j).getCnvcCityCode());

}

}

这是我自己写的代码,两点很关键,第一是要学会利用list,map集合应用到项目当中去。第二点是算法逻辑要清晰

 

(44)

前端调试的方法:在js页面处写上“debugger”,然后按F12,然后F10单步调试即可。只要鼠标

方法放到对应位置,就能对应查看数据的值

 

(45)

"fnRowCallback": function( nRow, aData, iDisplayIndex, iDisplayIndexFull ) {

debugger

if(iDisplayIndex == 0){

$(".dataTables_scrollFoot #sumamount").html(aData.amount);

}else {

var currentAmount = Number($("#sumamount").text());

$(".dataTables_scrollFoot #sumamount").html(currentAmount + Number(aData.amount));

}

return nRow;

用作统计作用

 

(46)

<if test="status != null and status != ''">

<choose>

<when test="status == '2'.toString()">

AND a.status = 0 OR a.status = 1

</when>

<when test="status == '1'.toString()">

AND a.status = 1

</when>

<otherwise>

AND a.status = 0

</otherwise>

</choose>

</if>

当需要对某个变量进行多种情况选择时,可以采用<choose><when><otherwise>搭配使用

需要注意的是,when 里面的不是sql语句,所以等于是==,而不是像sql语句的=

还有一点是字符串不仅仅是''加上就可以了,还需要toString()

 

(47)

PageHelper.offsetPage(impulseInfo.getStart(), impulseInfo.getLength());

这个分页插件是mybatis自带的,非常方便。是在该条语句的之后的第一条sql语句(起作用)给予limit 10

 

(48)

一般是先分好页&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值