【Spring Boot】网页五子棋项目中遇到的困难及解决方法

目录

    • 一、HikariPool-1 - Starting异常
    • 二、Invalid bound statement (not found)异常
    • 三、The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary异常
    • 四、The server time zone value时区报错异常
    • 五、补充知识点:component注入的默认单例

问题现象:数据库连接正常,但是返回数据为空,并出现以下日值,但是多试几次又能查询数据库了,那时候没注意到日志中的没出现sql的查询字段以为是HikariPool-1 - Starting…1搞得鬼就上网去查,发现依然没有结果返回,然后把日志全看了一遍,压根就没有出现数据库连接的字段,我就知道应该是数据库连接出问题了,然后通过test测试数据库连接,结果爆红显示Invalid bound statement (not found)springboot错误,又上网去查,一一对比以后发现我的数据库映射并没有问题,然后提示我文件可能被过滤掉了等一系列问题…

一、HikariPool-1 - Starting异常

问题描述:

服务启动正常,但是使用功能要访问数据库时,控制台出现如下情况,一直 Startingcom.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting…1

问题排查
通过客户端连接数据库,访问正常。

网上搜索说是加个 useSSL=false ,但是还是不行。

url: jdbc:mysql://127.0.0.1:3306/java_gobang?characterEncoding=utf8&useSSL=false

然后也让我学习到了SSL(Secure Sockets Layer),安全套接字协议。在连接Mysql时,
如果MySQL的版本为5.7以上时,必须加上useSSL=false,直接通过用户账号和密码进行连接MySQL数据库;当MySQL的版本是5.7以下则不进行要求,默认使用useSSL=false。

useSSL=false:使用用户账号密码进行连接。

useSSL=true:y一般通过证书或者令牌进行安全验证。
不在yml配置中添加就默认的为true,则无法连接数据库成功。

二、Invalid bound statement (not found)异常

Invalid bound statement (not found)springboot或者Mybatis下找不到的几种情况

相信我们在学习Mybatis的时候都出现过 Invalid bound statement (not found) 这个错误,一般由以下几种可能导致这个错误

  1. 一:mapper方法名 和 mapper.xml id名不对应

在这里插入图片描述

  1. 二、 mapper.xml的namespace是不是写错了

这里的 namespace要写所需实现的接口的全限定性类名
在这里插入图片描述

  1. 三、是不是xml文件没有编译

打开target看看有没有xml文件在里面

没有的话就需要在pom.xml里面配置一下resource

在这里插入图片描述

