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

news2024/12/23 13:08:08

目录

    • 一、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.coloradmin.cn/o/1939581.html

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

相关文章

CSS技巧专栏:一日一例 6 - 纯CSS实现粉红色跳出来的立体按钮特效

纯CSS实现粉红色跳出来的立体按钮特效 今天要介绍的案例,是个相对简单的按钮效果,我们先看图: 案例分析 我说它简单,因为它实际上并没有使用什么特别的动画效果,只是几个简单的动画组合: 利用伪类before和after,制作按钮后面两个透明的粉色填充层,左右移动。给文字层…

代码随想录算法训练营第23天|39. 组合总和、40.组合总和II、131.分割回文串

打卡Day23 1.39. 组合总和2.40.组合总和II3.131.分割回文串 1.39. 组合总和 题目链接&#xff1a;39. 组合总和 文档讲解&#xff1a; 代码随想录 这道题和昨天做的组合之和由两个区别&#xff1a;被选的元素没有数量限制&#xff0c;同时被选的元素可以无限重复&#xff0c;…

区块链技术实现数字电网内数据可信共享 |《超话区块链》直播预告

随着全球电力市场朝着构建“SmartGrid”和“IntelliGrid”的目标发展&#xff0c;国内电力公司也提出了构建“数字电网”的愿景。清大科越推出新型电力系统区块链服务平台&#xff0c;通过便捷的建链、上链、用链及治链能力&#xff0c;有效解决数字电网各主体间数据共享的信任…

QT--网络篇

如果QT头文件找不到QTcpSocket、QTcpSocket、QTcpServer、QtNetwork ,那么可能是pro文件中缺少QT network这行代码 客户端QTcpSocket void QTcpSocket::connectToHost( QString servip, quint16 port ); connectToHost 函数会尝试与指定的服务器建立 TCP 连接。如果连接成…

代码随想录算法训练营第35天|LeetCode 01背包问题 二维、01背包问题 一维、416. 分割等和子集

1. LeetCode 01背包问题 二维 题目链接&#xff1a;https://kamacoder.com/problempage.php?pid1046 文章链接&#xff1a;https://programmercarl.com/背包理论基础01背包-1.html#算法公开课 视频链接&#xff1a;https://www.bilibili.com/video/BV1cg411g7Y6/ 思路&#xf…

【Vue】`v-if` 指令详解:条件渲染的高效实现

文章目录 一、v-if 指令概述二、v-if 的基本用法1. 基本用法2. 使用 v-else3. 使用 v-else-if 三、v-if 指令的高级用法1. 与 v-for 一起使用2. v-if 的性能优化 四、v-if 的常见应用场景1. 表单验证2. 弹窗控制 五、v-if 指令的注意事项 Vue.js 是一个用于构建用户界面的渐进式…

在 PostgreSQL 里如何实现数据的冷热数据分层存储的自动化策略调整?

&#x1f345;关注博主&#x1f397;️ 带你畅游技术世界&#xff0c;不错过每一次成长机会&#xff01;&#x1f4da;领书&#xff1a;PostgreSQL 入门到精通.pdf 文章目录 在 PostgreSQL 里如何实现数据的冷热数据分层存储的自动化策略调整 在 PostgreSQL 里如何实现数据的冷…

最新可用度盘不限速后台系统源码_去授权开心版

某宝同款度盘不限速后台系统源码&#xff0c;验证已被我去除&#xff0c;两个后端系统&#xff0c;账号和卡密系统 第一步安装宝塔&#xff0c;部署卡密系统&#xff0c;需要环境php7.4 把源码丢进去&#xff0c;设置php7.4&#xff0c;和伪静态为thinkphp直接访问安装就行 …

bootstrap中文文档官网

Bootstrap v3 中文文档 Bootstrap 是最受欢迎的 HTML、CSS 和 JavaScript 框架&#xff0c;用于开发响应式布局、移动设备优先的 WEB 项目。 | Bootstrap 中文网

PostgreSQL 中如何解决因大量并发删除和插入操作导致的索引抖动?

