【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.rhkb.cn/news/381107.html

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

相关文章

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

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

【iOS】——探究isKindOfClass和isMemberOfClass底层实现

isKindOfClass 判断该对象是否为传入的类或其子类的实例 // 类方法实现&#xff0c;用于检查一个类是否属于另一个类或其父类链上的任何类。(BOOL)isKindOfClass:(Class)cls {// 从当前类开始&#xff0c;tcls将沿着元类的继承链向上遍历。for (Class tcls self->ISA(); …

MQTT micro-ROS:构建高效的机器人应用

什么是 micro-ROS&#xff1f; 在之前的 MQTT & FreeRTOS&#xff1a;打造你的远程控制实时应用 中&#xff0c;我们介绍了如何在 FreeRTOS 中构建你的 MQTT 应用。 FreeRTOS 主要应用在对实时性要求较高的场景中&#xff0c;但这类 RTOS 专注于提供实时任务调度和同步机…

【SD】 Stable Diffusion(SD)原理详解与ComfyUI使用 2

Stable Diffusion&#xff08;SD&#xff09;原理详解与ComfyUI使用 Stable Diffusion&#xff08;SD&#xff09;原理详解与ComfyUI使用1. SD整体结构2. Clip&#xff08;文本编码器&#xff09;3. Unit&#xff08;生成模型&#xff09;4. VAE&#xff08;变分自编码器&#…

关于对CSDN的谴责

关于对CSDN的谴责 如果不是心血来潮登了一次旧帐号我是万万不会想到&#xff0c;所有的文章都被设置成了仅VIP可见。 CSDN你的VIP有多不受人待见您不知道吗&#xff1f;为什么要把我用于你开通VIP刷绩效的工具&#xff1f; 这种东西不应该首先经过同意再开启吗&#xff1f;默认…

粘弹性和机械塑性等力学行为如何影响细胞行为?

组织和细胞外基质&#xff08;ECM&#xff09;是细胞生存和功能的关键组成部分&#xff0c;它们不仅提供细胞生长和迁移的结构支撑&#xff0c;还通过其力学特性影响着细胞的形态、功能和行为。组织和ECM并非简单的材料&#xff0c;它们展现出复杂且多样的力学行为&#xff0c;…

2024最新教程,在docker中安装kali,并配置ssh连接

docker的基本使用&#xff1a;搭建高效攻防靶场vulfocus与Docker仓库管理实战&#xff1a;从听说到入门 拉取kali官方镜像 docker pull kalilinux/kali-rolling 启动一个kali镜像&#xff0c;将容器中的22端口映射到主机100端口&#xff0c;方便ssh直接连接 docker run -it…

任务2:python+InternStudio 关卡

任务地址 https://github.com/InternLM/Tutorial/blob/camp3/docs/L0/Python/task.md 文档 https://github.com/InternLM/Tutorial/tree/camp3/docs/L0/Python 任务 Python实现wordcount import re import collectionstext """ Got this panda plush to…

【BUG】已解决:ModuleNotFoundError: No module named‘ pip‘

已解决&#xff1a;ModuleNotFoundError: No module named‘ pip‘ 目录 已解决&#xff1a;ModuleNotFoundError: No module named‘ pip‘ 【常见模块错误】 【解决方案】 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页&#xff0c;我是博主英杰…

爬虫(二)——爬虫的伪装

前言 本文是爬虫系列的第二篇文章&#xff0c;主要讲解关于爬虫的简单伪装&#xff0c;以及如何爬取B站的视频。建议先看完上一篇文章&#xff0c;再来看这一篇文章。要注意的是&#xff0c;本文介绍的方法只能爬取免费视频&#xff0c;会员视频是无法爬取的哦。 爬虫的伪装 …

LeetCode-day21-1186. 删除一次得到子数组最大和

LeetCode-day21-1186. 删除一次得到子数组最大和 题目描述示例示例1&#xff1a;示例2&#xff1a;示例3&#xff1a; 思路代码 题目描述 给你一个整数数组&#xff0c;返回它的某个 非空 子数组&#xff08;连续元素&#xff09;在执行一次可选的删除操作后&#xff0c;所能得…

Springcloud之gateway的使用详解

官网地址&#xff1a;https://docs.spring.io/spring-cloud-gateway/docs/4.0.4/reference/html/ 1.网关入门 helloword 网关不依赖start-web 导入的pom&#xff1a; <!--gateway--> <dependency><groupIdorg.springframework.cloud</groupId><arti…

JAVA零基础学习2(算术逻辑三元运算符、原码反码补码、标准的类如何描写)

JAVA零基础学习2&#xff08;算术逻辑三元运算符、原码反码补码、标准的类如何描写&#xff09; 算术运算符算术运算符自增和自减运算符算术运算符的优先级示例代码 逻辑运算符三元运算符示例代码示例1&#xff1a;简单的条件判断示例2&#xff1a;嵌套的三元运算符 原码反码补…

贪吃蛇超精讲(C语言)

前言 如果你还是个萌新小白&#xff0c;那么该项目的攻克过程一定会十分艰难。虽然作者已经将文章尽可能写的逻辑清晰&#xff0c;内容详细。但所谓“纸上得来终觉浅”&#xff0c;在讲到陌生结构和函数时&#xff0c;大家请一定自己动手去敲一遍代码&#xff0c;这很重要&…

一次Golang单体架构中的复杂长函数的重构实践和思考

在现代应用程序开发中&#xff0c;信息流&#xff08;Feed&#xff09;是许多平台核心功能的一部分。信息流往往会聚合大量的数据&#xff0c;构建这样一个信息流列表是一个复杂的任务。需要从多个微服务和数据库中获取大量数据&#xff0c;包括用户、频道、标签、等级、用户状…

【Langchain大语言模型开发教程】基于文档问答

&#x1f517; LangChain for LLM Application Development - DeepLearning.AI Embedding&#xff1a; https://huggingface.co/BAAI/bge-large-en-v1.5/tree/main 学习目标 1、Embedding and Vector Store 2、RetrievalQA 引包、加载环境变量 import osfrom dotenv import…

react开发-配置开发时候@指向SRC目录

这里写目录标题 配置开发时候指向SRC目录VScode编辑器给出提示总体1.配置react的 2.配置Vscode的1.配置react的2,配置VSCode的提示支持 配置开发时候指向SRC目录VScode编辑器给出提示 总体1.配置react的 2.配置Vscode的 1.配置react的 1. 我么需要下载一个webpack的插件 这样…

Java案例斗地主游戏

目录 一案例要求&#xff1a; 二具体代码&#xff1a; 一案例要求&#xff1a; &#xff08;由于暂时没有学到通信知识&#xff0c;所以只会发牌&#xff0c;不会设计打牌游戏&#xff09; 二具体代码&#xff1a; Ⅰ&#xff1a;主函数 package three;public class test {…

filebeat,kafka,clickhouse,ClickVisual搭建轻量级日志平台

springboot集成链路追踪 springboot版本 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.6.3</version><relativePath/> <!-- lookup parent from…

CentOS 7报错:yum命令报错 “ Cannot find a valid baseurl for repo: base/7/x86_6 ”

参考连接&#xff1a; 【linux】CentOS 7报错&#xff1a;yum命令报错 “ Cannot find a valid baseurl for repo: base/7/x86_6 ”_centos linux yum search ifconfig cannot find a val-CSDN博客 Centos7出现问题Cannot find a valid baseurl for repo: base/7/x86_64&…