Java开发中常见报错及解决办法

简介: 在项目开发中,往往会遇到很多错误,有些是代码有误,而有些则是其他原因。接下来一起看看常见的报错及解决办法(小白整理,大牛勿喷)。

一、找不到Xxx.Xxx.entity.Xxx.java


最近在跟着视频敲一个项目,从后到前,写好前端页面测试时,却报找不到Xxx.Xxx.entity.Xxx.java,意思是找不到Xxx实体类,最后发现原因是前端页面的错误。还有一次,还没有前端页面,只写了controller,也报这个错,折腾半天发现是缓存原因。


把写的那个controller整个注释掉,保存,启动tomcat,访问其他的controller ,可以正常访问,再把注释放开,保存,重启tomcat ,再访问该controller ,不再报错。


二、pom.xml文件头报错:


首先update maven project,如果没用,可以删除maven本地仓所有的东西,然后重启eclipse会自动下载所有需要的jar,错误消失。或者在pom.xml中加入如下代码:

<properties>
        <java.version>1.8</java.version>
        <!-- 解决pom.xml第一行unknown红叉问题 -->
        <maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>
</properties>


三、maven项目创建失败:


创建maven quick start 或者maven web project 时,如果报如下错误:

Unable to create project from archetype
[org.apache.maven.archetypes:maven-archetype-quickstart:RELEASE]
The desired archetype does not exist
(org.apache.maven.archetypes:maven-archetype-quickstart:1.1)


解决办法:


cmd命令行下直接执行(前提是maven已经配置环境变量):mvn archetype:generate 指令,等待几分钟从网络中下载文件后,重新使用eclipse创建maven project,即可成功。


四、获取不到sessionFactoryBean:


ssm项目中,如果你确定你的sqlSessionFactory已注入而报找不到sqlSessionFactory这个bean,那么可能是mapper.xml中标签或者sql语句错误。sql语句应注意from、where等的前一行不能有逗号,比如:

select u.name, u.age, u.password, a.province from tb_user u, tb_area a where u.id = a. userId


这里a.provincetb_area a后不能加逗号,这个地方手一抖就容易出错。


五、新建springboot项目失败:


注意新建springboot项目电脑一定要联网,否则访问不了http://start.spring.io,若是联网也不能新建,可以自己在浏览器上访问该网址新建项目,然后把项目下载下来,import进ide中即可。


六、执行group by语句报错:


如果执行含有group by的sql语句报如下错误:

SELECT list is not in GROUP BY clause and contains nonaggregated column...


解决办法:


登录mysql(命令行或navicat等工具都可以),


先执行:select @@global.sql_mode;


看看是否有:only_full_group_by


如果有,就是这个东西在搞鬼,


再执行:

set GLOBAL sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION ';


这样就不会再报错了。


总结:


以上是本人在学习时常遇到的一些错误,好记性不如烂笔头,所以在此记录下来,也希望能帮到更多的人!


以上内容属于个人笔记整理,如有错误,欢迎批评指正!