<resources><resource><directory>src/main/java</directory><includes><include>**\/*.xml</include></includes><filtering>true</filtering></resource><resource><directory>src/main/resources</directory><includes><include>**\/*.*</include></includes><filtering>true</filtering></resource>
</resources>
  1. 四、是不是resources的路径问题

主要,如果想吧mapper.xml文件写在resources下的话,新建的包要用 “ / ” 分开 而不是用 “ . ”

如:com/zhp/mapper 这个是正确的 com.zhp.mapper是错误的,查看一下包名对不对:

一定得是这样的嵌套的,以下是错误示例:(创建时候用错误的用 . 而不是 / )

还有,这个resources里的这个mapper包一定和src一样,以免出现不必要的错误

在这里插入图片描述

三、The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary异常

报错信息

Loading class com.mysql.jdbc.Driver'. This is deprecated. The new driver class is com.mysql.cj.jdbc.Driver’. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.

在这里插入图片描述

问题原因
升级后的mysql驱动类,Driver位置由com.mysql.jdbc.Driver 变为com.mysql.cj.jdbc.Driver

后来又查了一下这两个的区别,前者是jdbc连接mysql数据库的时候,如果连接mysql-connector-java 5使用的driver是com.mysql.jdbc.Driver,连接mysql-connector-java 6 以上使用的是com.mysql.cj.jdbc.Driver,然后看了之前的旧代码,新旧代码用的都是带cj的,但是不同的旧代码中的mysql-connector-java 依赖是8版本,然而新拉的项目分支中的是5版本,这样一下子就豁然开通了

解决方法:
只需要将applicaton.yml配置文件中 的com.mysql.jdbc.Driver改为com.mysql.cj.jdbc.Driver即可

四、The server time zone value时区报错异常

控制台报错信息:
java.sql.SQLException: The server time zone value ‘�й���׼ʱ��’ is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time

时区报错,主要是两地时间不一样,我们在东八区

解决方法:

 url: jdbc:mysql://127.0.0.1:3306/java_gobangcharacterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8

五、补充知识点:component注入的默认单例

在这里插入图片描述

在这里插入图片描述

因为我在model类中想要自动注入其他包的类以及ObjectMapper类,然后就把model的这个实体类给注入到了spring当中,在运行程序时报错异常,然后一直在方法逻辑内找,是不是那个类在前后端交互时没有初始化或者传参,捋了一遍逻辑发现并没有问题,然后上网说是注入的问题,我又开始深挖Spring注入的相关内容,最后学习到了,model类一般用于类的构建,应该是多列模式的,使用Component注入之后,spring 默认注入对象为单例的,在我们进行拿去时就会出现报错NullPointerException
空指针异常总结:
如果想要在实体类(model类不能使用component)中使用Spring的注入方法,有两种解决方法

通过手动获取bean创建出来实例
在这里插入图片描述

然后对于想要注入的对象,首先从Spring启动类中拿到Spring 的上下文,我这里定义的是context,然后通过获取Bean的方式来进行创建我们想要的对象类。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/47481.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

免费【2024】springboot 白优校园社团网站的设计与实现

博主介绍&#xff1a;✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌ 技术范围&#xff1a;SpringBoot、Vue、SSM、HTML、Jsp、PHP、Nodejs、Python、爬虫、数据可视化…

Django transaction.atomic()事务处理

在Django中&#xff0c;transaction.atomic()是一个上下文管理器&#xff0c;它会自动开始一个事务&#xff0c;并在代码块执行完毕后提交事务。如果在代码块中抛出异常&#xff0c;事务将被自动回滚&#xff0c;确保数据库的一致性和完整性。 在实际应用中&#xff0c;你可能需…

[HTML]一文掌握

背景知识 主流浏览器 浏览器是展示和运行网页的平台&#xff0c; 常见的五大浏览器有 IE浏览器、火狐浏览器&#xff08;Firefox&#xff09;、谷歌浏览器&#xff08;Chrome&#xff09;、Safari浏览器、欧朋浏览器&#xff08;Opera&#xff09; 渲染引擎 浏览器解析代码渲…

Agent类型解析:AIGC在不同领域的应用与影响

目录 引言 垂直智能体&#xff08;Vertical Agent&#xff09; 水平智能体&#xff08;Horizontal Agent&#xff09; 混合智能体&#xff08;Hybrid Agent&#xff09; 结论 引言 在人工智能&#xff08;AI&#xff09;领域&#xff0c;智能体&#xff08;Agent&#xf…

Edge浏览器加载ActiveX控件

背景介绍 新版Edge浏览器也是采用Chromium内核&#xff0c;虽然没有谷歌浏览器市场占有率高&#xff0c;但是依托微软操作系统的优势&#xff0c;Edge浏览器还是发展很强劲&#xff0c;占据着市场第二的位置。随着微软停止服务IE浏览器&#xff0c;曾经风光无限的IE浏览器页退出…

甄选范文“论企业集成平台的理解与应用”,软考高级论文,系统架构设计师论文

论文真题 企业集成平台(Enterprise Imtcgation Plaform,EIP)是支特企业信息集成的像环境,其主要功能是为企业中的数据、系统和应用等多种对象的协同行提供各种公共服务及运行时的支撑环境。企业集成平台能够根据业务模型的变化快速地进行信息系统的配置和调整,保证不同系统…

bootstrap设置表格列宽及换行

bootstrap设置表格列宽及换行 业务背景页面操作问题处理 业务背景 在日常工作过程中&#xff0c;遇到一个字段长度太长的时候&#xff0c;列表展示整个展示的话效果太差&#xff0c;比如这样的 列表展示出现了滚动条&#xff0c;查看列表内容时就不太方便&#xff1b;但是业务…

数学建模--优劣解距离法TOPSIS

目录 简介 TOPSIS法的基本步骤 延伸 优劣解距离法&#xff08;TOPSIS&#xff09;的历史发展和应用领域有哪些&#xff1f; 历史发展 应用领域 如何准确计算TOPSIS中的理想解&#xff08;PIS&#xff09;和负理想解&#xff08;NIS&#xff09;&#xff1f; TOPSIS方法在…

Logstash docker发布

一 下载Logstash 不废话了&#xff0c;我下载的7.17.6 二 新增配置文件 在logstash/pipeline中&#xff0c;添加logstash.conf input {jdbc { # 连接jdbc_connection_string > "jdbc:mysql://192.168.1.1:3306/kintech-cloud-bo&#xff1f;characterEncodingUTF-8&…

汽车电动空调系统

1.电动空调系统概述 电动汽车制冷空调系统与传统汽车制冷空调系统基本原理一样&#xff0c;区别在于电动汽车空调系统采用电动空调压缩机。电动空调压缩机由驱动电机&#xff0c;压缩机&#xff0c;控制器集成。 电动空调压缩机的驱动电机采用体积小&#xff0c;质量轻&#x…

初学者简单了解爬虫的基本认识和操作(详细参考图片)

爬虫 定义&#xff1a;爬虫&#xff08;Web Crawler 或 Spider&#xff09;是一种自动访问互联网上网页的程序&#xff0c;其主要目的是索引网页内容&#xff0c;以便搜索引擎能够快速检索到相关信息。以下是爬虫的一些关键特性和功能&#xff1a; 自动化访问&#xff1a;爬虫能…

【学习笔记】无人机系统(UAS)的连接、识别和跟踪(四)-无人机认证与授权

引言 3GPP TS 23.256 技术规范&#xff0c;主要定义了3GPP系统对无人机&#xff08;UAV&#xff09;的连接性、身份识别、跟踪及A2X&#xff08;Aircraft-to-Everything&#xff09;服务的支持。 3GPP TS 23.256 技术规范&#xff1a; 【免费】3GPPTS23.256技术报告-无人机系…

Python入门基础教程(非常详细)

现在找工作真的越来越难了&#xff01;今年更是难上加难 前几天在网上刷到这样一条热搜&#xff1a; #23岁找工作因年龄大被HR拒绝了# 是这个世界疯了还是我疯了&#xff1f; 合着只想要有20年以上工作经验的应届毕业生是吧 这好像就是现在的就业市场现状&#xff1a;“35岁…

盘点市场上受欢迎的PDF编辑工具

随着PDF文件使用人数的激增&#xff0c;市面上涌现出了众多功能强大的PDF编辑器工具。但是软件多了我们分辨起来就需要花上不少时间&#xff0c;我推荐一下我用过靠谱的PDF编辑器吧。 1.福昕PDF编辑器 这个软件主要就是针对PDF文稿进行操作的&#xff0c;支持PDF几乎全部的操…

人工智能视频大模型:重塑视频处理与理解的未来

目录 一、人工智能视频大模型概述 1.1 定义与特点 1.2 技术基础 二、关键技术解析 2.1 视频特征提取 2.2 时空建模 2.3 多任务学习 三、应用场景展望 3.1 视频内容分析 3.2 视频编辑与生成 3.3 交互式视频体验 四、未来发展趋势 4.1 模型轻量化与移动端部署 4.2 …

JDBC操作MySQL数据

一准备、 1、首先在IDEA中导入导入包&#xff1a;mysql-connector-java-8.0.23 2、写初始化语句 &#xff08;1&#xff09;在目录下找到driver类 &#xff08;2&#xff09;在JDBCUtil函数中把驱动器的类路径改掉 ①打开driver类 ②按住类名 Driver用快捷键 CtrlAltshiftC …

记录vivado自带IP iBert眼图近端回环

记录利用vivado自带IP核工具测试信号质量 ibert是测试眼图的工具&#xff0c;在使用的时候并不用改太多的内容&#xff0c;只需要注意参考时钟及所需要的引脚即可。由于条件的限制&#xff0c;并没有使用光纤和电缆进行连接进行外部回环&#xff0c;仅使用内部回环做测试&…

WEB前端08-综合案例(动态表格)

使用 HTML、CSS 和 JavaScript 创建动态表格 在本教程中&#xff0c;我们将创建一个动态表格&#xff0c;允许用户添加行、选择项目&#xff0c;并执行批量操作&#xff0c;如全选或删除选中的行。我们将通过 HTML、CSS 和 JavaScript 来实现这一功能。让我们逐步了解每个部分…

kubernetes集群部署elasticsearch集群,包含无认证和有认证模式

1、背景&#xff1a; 因公司业务需要&#xff0c;需要在测试、生产kubernetes集群中部署elasticsearch集群&#xff0c;因不同环境要求&#xff0c;需要部署不同模式的elasticsearch集群&#xff0c; 1、测试环境因安全性要求不高&#xff0c;是部署一套默认配置&#xff1b; 2…

【程序设计-底层设计-串口通信-底层交互-一些定义-嵌入式学习-自己思考(1)】

【程序设计-底层设计-串口通信-底层交互-一些定义-嵌入式学习-自己思考&#xff08;1&#xff09;】 1、概述2、环境说明3、学习部分-底层硬件1、当我们说&#xff1a;底层串口-TX&RT&#xff0c;我们在说什么&#xff08;1&#xff09;uart&#xff08;Universal Asynchro…