java常见问题处理

ゞ 浴缸里的玫瑰 2024-03-30 13:24 160阅读 0赞

文章目录

    • 一、前言
    • 二、实战演练
      • 1、idea常用快捷键使用
      • 2、idea设置字体大小
      • 3、idea设置背景颜色-背景
      • 4、idea配置Maven
      • 5、idea中配置JDK
      • 6、idea中java.util变红报错
        • IDEA中Sources、JavaDocs路径是红色的
      • 7、idea中使用mybatisPlus 自增主键失效,自增主键超大
        • 小知识点
      • 8、idea中文乱码问题

一、前言

一些常见的知识点、琐碎,但是有些很常用,当时却总是想不起来,又要自己进行搜索,就很麻烦,就部分简单记录一下。

二、实战演练

1、idea常用快捷键使用

C-V大全
美化代码
Ctrl+Alt+L
下一行
Alt+Enter
全局搜索
Ctrl+Shift+R
断点调试快捷键
F8 单步调试,不进入函数内部
F7 单步调试,进入函数内部
Shift+F7 选择要进入的函数
Shift+F8 跳出函数
Alt+F9 运行到断点
Alt+F8 执行表达式查看结果
F9 继续执行,进入下一个断点或执行完程序
Ctrl+F8 设置/取消当前行断点
Ctrl+Shift+F8 查看断点

2、idea设置字体大小

启动idea,点击菜单栏File->选择Settings
在这里插入图片描述

选择Editor->Font;改变size大小—>点击apply—>点击OK即可
在这里插入图片描述

字体就会变大了!
**菜单栏大小的设置:Appearance;如图,将use custom font选中,然后改变size,点击apply—>点击OK即可
在这里插入图片描述

3、idea设置背景颜色-背景

启动idea,点击菜单栏File->选择Settings
在这里插入图片描述

选择背景颜色
在这里插入图片描述

自定义背景;找到background image点击进去-选择想要的背景图片即可
在这里插入图片描述

最终效果
在这里插入图片描述

4、idea配置Maven

打开IDEA,点击菜单栏File->选择Settings;
在这里插入图片描述

** 在上面的快捷查找框中输入maven,查找与maven相关的设置,然后点击maven。**
在这里插入图片描述

修改maven的路径(使用本地的Maven),以及修改settings文件的位置和本地仓库的位置。
在这里插入图片描述

推荐配置:设置maven在不联网的情况下使用本地插件
一般使用maven为我们提供好的骨架时,是需要联网的,配置这个,可以在没有网路的情况下,我们可以正常创建工程,并从之前已经使用过的工程中找到相应的骨架。
输入内容:-DarchetypeCatalog=internal
在这里插入图片描述

注意:
详细博客maven使用
阿里云镜像

  1. <!-- 配置阿里云 -->
  2. <mirror>
  3. <id>aliyunmaven</id>
  4. <mirrorOf>*</mirrorOf>
  5. <name>阿里云公共仓库</name>
  6. <url>https://maven.aliyun.com/repository/public</url>
  7. </mirror>

配置默认JDK版本(在setting.xml文件中配置)

  1. <profile>
  2. <id>jdk-1.8</id>
  3. <activation>
  4. <activeByDefault>true</activeByDefault>
  5. <jdk>1.8</jdk>
  6. </activation>
  7. <properties>
  8. <maven.compiler.source>1.8</maven.compiler.source>
  9. <maven.compiler.target>1.8</maven.compiler.target>
  10. <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
  11. </properties>
  12. </profile>

5、idea中配置JDK

**打开IDEA,点击菜单栏File->选择Project Structure;
**
在这里插入图片描述

选择Project
在这里插入图片描述

6、idea中java.util变红报错

①检查java环境变量是否配置正确
②检查idea中是否引入了java SDK
快捷键Ctrl+alt+shift+s
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

如无问题可在maven工程中重新加载一下pom文件,如果你用的是其它依赖管理插件可以去对应的官方文档查不赘述。
在这里插入图片描述

然后clean、compile

IDEA中Sources、JavaDocs路径是红色的

Project Settings -> Libraries -> Sources、JavaDocs路径出现红色字体
在这里插入图片描述

Classes
Classes中的jar,是程序在运行项目的时候使用的,因为这个是直接编译好的class文件,可以直接被虚拟机运行的。
Sources
Sources中的jar,就是给开发人员看的,自己在学习和debug的时候,可以看到jar包里面的各种注释说明,方便学习。
JavaDocs
JavaDocs中的jar,与Sources的jar一个道理,起到辅助的作用。
解决方案:
在这里插入图片描述

