-- repalce into 存在的话影响2行 (先删除再新增) 注意使用后replace into的前提 name列是唯一索引 unique btree索引
REPLACE INTO user(name) VALUES(6);
-- 关联更新
UPDATE users u INNER JOIN user_temp ut ON u.id=ut.id SET u.name=ut.name
-- 关联删除
DELETE rsh.* FROM report_site_month rsh LEFT JOIN site_relation sr ON rsh.relationid=sr.id WHERE sr.Source='3';
数据库弱关联关系的理解:
一般数据库建表时,比如一对多,多方表含有一方表的主键作为它的外键.但这种绑定关系在数据库最好不要绑定关联,这种就叫数据库的弱关联关系.这种方式建表的好处就是直接在数据库表里删数据时,不会级联删FIND_IN_SET和IN的区别使用:
<if test="mappingType= '-1'">AND FIND_IN_SET(sm.MappingType,'10,11')< /if> //这里最好用in(10,11) in('10','11') in('10,11') 只会查到10的,即会丢数据
Mybatis in查询传入字符串参数问题
当传一个string, 无论参数名是啥,都要改成”_parameter”
-- 满足0, 4条件的是5192条,如果mapper.xml用#{source}就会只匹配满足0条件的记录数, 故改为 使用${source} 这里source是以map作为入参的 -- 当传一个string 不论你string的名字叫什么 0,4 mapper.xml里都必须是source in(${_parameter}) 这里string是以map作为入参的 SELECT COUNT(1) totalTimes FROM user_behave_log WHERE date BETWEEN '2017-10-01' AND '2018-01-01' AND source In('0,4')
mybatis调用函数
存储函数的参数列表只允许IN类型的参数 这里可以省略in 默认为IN类型 即roleId2 varchar(100)
存储函数返回一个单一的值,值的类型在存储方法的头部定义 返回str 在头部定义 DECLARE str varchar(1000) default '';存储函数不能返回结果集
SQL语句中不可用存储过程,而可以使用函数。
1、函数必须指定返回值,且参数默认为IN类型。
2、存储过程没返回值,参数可以是 IN,OUT,IN OUT类型,有的人可能会理解成OUT 也算是返回值。
3、调用方式:函数 select my_fun() ;过程 call my_pro( ) ;
<!-- 根据roleid获取id --> <select id="getIdsByRoleId" parameterType="String" resultType="String"> SELECT getRoleIdByParentRoleId(#{roleId}) </select>
BEGIN
DECLARE fid varchar(100) default '';DECLARE str varchar(1000) default '';
DECLARE roleid1 varchar(1000) default '';
SELECT id into roleid1 FROM `aspnet_roles` WHERE roleid=roleId2;
SET str=roleid1;
WHILE roleid1 is not null do
SET fid =(SELECT GROUP_CONCAT(id) FROM aspnet_roles WHERE FIND_IN_SET(parentid,roleid1));
IF fid is not null THEN
SET str = concat(str, ',', fid);
SET roleid1 = fid;
ELSE
SET roleid1 = fid;
END IF;
END WHILE;
return str;
END
<trim prefix="" prefixOverrides="" suffix="" suffixOverrides="">
<insert id="insertSelective" parameterType="com.winner.model.PrivilegeRolesAuthority" > insert into Privilege_RolesAuthority <trim prefix="(" suffix=")" suffixOverrides="," > <if test="id != null" > Id, </if> <if test="roleid != null" > RoleId, </if> <if test="menuid != null" > MenuId, </if> </trim> <trim prefix="values (" suffix=")" suffixOverrides="," > <if test="id != null" > #{id,jdbcType=INTEGER}, </if> <if test="roleid != null" > #{roleid,jdbcType=VARCHAR}, </if> <if test="menuid != null" > #{menuid,jdbcType=INTEGER}, </if> </trim> </insert>
ctrl+u 执行代码,并打印日志到控制台
新建一个对象封装入参 PassengerFlowData(因为不同的controller方法 有可能输入相同的参数,就可以复用该入参对象了)
-- mysql同一实例下创建一个和原表 表结构一样的表,只是表名称不一样,使用如下建表语句,自增id从1开始
/*
修改huike_flowpos_transfer存储过程
wangxl
Date: 2018-04-26 17:30:00
*/
-- 新建2张存储被删除用户信息的日志表
CREATE TABLE IF NOT EXISTS aspnet_users_log LIKE aspnet_users;
mybatis if test 不需要使用#或是$获取值,直接 <if test='mappingType="2"'><if>
转义字符的使用
var buttonContent = "<td><a onclick='saveMapping(\"" + userList[i].userId + "\",\"1\")'>"+lang_save+"</a>
-- e10adc3949ba59abbe56e057f20f883e
SELECT MD5("123456"); SELECT UUID();
-- 给site_all_info添加主键列
SELECT @cc :=@cc + 1 AS rowNum,sai.* FROM (SELECT @cc := 0) a, site_all_info sai
navicat复制为insert语句(将光标停留在某一行的记录上就复制该行为insert语句了)
select * from a left join b on (a,b的连接条件)left join c on(a,b形成的临时中间表和c的连接条件)
阿里云RDS5.6默认是开启事件的,5.7默认不开启
ctrl+n即对项目进行编译,你可以将修改的ApiControllerV2类的class文件
(位置在D:\code\kl\target\classes\com\winner\kl\web\controller\ApiControllerV2.class)复制到tomcat里进行替换,就相当于重新部署了,不用打包,方便了很多.
线上项目如果修改的是sql
在ftp直接替换Tomcat 7.0\webapps\huikeportal\WEB-INF\classes\com\winner\mapping\AspnetMembershipMapper.xml
TRUNCATE TABLE "表格名"; 清空表里的数据 相当与 delete from user
mysql之带别名delete语句(sql没有order by默认按主键升序)
UPDATE `user` u SET u.name=323 WHERE u.id=1; 带别名的update语句
DELETE u FROM `user` u WHERE u.id=1; -- from前面的u不能省
id自增设置为无符号,即id不能输入-1 -2这样的负数
auto_increment表示自增长启始位置(当一个表有17条数据,那么你用navicat导出表结构,ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8; 最好手动将AUTO_INCREMENT=18删除,不删除的话也可以,原来17条里有8,你的AUTO_INCREMENT=8,就会跳过已有的id,自动增长) 如果 auto_increment=18 就表示从18开始增长,下一个为19 。 如果不删除,库里会出现id不连续
DROP TABLE IF EXISTS `camera_all_info_snapshot`;
CREATE TABLE `camera_all_info_snapshot` (
`Id` int(11) NOT NULL AUTO_INCREMENT,
UNIQUE KEY `Id` (`Id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=716821 DEFAULT CHARSET=utf8;
CREATE TABLE R_USER
(
ID_USER BIGINT NOT NULL PRIMARY KEY
, ENABLED BOOLEAN
);
BOOLEAN类型在执行后自动变为tinyint类型(mysql没有boolean类型) 只能存-128 到+127的数据
SELECT * FROM report_site_day WHERE datatime BETWEEN DATE_SUB(CURDATE(),INTERVAL 6 DAY) AND CURDATE();//查询最近7天,天客流的数据
如果DATE_SUB(CURDATE(),INTERVAL 1 WEEK) //查询的是最近8天的客流数据
解释:DATE_SUB() 函数从日期减去指定的时间间隔。DATE_SUB(date,INTERVAL expr type),6表示截取的天数,最后的DAY表示按天来进行截取。
CURDATE()表示当前的系统时间(日期),另有CURTIME()表示当前的系统时间(时分秒)
date(表中的时间字段)
long start = System.currentTimeMillis(); long end = System.currentTimeMillis(); System.out.println("Run Time:" +(end - start));//打印一行代码的运行时间,返回ms值
需要明确的地方一点: 用对象接查不到返回null,用list接查不到返回size为0的list
if (!"[]".equals(result)) //如果返回对象,非空判断是否为空list,不是空的list再parseArray
//业务需求:今天,昨天,百分比 在sql里将不是今天的数据置为0,然后求和,ifnull即可
IFNULL(sum(case when frs.dataTime='2018-02-19' then frs.totalPersonTimes else 0 END ),0) AS totalPersonTimesToday,
IFNULL(sum(case when frs.dataTime='2018-02-18' then frs.totalPersonTimes else 0 END ),0) AS totalPersonTimesYesterDayMyBatis是使用的OGNL表达式来进行解析的,改成如下是正确的:<if test='status!= null and status== "OK" '>
mybatis模糊查询和FIND_IN_SET<if test="mappingType!= null and mappingType!= '' and mappingType!= '-1'">AND AND sai.SiteName like '%${keyword}%' //LIKE CONCAT(CONCAT('%', #{keyword}), '%')</if>
order by rec.createtime desc limit #{startNum}, #{pageSize} 推荐这样 java代码计算好的 startNum pageSize
limit ${(pc-1)*ps},${pc*ps} 进行计算使用${} startNum pageSize
The user specified as a definer ('bd_db_admin'@'%') does not exist意思是让root在所有机器都可以登陆到MYSQL服务器(拥有所有权限)。输入即可解决
grant all privileges on *.* to bd_db_admin@"%" identified by "admin";
全部导出(包括结构&数据&存储过程&函数&事件&触发器)mysqldump的命令(注意-R -E为大写):
mysqldump -h192.168.2.252 -uroot -p -R -E ipvacloud>d:66.sql 最后输入密码就可以了
修改表之加字段并给默认值
ALTER TABLE MYTABLE ADD FIELD1 VARCHAR(10)ALTER TABLE camera_all_info ADD isCloud INT DEFAULT 1
绿色解压版tomcat启动可视化的tomcat7w.exe报错 运行service.bat install
调大了jvm参数以后,webapp下启动多个项目就不会报错了
truncate保留2位小数(末尾只舍弃)
遍历list刷新其中实体类的值,返回原来的list就可以 (当然最好还是在get方法里,将两个成员变量通过计算赋值效率更高)
缩进提示的竖线不见了,怎么找回
空参构造,返回空的list
navicat修改表中字段顺序后,字段上移后未生效,需要重新打开表就可以看到(其实已经生效了)
查看mysql版本
0 false 非0 true
RedisDesktopManager
返回controller的@responseBody返回list直接.length属性
navicat只导出一个存储过程
settings搜索paste(indent设置为none),将光标定位在最左侧,然后再粘贴navicat格式化好的sql,最后选中sql点击tab键右移
.gitignore文件忽略版本控制失败?
.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修
改.gitignore是无效的。那么解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:
输入:如下2行即可
$ git rm --cached /.idea
git commit -m "We really don't want Git to track this anymore!"
git commit -m “remove xx”
来解释下几个参数 -r 是删除文件夹及其子目录 –cached 是删除暂存区里的文件而不删除工作区里的文件
将target文件夹不纳入版本控制,可以用git 或svn 的Tortoise
取消mybatissql警告
1. 关闭IDEA,
2.然后删除项目文件夹下的.idea文件夹
3.重新用IDEA工具打开项目
IntelliJ IDEA隐藏不想看到的文件或文件夹
打成war包的输出路径,写成这样,点击加号 选择 Web Application: Archive 输出到target目录下 (即为war包存放位置)
Artifacts 项目的打包部署设置(选择如下框,点击确定) 注意打包前先更新下代码
最好不要将target目录隐藏,方便从idea的这个目录下粘贴
ctrl+h直接在下面进行修改,不用点进页面(当然最快的还是全局替换 replace in path 快捷键ctrl+shift+h)
intellj idea 如何设置类头注释和方法注释
File and Code Template点击file header进行设置/**
*
* @author wangxl
* @date ${YEAR}-${MONTH}-${DAY}
*/
将光标放到类名上,按alt+enter键,就会提示生成serialVersionUID了。
private static final long serialVersionUID = -3701027088271319615L;
SVN不能提交代码怎么解决?
看看你的svn项目库是不是受控的,如果没有受控,先把checkout下来的文件夹add即可
右键文件夹TortoiseSVN点击 clean up(clean up是清除锁定的意思)(一般需要去顶层目录去清理)可以使锁定的不能更新的文件夹解锁,里面的word就可以正常更新了
出现锁定的原因:SVN 本地更新时,由于一些操作中断更新,如磁盘空间不够,可能会造成本地文件被锁定的情况
如上图标注红圈所示,为工具栏上版本控制操作按钮,基本上大家也都是使用这里进行操作。
第一个按钮:Update Project 更新项目。
第二个按钮:Commit changes 提交项目上所有变化文件。点击这个按钮不会立马提交所有文件,而是先弹出一个被修改文件的一个汇总框,具体操作下面会有图片进行专门介绍。
第三个按钮:Compare with the Same Repository Version 当前文件与服务器上该文件通版本的内容进行比较。如果当前编辑的文件没有修改,则是灰色不可点击。
第四个按钮:Show history 显示当前文件的历史记录。
第五个按钮:Revert 还原当前被修改的文件到未被修改的版本状态下。如果当前编辑的文件没有修改,则是灰色不可点击。
idea里右键历史版本 点击get,和revert一样
获取内容,只是取出该版本的内容放在本地文件中,本地文件的当前版本号不会改变。
获取修订版,不仅会取出该版本的内容,连本地文件的版本号也会更改为对应的版本号。
蓝色字体的类是没有提交 Intellij IDEA svn的使用记录 http://blog.csdn.net/liyantianmin/article/details/52837506
File -> Setting -> Editor -> General -> Code Completion -> Parameter Info下 时间修改为500。new Resp(500ms后参数是弹出来的);
新建的java文件夹是source folder(蓝色),而resources文件夹是resources folder(右下角是四个黄色段杠)
import module可以像eclipse一样,显示多个项目
添加tomcat(注意选择的是local的tomcat),改端口号,绑定谷歌浏览器.你启动浏览器,会自动访问index.jsp
如果在maven里放一个坐标,你可以点击右侧隐藏栏里的update,其实,右下角会自动提示你import你引入的坐标包
设置maven的安装目录,settings.xml文件的位置,和本地仓库的位置 D:\delelop\maven\repository
IDEA的Project相当与Eclipse的Workspace,而Module相当于Project。
项目名kl.iml是 intellij idea的工程配置文件,里面是当前项目的一些配置信息
ctrl+F4关闭当前窗口,ctrl+shift+F4关闭关闭所有已打开的窗口
0.idea设置空包不折叠.在左侧面板点击设置---->Compact Empty Middle Packages
shift+esc 就可以了将控制台的下面收回去,光标在上一次代码的编辑区
alt+左箭头 返回到一个页面
ctrl+h显示浏览器历史记录
ctrl shift t恢复已关闭的网页
Ctrl +[或 ]可以跳到大括号的开头结尾,也可以在jsp里跳到与之匹配的<div>框
ctrl shift esc 可以打开windows资源管理器
ctrl shift ↑↓ 在js,java,interface,impl的相邻fun跳跃,也可以在<select>标签跳(光标必须在select所在行才可以)
ctrl shift 1 使用idea书签,点击ctrl+1查看书签1 再次点击ctrl shift 1书签1失效 点击shift+f11查看所有书签,delete删除书签
ctrl shift esc 可以打开windows资源管理器
ctrl+h搜索时 带/mappingManage
设置里搜索weak 将general 的 warning和weak warning右侧的 error strip mark前面的勾去掉,可以去掉右侧的黄色警告条影
idea.exe.vmoptions和idea64.exe.vmoptions调大
-Xms512m
-Xmx750m
浏览器常用快捷键: alt+左箭头 返回到一个页面 ctrl shift t恢复已关闭的网页 ctrl+h显示浏览器历史记录
1.在 Windows 上: Ctrl+Shift+F12(即eclipse的ctrl+m) 其实就是 Hide All Tool Windows (隐藏所有工具窗口) 这个操作的快捷键2.如何让光标不随意定位:Settings->Editor中去掉Allow placement of caret after end of line。
3:如何显示行号:Settings->Editor->general->Appearance标签项,勾选Show line numbers
4.Intellij idea 修改后没有保存前文件----提示*号 Settings -> Editor -> General -> Editor Tabs: Check "Mark modified tabs with asterisk"
5.Settings -> Editor -> General -> Auto Import:打钩Optimize imports on fly会自动将不用的声明包(或倒错的包)删掉,相当于快捷键Ctrl+Shift+O
Add unambiguous imports on the fly:这个就是自动导入功能了,当你输入类名后,声明就被自动导入了。此功能不知是否好使
6.Settings -> Editor->Genneral->Gutter Icons->show gutter icons
以上就是设置显示代码前的绿色叶子:左边行数旁边有一个"I"绿色图标,点击进入实现类(在接口里点击会进入), 也可以ctrl+t进入实现类 ctrl+alt+b也可以
7.去除IDEA报黄色/灰色的重复代码的下划波浪线
在 setting 里面 搜索 inspections _ General _ Duplicated Code 取消勾选.提交之后就可以了
右击jar包,add as liberary(最好将jar放到WEB-INFO的lib目录下)
maven项目如果不使用maven的打包编译 其WEB-INF下的lib一定要要有项目部署的jar,所以,为了方便,jar都放到lib下,
至于是右键add as liberary,还是点击Project Structure-> Modules-> Dependencies ->绿色 加号 这下添加的jar 会在Depedencies中显示 都是可以的
8.IntelliJ IDEA 设置代码提示或自动补全的快捷键
在左侧的导航框中点击 KeyMap –> Main menu –> Code –> Completion.
接着需要做两件事:
1. 移除原来的Cycle Expand Word 的 Alt+斜杠 快捷键绑定。
2. 在 Basic 上点击右键,去除原来的 Ctrl+空格 绑定,然后添加 Alt + 斜杠 快捷键。
9 设置IDEA启动的时候不打开(上次最后关闭的)工程文件:Settings->Appearance&Behavior->System Settings去掉Reopen last project on startup..
在用eclipse发布web项目时,lib下的jar包也会发布的,
在用idea发布时.lib(即使不放到lib里也可打到jar包里,maven打包的厉害之处,不过还是建议放到lib里)也会发布,D:\workspace\out\artifacts\hello_war_exploded\WEB-INF\lib
10.Settings -> Editor -> General -> Code Completin 点击Case sensitive completion后面的选择框,选中None,,使智能提示忽略大小写
11.取消单行注释的斜杠在首列:
Settings->Editor->Code Style->Java->Code Generation->Comment Code->Line comment at first column
12editor-File Encodings 设置3处都为utf-8
idea可以自动优化导入包,但是有多个同名的类调用不同的包,必须自己手动Alt+Enter设置
Optimize imports on fly:这个其实和快捷键Ctrl+Shift+O,就是把不用的声明移除掉。如类头粘一个import com.alibaba.fastjson.JSON; 下面没用到就会自动移除
Add unambiguous imports on the fly:这个就是自动导入功能了,当你输入类名后,声明就被自动导入了(但是当有几个同名的包,idea就处理不了,也就不会给你自动导包,需要你alt+enter手动导包)。
14.IDEA 编辑器右边竖线怎么取消呢?edit--appearance--show right margin前面的勾去掉
15.一行代码分号最后侧双击2下,即可选中该行,双击一个单次处,可选择单词
16.在变量user,点F3可以看到此变量在该方法的那一行使用(其实只要你将光标放在变量user上,其他行使用了user这个变量,会自动渲染加框的)
17.IntelliJ IDEA 通过GsonFormat插件将JSONObject格式的String 解析成实体
alt+inset选择gsonFormat 或直接alt+s呼出该窗口,粘贴你要格式化的json字符串.
18.ctrl ++或-可折叠当前展开方法
19.ctrl+alt+z 选中代码块进行try catch
20.ctrl+f 搜到方法名,回车两次,就进入方法了,不用ctrl+鼠标左键单击了
21.ctrl+i 定位到光标所在行的下一行
22.在keymap里搜索 Fix doc comment 给他一个快捷建,我给的alt+shift+j 自动生成方法的注释
23.解决jsp页面弹出如下This file is indented with tabs instead of 4 spaces问题。
鼠标左键自由放置输入光标的位置 右键单击关闭Column Selection Mode
File -> Settings -> Editor -> Code Style -> Java -> Tabs and Indents -> Use tab character
设置完成后,就是1个tab键等于4个空格
如何创建2个java项目:参考网址 http://www.cnblogs.com/oskyhg/p/6649266.html
1、File -> New Project -> 创建工作空间 JavaWorkspace,并 顺便创建项目 JavaOne
2、File -> New Module -> 创建项目 JavaTwo
idea创建maven项目的过程:选中main,鼠标右键->New Folder,输入java.
以此类推创建其他目录。并标识Sources,Test
该知识网址 https://my.oschina.net/lujianing/blog/186737
模块配置根目下 分为了三个标签:Sources—— Paths—— Depedencies
project compliler output:配置的是项目中的默认编译输出总目录D:\workspace\MavenDemo\out 每个模块可以自己设置特殊的输出目录 所以这个基本上没用
modules里的paths,use module compile output path设置为 D:\workspace\MavenDemo\target\classes 使用本module的编译输出目录,即不使用默认编译输出目录,即替换掉了Project的默
认输出地址
右侧:绿色是测试目录 橘色是target的目录 这些部署的时候都不需要 大红色是我的项目下没有的 蓝色是真正需要部署
在Project Structure--Artifacts---output directory:D:\workspace\MavenDemo\out\artifacts\MavenDemo_war_exploded就是项目的发布位置 非maven项目这个可以设置到任何地方
.MavenDemo:war exploded项目发布名称
在Depedencies里我们可以点击右侧的+号 添加lib 比如tomcat的lib 默认加进来就是Provided Provided 也就是项目部署的时候是忽略的 只是再编译项目的时候进行使用 Compile 是
跟随着项目部署的 Test也是不部署的
“build”是“链接”的意思。作用是将你在程序中调用到的类库融合到你的程序中,比如你用到了printf()函数,那么内部实现该函数的类库代码就会添加到你的程序中
facets选web再选你的MavenDemo项目就好了
因为是手工创建Maven项目,没有选择任何Maven模,里面没有web.xml文件,不能发布到tomcat里--因此需要我们进行添加。
点击Project structure 点击modules 选择你的mavenDemo项目,右键添加web组建,就会生成web.xml在项目里了 Modules:可看到此项目无任何适配服务组件 选择Web(为此项目添加Web
服务组件,这便是一个Web项目了)
使用TortoiseSVN.exe客户端,安装时必须选择client tools,否则不会有svn.exe,也就不能支持intellij idea的svn插件,因为intellij idea是使用命令行的方式来使用svn
光标总是可以移动到任意位置,非常麻烦,想要将光标定位到某一行的最后一个字符后面几乎是不可能的。
File->setting->Editor-appearance(找不到可以在上面搜索一下
取消Allow placement of caret after end of line 确定后就可以了
也可以不这么麻烦 直接在SETTING的窗口输入
Allow placement of caret after end of line就可以定位到这里
idea发布的项目,在webapps下是没有的,默认是在项目的out目录下,而eclipse是复制了一份发布到webapps,所以就不用担心清理的问题
IntelliJ IDEA打开带SVN信息的项目不显示SVN信息,项目右键SVN以及图标还有Changes都不显示解决方法:
在VCS菜单中有个开关,叫Enabled Version Control Integration,在打开的窗口的选项中选择Subversion即可。
按 Alt+Home.(用该方式打开,导航条显示为浮动形式) view里,点击navigation bar对号去掉即可
alt+9 显示版本控制----提交更新
关于状态栏 单击该开始(即电视图标)可以控制“工具窗口栏”的显示和隐藏
锁住就是只读模式,
下面的utf-8表示当前文件的编码格式,
定义语法高亮和颜色设置页面
新建的java文件夹是source folder(蓝色),而resources文件夹是resources folder(右下角是四个黄色段杠)
将keymap设置为eclipse的快捷键,就可以用之前eclipse的快捷键开发了F6单步等
Intellij中 web的程序 部署 不同于myeclipse和eclipse
需要把项目打成一个Artifacts(成品包)的war包 然后在 配置的tomcat的Deployment中选择对应的war包
一般是open一个maven项目,import module可以像eclipse一样,显示多个项目
添加tomcat(注意选择的是local的tomcat),改端口号,绑定谷歌浏览器.你启动浏览器,会自动访问index.jsp
svn提交,不管你鼠标在哪里,你点击提交按钮,它自动显示没提交的代码
如果在maven里放一个坐标,你可以点击右侧隐藏栏里的update
在设置maven的安装目录,settings.xml文件的位置,和本地仓库的位置 D:\delelop\maven\repository
IDEA的Project相当与Eclipse的Workspace,而Module相当于Project。
项目名.iml是 intellij idea的工程配置文件,里面是当前projec的一些配置信息
右击jar包,add as liberary(最好将jar放到WEB-INFO的lib目录下)
maven项目如果不使用maven的打包编译 其WEB-INF下的lib一定要要有项目部署的jar,所以,为了方便,jar都放到lib下,
至于是右键add as liberary,还是点击Project Structure-> Modules-> Dependencies ->绿色 加号 这下添加的jar 会在Depedencies中显示 都是可以的
在用eclipse发布web项目时,lib下的jar包也会发布的,
在用idea发布时.lib也会发布,D:\workspace\out\artifacts\hello_war_exploded\WEB-INF\lib
快捷键:
alt+ins 选择seter and get 你可以ctrl+a 全选成员变量,生成set get方法 shift+↓就可以选中两个生成set get方法了
alt+enter 自动导包
你写了一个不存在的方法,点击alt回车 ,再回车就创建相应的方法(并让你选择在那个类了)
代码类上有红色波浪线(编译报错了),点击右上角的感叹号可以查看几处错误,几处警告,shift+f1切换错误位置
ctrl+shift+r对类进行重命名
sout 按tab,psvm按tab
alt+1显示左侧菜单
shift+esc,可将右侧maven框进行收起或下侧的窗口收起(要看光标定位在哪个窗口就会收起哪个窗口)
F4下回车点F12再alt回车,再回车,就重写了接口里的方法了.一气呵成
你写了一个不存在的方法,点击alt回车 ,再回车就创建相应的方法(并让你选择在那个类了)
js代码或java类,接口,实现类,mapper接口,甚至<select>里(必须在select标签的行) ctrl+shift+↓可以跳到
相邻的function或method或<select>跳跃,
ctrl+alt+shift+↑↓可以跳到java或js有改动的那一行
ctrl+shift+f可以在goole浏览器F12全局搜索
idea的书签使用:
Ctrl + Shift + 1, 2, 3, 4 在某一行打标签。结合 Ctrl + 1, 2, 3, 4 可以快速定位到某一标记行。 适用于
行数特别多的文件。配合shift+f11来查看所有书签,任意跳转书签并可点击delete来删除书签
Shift + 导航箭头 自由选择
Ctrl + Shift(不要shift) + (-/+) 折叠或者展开所有代码块
Chrome控制台Network,如何批量搜索 Response 的内容?
1、保存为har(Save as HAR with content)www.winneryun.com.har,不用全选,随便选个保存后都是当前列
表中的所有文件。
2、保存好的har是一个json格式,随便找个喜欢的编辑器,搜索就行了。{
"startedDateTime": "2018-04-03T02:42:02.077Z",
"content": {
"size": 62606,
"mimeType": "application/json",
"compression": -117,
"text": "{\"AllIndexModels\":[,\"description\":\"统计周期内进入商业场所的顾客数量\",
\"indexName\":\"客流量\",\"date\":\"1130435
itar 生成普通for循环遍历数组
iter 生成增强for循环
itli 生成List的遍历(如下)
for (int i = 0; i < list.size(); i++) { Object o = list.get(i); }
itar 生成array的遍历
- for (int i = 0; i < array.length; i++) {
- = array[i];
- }
alt+f10 show execution point 显示执行断点所在行
在js中直接敲 fun 回车 自动生成如下,你只需填写 方法名(就会替换默认的方法名f)
function f() { }在js中直接敲 $(fun) 连续回车2次 就可以生成 jsp加载时执行的方法
$(function () { })ctrl+shift+↑或↓ 可以在相邻的 function method 跳转