java常见问题处理
文章目录
- 一、前言
- 二、实战演练
- 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使用
阿里云镜像
<!-- 配置阿里云 -->
<mirror><id>aliyunmaven</id><mirrorOf>*</mirrorOf><name>阿里云公共仓库</name><url>https://maven.aliyun.com/repository/public</url>
</mirror>
配置默认JDK版本(在setting.xml文件中配置)
<profile><id>jdk-1.8</id><activation><activeByDefault>true</activeByDefault><jdk>1.8</jdk></activation><properties><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target><maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion></properties>
</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
DROP TABLE IF EXISTS `bbb`;
CREATE TABLE `bbb` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
②插入数据(使用idea工具运行)
例子语句:idea中会执行一条插入sql
INSERT INTO bbb (create_time) VALUES ( DEFAULT);
③数据库中查看数据
查看发现自增id直接来到了 1580089915291529217且从第八位后毫无规律
④删除数据并把自增id设置为1,重新用代码插入数据(使用idea工具运行)
delete from bbb;
alter table bbb auto_increment = 1;
然后执行代码插入数据
查看数据库发现自增id依旧是随机数
⑤分析原因
计算下这个id的长度,共19位,恰好是雪花算法id长度。mysql不可能自己生成雪花算法id,问题应该在mybatisplus上,对比下刚生成的代码和之前的代码,发现实体类主键上缺少如下注解
@TableId(value = "id", type = IdType.AUTO)
⑥确认问题
为实体类主键加上注解
/*** 自增id*/@TableId(value = "id", type = IdType.AUTO)private Long id;
重置自增主键,执行如下sql
alter table bbb auto_increment = 1;
再次执行代码插入数据
发现数据已经正常
查看了mybatisPlus主键策略枚举
public enum IdType {AUTO(0),NONE(1),INPUT(2),ASSIGN_ID(3),ASSIGN_UUID(4),/** @deprecated */@DeprecatedID_WORKER(3),/** @deprecated */@DeprecatedID_WORKER_STR(3),/** @deprecated */@DeprecatedUUID(4);private final int key;private IdType(int key) {this.key = key;}public int getKey() {return this.key;}
}
其中 AUTO 是自增,不加注解mybatisplus会默认使用 ASSIGN_ID策略,即雪花算法。
⑦结论
mybatisplus自增主键要在实体主键上加如下注解
@TableId(value = "id", type = IdType.AUTO)
小知识点
表名注解(@TableName)
作用:实体类和数据库中表建立对应关系:如
@TableName("user")
public class userTable implements Serializable {}
代表:userTable 对应数据库中表为user
主键注解(@TableId)
/*** 自增id*/@TableId(value = "id", type = IdType.AUTO)private Long id;
属性注解(@TableField)
作用:该属性非主键属性,解决属性名与字段名不匹配问题、属性是否是数据表中字段、insert、update生成策略等。如:
@TableField(exist=false)private String name;
代表name属性不与表中的字段匹配,在新增、修改时,不用去匹配
常用的就这三个,其他注解不再详细描述。
8、idea中文乱码问题
可以分为以下几类场景:
1、工程代码乱码。
2、main方法运行,控制台乱码。
3、tomcat运行,控制台乱码。
解决方案:
工程乱码,打开
Settings > Editor > File Encodings > Global Encodings & Project Encodings 设置为:UTF-8。
main运行,控制台乱码,打开
Settings > Build, Execution, Deployment > Compiler > Java Compiler > Additional command line parameters > 设置为:-encoding utf-8
tomcat运行,控制台乱码,打开
Edit Configurations > Tomcat Server > server > VM options > 设置为:-Dfile.encoding=UTF-8
待更新
各位看官》创作不易,点个赞!!!
诸君共勉:万事开头难,只愿肯放弃。
免责声明:本文章仅用于学习参考
java常见问题处理相关推荐
- Java常见问题之Data too long for column 'orResponse' at row 1
本文介绍了出现Data too long for column 'trRequest' at row 1问题的解决方式 一.bug提示如下 Error Code: 1406. Data too lon ...
- java常见问题排查
问题1:NoSuchMethodException 分析:jar包版本冲突,java在装载一个目录下的jar包的时候,他的加载顺序取决于操作系统不取决于java本身,而Linux操作系统取决于inod ...
- Java常见问题汇总
来源: StackOverflow, 自己使用中总结 集合 并发 网络 获取本机IP InetAddress inetAddress = InetAddress.getLocalHost(); Str ...
- r.java没有生成_R.java 常见问题(R.java文件没有生成 )
1.选择菜单 Project >> Clean ,前提是勾选上 Bulid Automatically(自动构建部署) , 点Clean后会重新构建项目,因为一般情况下,R.java文件 ...
- Rational Rose 逆向工程(java) 常见问题二则
1. rose逆向工程的时候,属性类型表现为:Logical View::java::lang:: 解决办法: 菜单->Tools->Java/j2ee->Proje ...
- 转自52 梦回凉亭的她 Java常见问题,面试题
收集整理分享 # 相关概念 ## 面向对象的三个特征 封装,继承,多态.这个应该是人人皆知.有时候也会加上抽象. ## 多态的好处 允许不同类对象对同一消息做出响应,即同一消息可以根据发送对象的不同而 ...
- Java常见问题(1)navicat连接mysql报2059错误
一.navicat连接mysql8后出现2059报错原因 使用navicat连接mysql数据库的时候,弹出2059错误,如下图所示,出现的原因是mysql8安装选择了强加密规则caching_sha ...
- Java常见问题之HashMap扩容、树化、死链
写在前边 HashMap属于比较常用的数据结构了,面试过程中也经常会被问到,本篇就知识点,展开问答式分析,重点聊聊hash冲突.扩容死链.容量为2的n次方.1.7和1.8之间的区别等问题~ 如何解决H ...
- Java常见问题3:周期之谜
谜24 byte是有符号的.范围是-128 - 127. 而0x90是int类型. 比較的时候.不相等. 假设想让其相等,须要进行类型转换:(byte & 0xff) 或者 (byte)0x9 ...
最新文章
- C#杂记系列之日期函数
- 为什么TCP的TIME_WAIT状态要保持2MSL?
- MySQL安装使用的2个问题
- 周志华:Boosting学习理论的探索 —— 一个跨越30年的故事
- [转载]利用@media screen实现网页布局的自适应,@media screen and
- Matlab中的logspace函数,matlab之logspace函数
- 【C++grammar】多态、联编、虚函数
- PostgreSQL源码学习(1)--PG13代码结构
- ajax正确返回数据,却进入了error分支
- 短信验证-SMSSDk(Mob开发平台 )
- java项目超市购物管理系统
- 知识付费系统源码(最新开源知识付费系统搭建下载)
- nginx本地代理调试微信登录(window版本)
- 电脑键盘上的Alt键的作用
- 小程序也能接广告了,微信小程序广告位投放指南!
- CSS3正方体图片轮换
- 【操作系统概念-作业8】Main Memory
- 树莓派连接隐藏wifi(2020最新系统实测可用!)
- Python -- 硬盘容量单位及网络速率单位换算
- Textstudio 应用程序无法正常启动0xc000007b