idea使用指南

-- 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

1.<trim prefix="" suffix="" suffixOverrides="" prefixOverrides=""></trim>
<trim prefix="" prefixOverrides="" suffix="" suffixOverrides="">
prefix:在trim标签内sql语句加上前缀。
suffix: 在trim标签内sql语句加上后缀。
suffixOverrides:指定去除多余的后缀内容,如:suffixOverrides=",",去除trim标签内sql语句多余的后缀","。
prefixOverrides: 指定去除多余的前缀内容 (本例没用到去除前缀)
执行的sql语句也许是这样的:insert into cart (id,user_id,deal_id,) values(1,2,1,);显然是错误的
指定之后语句就会变成 insert into cart (id,user_id,deal_id) values(1,2,1);这样就将“,”去掉了。
<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 totalPersonTimesYesterDay


Mybatis <if test="">中字符串比较     如果是单个字符单 <if test='source != "0"'>引号在外,双引号在内,反之则报错            <if test="source != '0'.toString()">  //tostring的S写成小写是不行的,不推荐这种写法      

MyBatis是使用的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

递归的recursively

取消mybatissql警告


idea在左侧的project目录中 看不到项目的文件结构图 只能看到几个idea自己生成的文件
1. 关闭IDEA, 
2.然后删除项目文件夹下的.idea文件夹
3.重新用IDEA工具打开项目



IntelliJ IDEA隐藏不想看到的文件或文件夹

打开IntelliJ IDEA,File -> Settings -> Editor -> File Types


打成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设置


13设置自动导包 auto import打钩如下两个选项  
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的遍历

  1. for (int i = 0; i < array.length; i++) {  
  2.              = array[i];  
  3.               
  4.         }  

alt+f10  show execution point 显示执行断点所在行

在js中直接敲  fun 回车 自动生成如下,你只需填写 方法名(就会替换默认的方法名f)

function f() {
    
}
在js中直接敲 $(fun)  连续回车2次  就可以生成 jsp加载时执行的方法
$(function () {
    
})
ctrl+shift+↑或↓ 可以在相邻的 function method 跳转


猜你喜欢

转载自blog.csdn.net/qq_29883183/article/details/74584371