注意:
只要Classes中的jar不报错,那么久不会影响程序的正常运行。而有些jar包没有相关的Doc文档,可能也会出现路径红色,但是无关紧要。

7、idea中使用mybatisPlus 自增主键失效,自增主键超大

问题现象
①建表语句-设置id为自增id

  1. DROP TABLE IF EXISTS `bbb`;
  2. CREATE TABLE `bbb` (
  3. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  4. `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
  5. PRIMARY KEY (`id`) USING BTREE
  6. ) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

②插入数据(使用idea工具运行)
例子语句:idea中会执行一条插入sql

  1. INSERT INTO bbb (create_time) VALUES ( DEFAULT);

③数据库中查看数据
查看发现自增id直接来到了 1580089915291529217且从第八位后毫无规律
在这里插入图片描述

④删除数据并把自增id设置为1,重新用代码插入数据(使用idea工具运行)

  1. delete from bbb;
  2. alter table bbb auto_increment = 1;

然后执行代码插入数据
查看数据库发现自增id依旧是随机数
在这里插入图片描述

⑤分析原因
计算下这个id的长度,共19位,恰好是雪花算法id长度。mysql不可能自己生成雪花算法id,问题应该在mybatisplus上,对比下刚生成的代码和之前的代码,发现实体类主键上缺少如下注解

  1. @TableId(value = "id", type = IdType.AUTO)

⑥确认问题
为实体类主键加上注解

  1. /**
  2. * 自增id
  3. */
  4. @TableId(value = "id", type = IdType.AUTO)
  5. private Long id;

重置自增主键,执行如下sql

  1. alter table bbb auto_increment = 1;

再次执行代码插入数据
发现数据已经正常
在这里插入图片描述

查看了mybatisPlus主键策略枚举

  1. public enum IdType {
  2. AUTO(0),
  3. NONE(1),
  4. INPUT(2),
  5. ASSIGN_ID(3),
  6. ASSIGN_UUID(4),
  7. /** @deprecated */
  8. @Deprecated
  9. ID_WORKER(3),
  10. /** @deprecated */
  11. @Deprecated
  12. ID_WORKER_STR(3),
  13. /** @deprecated */
  14. @Deprecated
  15. UUID(4);
  16. private final int key;
  17. private IdType(int key) {
  18. this.key = key;
  19. }
  20. public int getKey() {
  21. return this.key;
  22. }
  23. }

其中 AUTO 是自增,不加注解mybatisplus会默认使用 ASSIGN_ID策略,即雪花算法。
⑦结论
mybatisplus自增主键要在实体主键上加如下注解

  1. @TableId(value = "id", type = IdType.AUTO)
小知识点

表名注解(@TableName)
作用:实体类和数据库中表建立对应关系:如

  1. @TableName("user")
  2. public class userTable implements Serializable {
  3. }

代表:userTable 对应数据库中表为user
主键注解(@TableId)

  1. /**
  2. * 自增id
  3. */
  4. @TableId(value = "id", type = IdType.AUTO)
  5. private Long id;

属性注解(@TableField)
作用:该属性非主键属性,解决属性名与字段名不匹配问题、属性是否是数据表中字段、insert、update生成策略等。如:

  1. @TableFieldexist=false
  2. private String name;

代表name属性不与表中的字段匹配,在新增、修改时,不用去匹配
常用的就这三个,其他注解不再详细描述。

8、idea中文乱码问题

可以分为以下几类场景:
1、工程代码乱码。
2、main方法运行,控制台乱码。
3、tomcat运行,控制台乱码。
解决方案:
工程乱码,打开

  1. Settings > Editor > File Encodings > Global Encodings & Project Encodings 设置为:UTF-8

main运行,控制台乱码,打开

  1. Settings > Build, Execution, Deployment > Compiler > Java Compiler > Additional command line parameters > 设置为:-encoding utf-8

tomcat运行,控制台乱码,打开

  1. Edit Configurations > Tomcat Server > server > VM options > 设置为:-Dfile.encoding=UTF-8

待更新
在这里插入图片描述

各位看官》创作不易,点个赞!!!
诸君共勉:万事开头难,只愿肯放弃。

免责声明:本文章仅用于学习参考

发表评论

表情:
评论列表 (有 0 条评论,160人围观)

还没有评论,来说两句吧...

相关阅读