一、快捷键总结
查看IDEA中的快捷键设置情况:(也可以进行更改)
![](https://img-blog.csdnimg.cn/img_convert/eec805d953ff59d163ce8ba6216ef7ed.png)
idea自动补全忽略大小写(不要勾选match case)
![](https://img-blog.csdnimg.cn/img_convert/09a0d035477f141fc8b038bf5463befb.png)
1、ctrl+D 复制光标所在行;
2、ctrl+F 查文件;全局搜索 Ctrl+Shift+F 全局替换 Ctrl+Shift+R
(对选中的内容进行替换,CTRL+R,记得勾选search in selection only 即可只替换指定范围内容
shift+alt+insert可切换为块选择)
3、ctrl+H查看类体系结构;
4、ctrl+N 查类文件;
5、ctrl+O 复写父类的方法展示;
6、ctrl+X 剪切,用来删除;
8、ctrl+Z 撤销;
9、ctrl+shift+Z 反撤销;
10、ctrl+F12 查找当前文件的,所有方法;
11、ctrl+Enter修改报错,补全代码;
12、ctrl+Alt+B 展示接口的实现类;
13、ctrl+Alt+← 返回上次光标位置;Ctrl +shift +backspace 跳转到最近编辑内容
14、ctrl+R 文本替换;
15、ctrl+shift+R 全局文本替换;
16、ctrl+shift+/ 代码快注释;
17、ctrl+// 代码单行注释
18、生成构造器等alt+insert;
19、将光标放在一个方法上,输入Ctrl+B可以定位到哪个类的方法
20、查看一个类的层级关系ctrl+H
21、 自动分配变量名 .var 【Ctrl + J 生成代码模板】这里面包含了很多模板,如:psvm 快速生成 main方法;sout 生成输出语句
22、删除当前行ctrl+y
23、自动补全代码 alt+/ ;这里面也有很多快捷键,Ctrl+shift+空格 也可以
24、添加/取消注释ctrl+/
25、Ctrl+Alt+L快捷键格式化代码
26、写for循环的快捷方法: .for
27、点击structure可以查看这个类的所有方法和属性。
28、鼠标右键,查看类图,进去之后选中对应类或方法按f4键查看相应源码
29、“alt+/快捷键。你先打一个@符合,然后按那个alt+/快捷键,再输入一个开头ov。就能把override打出来。”
30、Java中怎样用快捷建打出“/** */”文档注释1.输入“/**”并回车。2.用快捷键Alt+Shift+J。
31、Ctrl + tab 切换窗口
32、fori for循环生成; .for 数组/集合.for 快速生成增强fouEach循环;
33、ctrl+alt+t 生成控制流程:if/if else/while /do while /for /try catch /try catchfinally/synchronized/Runnadble
34、将多行代码进行改变位置
按shift选中代码,使用tab操作整体向右移动,或使用shift+tab整体向做移动。
1。代码 右 移 :Tab键,选中多行代码,按Tab;
2。代码 左 移 :Shift+Tab键,选中多行代码,按Shift+Tab键;
3。代码 上 移 :Shift+Alt +方向上键,选中多行代码,按Shift+Alt+方向上键 ↑;
4。代码 下 移 :Shift+Alt+方向下键,选中多行代码,按Shift+Alt+方向下键↓。
方法,类,变量 之间的互相调用,选中方法,类,变量,按CTRL键,点击鼠标左键,就可以看到其被谁调用,但在mapper里面对xml中要想互相找到对方就要安装一个插件 在setting里面添加一个mybatix的插件。
按住shift + alt + 鼠标左键 可以同时编辑多行。
idea全局压缩代码 Ctrl shift - ,相反 Ctrl shift + 就是还原
35 、设置自动导包:
![](https://img-blog.csdnimg.cn/img_convert/0c4d2aed8fae23572cab51c4d3867a9e.png)
二、常见项目包名和对应存放的文件类型
(灰色选中的文件可以在创建文件后进行删除)
vo包一般用来存放“显示视图模型”(View Object)相关的类文件。vo对象是指与前端页面或组件一一对应的普通Java对象,它们用于封装前端页面或组件的展示数据。
po包一般用来存放“持久化对象”(Persistent Object)相关的类文件。po对象是指与数据库表字段一一对应的普通Java对象,它们用于表征数据库中的数据。在通常情况下,一个po对象对应着一张数据库表的记录。
po包的作用是将数据库表与Java代码解耦合,使得业务逻辑处理过程中的数据更加直观易懂,能够更好地反映出实际情况。在开发过程中,我们通常先定义好数据库表结构,然后使用MyBatis等ORM框架自动生成相应的po对象。这些自动生成的对象一般具有以下特点:
-
所有成员变量都与表中的字段一一对应,变量名和类型需要与字段名和类型相同;
-
对象中包含了一些方法,如getter/setter方法,以及一些针对该对象的数据操作方法;
开发人员可以通过修改po对象的成员变量和方法,来快速地实现对数据库表的数据操作。但需要注意的是,由于po对象与数据库表的一一对应关系比较密切,它们并不适合作为业务逻辑中的数据模型使用。开发人员如果需要定义业务逻辑相关的数据模型,应该将其定义在model包或者其他合适的包中。
dao 是数据访问对象(Data Access Object)缩写,通常用于与数据库进行交互,执行数据持久化操作,例如增删改查等。在 Java Web 应用程序中,dao 包是一个常见包名,一般存放与数据库操作相关类,例如 DAO 接口、DAO 实现类、实体类等。
在 dao 包中,一般会包含以下文件(不限于这些,具体根据项目需求而定):
-
DAO 接口:定义了需要对数据库进行哪些操作,例如增删改查等,一般也会定义一些查询参数等。
-
DAO 实现类:实现了 DAO 接口中定义的操作,负责与数据库进行交互,例如通过 JDBC 进行数据库连接和操作。
-
实体类:通常表示数据库中的一张表,用于封装表中的数据。可以使用 JavaBean 的规范来编写实体类,方便在业务逻辑中进行处理和传递。
-
数据库连接相关的类:例如连接池类、数据库工具类等,用于提供数据库连接和数据库操作的方法,方便其他类使用。
要注意的是,在不同项目中,dao 包具体内容可能会有所不同。例如,一些使用框架的项目可能会使用框架提供的数据访问层,从而省略了手动编写 DAO 接口和实现类的步骤。
dto 包通常存放数据传输对象(Data Transfer Object),用于在多个层之间传输数据。DTO 通常由普通JavaBean 组成,其中封装了一些需要传输的数据。
具体来说,DTO 包可能会包含以下文件(不限于这些,具体根据需求而定):
-
DTO 类:通常表示业务逻辑层(Service 层)和表示层(Controller 层)之间需要交换的数据对象。DTO 类中封装了一些需要传输的属性,例如表单数据、请求参数、响应结果等。DTO 的使用可以避免在不同层之间传递过多的数据,从而提高系统的性能和可维护性。
需要注意的是,不同项目可能有不同包名规范。例如,一些团队可能更喜欢使用 com.example.projectName.dto 这样的命名方式,其中 projectName 替换为项目名称。
service 包通常存放服务层(Service)相关类文件。服务层是指应用程序中负责业务逻辑处理、调用 DAO 层进行数据持久化操作、与控制器层(Controller)进行数据交互一层。
具体来说,service 包可能会包含以下文件(不限于这些,具体根据需求而定):
-
Service 接口:定义了服务层需要执行哪些业务逻辑操作。
-
Service 实现类:实现了 Service 接口中定义的业务逻辑,调用 DAO 层对象完成数据持久化操作并将结果返回给控制器层。
-
DTO 类:在 Service 层与 Controller 层之间传输数据的对象。
-
其他相关的工具类:例如异常处理类、日志类等。
*、model包 和 entity 包 和pojo包的一般放什么文件,都有什么区别
model包、entity包和pojo包都是用于存放描述数据的类文件的包,虽然它们名字不同,但通常包含文件类型和作用是类似的。具体来说:
-
model 包一般存放与业务逻辑相关的数据模型(Model),比如数据持久化操作的结果、接口返回的数据、以及对数据库的查询结果进行进一步处理得到的实体等。这些模型类往往会包含一些辅助方法,用于对数据进行格式化、转换、对比等操作。
-
entity 包一般存放与数据库表结构对应的实体类,也是数据模型的一种。在 Java EE 开发中,entity 通常是 Java Persistence API(JPA)的一个概念,代表持久化到数据库的 Java 对象。通常情况下,一张数据库表对应一个 entity 类,其中包含该表所有的字段以及相应的 getter 和 setter 方法。
-
pojo 包一般是指“普通 Java 对象”(Plain Old Java Object),它是一种轻量级的 Java 类,不依赖于任何框架或标准,也没有复杂的继承关系。它往往用来描述业务逻辑中的数据对象,与数据库的表结构无关。pojo 对象中通常包含了一些字段以及相应的 getter 和 setter 方法,用于对数据进行存取操作。
总体而言,model、entity和pojo这三个概念都是用来描述数据对象的。它们之间的区别在于:
-
model 一般用于描述业务逻辑相关的数据模型;
-
entity 一般用于描述与数据库表结构对应的实体类;
-
pojo 一般用于描述业务逻辑中的数据对象。
需要注意的是,在不同的项目中,这三种包的具体内容和分类可能会有所不同。