&#x1f345;关注博主&#x1f397;️ 带你畅游技术世界&#xff0c;不错过每一次成长机会&#xff01;&#x1f4da;领书&#xff1a;PostgreSQL 入门到精通.pdf 文章目录 PostgreSQL 中如何解决因大量并发删除和插入操作导致的索引抖动一、理解索引抖动二、索引抖动的影响三…

C语言:温度转换

1.题目&#xff1a;实现摄氏度&#xff08;Celsius&#xff09;和华氏度&#xff08;Fahrenheit&#xff09;之间的转换。 输入一个华氏温度&#xff0c;输出摄氏温度&#xff0c;结果保留两位小数。 2.思路&#xff1a;&#xff08;这是固定公式&#xff0c;其中 F 是华氏度&a…

DL/T645-2007_Part1(协议帧解析)

帧结构 起始字符68H地址域起始字符68H控制码C数据域长度L数据域校验和CS结束字符16H1Byte6Byte1Byte1Byte1ByteN Byte1Byte1Byte 地址域 地址域为6个字节的BCD码构成&#xff0c;当使用的地址码长度不足6字节&#xff0c;高位用0补足&#xff1b;当通信地址为99999999999H时…

自学 阿里巴巴Java开发手册最新版(嵩山版)

&#x1f534; 阿里巴巴Java开发手册最新版&#xff08;嵩山版&#xff09; 一、编程规约(一) 命名风格(二) 常量定义(三) 代码格式(四) OOP 规约(五) 日期时间(六) 集合处理(七) 并发处理(八) 控制语句(九) 注释规约(十) 前后端规范 二、异常日志(一) 错误码(二) 异常处理(三)…

【BUG】已解决:python setup.py bdist_wheel did not run successfully.

已解决&#xff1a;python setup.py bdist_wheel did not run successfully. 目录 已解决&#xff1a;python setup.py bdist_wheel did not run successfully. 【常见模块错误】 解决办法&#xff1a; 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主…

自动驾驶-预测概览

通过生成一条路径来预测一个物体的行为&#xff0c;在每一个时间段内&#xff0c;为每一辆汽车重新计算预测他们新生成的路径&#xff0c;这些预测路径为规划阶段做出决策提供了必要信息 预测路径有实时性的要求&#xff0c;预测模块能够学习新的行为。我们可以使用多源的数据…

NetSuite Saved Search迁移工具

我们需要在系统间迁移Saved Search&#xff0c;但是采用Copy To Account或者Bundle时&#xff0c;会有一些Translation不能迁移&#xff0c;或者很多莫名其妙的Dependency&#xff0c;导致迁移失败。因此&#xff0c;我们想另辟蹊径&#xff0c;借助代码完成Saved Search的迁移…

数据库事务隔离级别及底层原理详解

本文详细记录了数据库中事务的隔离级别及其定义&#xff0c;以及每个隔离级别下可能会遇到哪些问题及对应的解决方案和原理&#xff0c;以下内容结合为各大平台的知识点加自己的理解进行的总结&#xff0c;希望大家在读完以后能对事务有个全新的认识~~ 1. MySQL事务管理 自动…

Connecting weaviate with langflow across docker containers

题意&#xff1a;在Docker容器之间连接Weaviate与Langflow 问题背景&#xff1a; I am trying to build a local RAG application using Langflow. For my vectore store, I want to use a local Weaviate instance, hosted in a separate docker container on the same netwo…

使用dock构建基于lnmp的WrodPress

项目要求&#xff1a; 1.创建nginx容器环境 上传nginx.conf文件、上传阿里云镜像、上传html目录 2.准备mysql cd /opt mkdir mysql 上传my.conf文件、上传阿里云镜像、写好的Dockfile文件 3.准备php cd /opt mkdir php 上传所需文件&#xff1a; 构建各镜像&#xff1a; …

【艺术向】【素描创作记录】《如何为你的红颜知己创作一幅画像(之二)》

写在前面 之前分析过类似的创作过程&#xff0c;见博客【艺术向】【素描创作记录】《如何为你的红颜知己创作一幅画像》 本人业余时间修习素描多年&#xff0c;在此撰文记录《如何为你的红颜知己创作一幅画像&#xff08;之二&#xff09;》&#xff0c;博得对方好感&#xff…