相关文章
|
4天前
|
移动开发 前端开发 Java
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
JavaFX是Java的下一代图形用户界面工具包。JavaFX是一组图形和媒体API,我们可以用它们来创建和部署富客户端应用程序。 JavaFX允许开发人员快速构建丰富的跨平台应用程序,允许开发人员在单个编程接口中组合图形,动画和UI控件。本文详细介绍了JavaFx的常见用法,相信读完本教程你一定有所收获!
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
|
27天前
|
Java 开发者 微服务
Spring Boot 入门:简化 Java Web 开发的强大工具
Spring Boot 是一个开源的 Java 基础框架,用于创建独立、生产级别的基于Spring框架的应用程序。它旨在简化Spring应用的初始搭建以及开发过程。
48 6
Spring Boot 入门:简化 Java Web 开发的强大工具
|
14天前
|
存储 JavaScript 前端开发
基于 SpringBoot 和 Vue 开发校园点餐订餐外卖跑腿Java源码
一个非常实用的校园外卖系统,基于 SpringBoot 和 Vue 的开发。这一系统源于黑马的外卖案例项目 经过站长的进一步改进和优化,提供了更丰富的功能和更高的可用性。 这个项目的架构设计非常有趣。虽然它采用了SpringBoot和Vue的组合,但并不是一个完全分离的项目。 前端视图通过JS的方式引入了Vue和Element UI,既能利用Vue的快速开发优势,
80 13
|
1月前
|
JSON Java 关系型数据库
Java更新数据库报错:Data truncation: Cannot create a JSON value from a string with CHARACTER SET 'binary'.
在Java中,使用mybatis-plus更新实体类对象到mysql,其中一个字段对应数据库中json数据类型,更新时报错:Data truncation: Cannot create a JSON value from a string with CHARACTER SET 'binary'.
84 4
Java更新数据库报错:Data truncation: Cannot create a JSON value from a string with CHARACTER SET 'binary'.
|
19天前
|
算法 Java API
如何使用Java开发获得淘宝商品描述API接口?
本文详细介绍如何使用Java开发调用淘宝商品描述API接口,涵盖从注册淘宝开放平台账号、阅读平台规则、创建应用并申请接口权限,到安装开发工具、配置开发环境、获取访问令牌,以及具体的Java代码实现和注意事项。通过遵循这些步骤,开发者可以高效地获取商品详情、描述及图片等信息,为项目和业务增添价值。
53 10
|
13天前
|
前端开发 Java 测试技术
java日常开发中如何写出优雅的好维护的代码
代码可读性太差,实际是给团队后续开发中埋坑,优化在平时,没有那个团队会说我专门给你一个月来优化之前的代码,所以在日常开发中就要多注意可读性问题,不要写出几天之后自己都看不懂的代码。
51 2
|
22天前
|
JavaScript 安全 Java
java版药品不良反应智能监测系统源码,采用SpringBoot、Vue、MySQL技术开发
基于B/S架构,采用Java、SpringBoot、Vue、MySQL等技术自主研发的ADR智能监测系统,适用于三甲医院,支持二次开发。该系统能自动监测全院患者药物不良反应,通过移动端和PC端实时反馈,提升用药安全。系统涵盖规则管理、监测报告、系统管理三大模块,确保精准、高效地处理ADR事件。
|
3天前
|
Java
Java—多线程实现生产消费者
本文介绍了多线程实现生产消费者模式的三个版本。Version1包含四个类:`Producer`(生产者)、`Consumer`(消费者)、`Resource`(公共资源)和`TestMain`(测试类)。通过`synchronized`和`wait/notify`机制控制线程同步,但存在多个生产者或消费者时可能出现多次生产和消费的问题。 Version2将`if`改为`while`,解决了多次生产和消费的问题,但仍可能因`notify()`随机唤醒线程而导致死锁。因此,引入了`notifyAll()`来唤醒所有等待线程,但这会带来性能问题。
Java—多线程实现生产消费者
|
5天前
|
安全 Java Kotlin
Java多线程——synchronized、volatile 保障可见性
Java多线程中,`synchronized` 和 `volatile` 关键字用于保障可见性。`synchronized` 保证原子性、可见性和有序性,通过锁机制确保线程安全;`volatile` 仅保证可见性和有序性,不保证原子性。代码示例展示了如何使用 `synchronized` 和 `volatile` 解决主线程无法感知子线程修改共享变量的问题。总结:`volatile` 确保不同线程对共享变量操作的可见性,使一个线程修改后,其他线程能立即看到最新值。
|
5天前
|
消息中间件 缓存 安全
Java多线程是什么
Java多线程简介:本文介绍了Java中常见的线程池类型,包括`newCachedThreadPool`(适用于短期异步任务)、`newFixedThreadPool`(适用于固定数量的长期任务)、`newScheduledThreadPool`(支持定时和周期性任务)以及`newSingleThreadExecutor`(保证任务顺序执行)。同时,文章还讲解了Java中的锁机制,如`synchronized`关键字、CAS操作及其实现方式,并详细描述了可重入锁`ReentrantLock`和读写锁`ReadWriteLock`的工作原理与应用场景。