• 记录开发中遇到关于MySQL的一些问题-MySQL版


    本篇文章是记录开发中遇到关于MySQL的一些问题:

    希望在这篇文章也能够找到你正在查找的问题,解决问题

    Good Luck !


    关于Id 的一些问题

    数据库并没有直接写SQL,是通过使用IDEA 同一个公司下的数据库软件生成的(DataGrip)

    1、 id为主键、非空

    1.1 下面看一下Idea 的控制台信息:

    The database returned no natively generated identity value; 
    nested exception is org.hibernate.HibernateException: 
    The database returned no natively generated identity value
    
    • 1
    • 2
    • 3

    1.2 接着再看下翻译软件的解释:

    数据库没有返回本机生成的标识值;hibernate. hibernateexception:数据库没有返回本地生成的标识值
    
    • 1

    1.3 分析问题;看网上其他解决方案:ID没有设为主键、id不为空、id 自增
    最近使用的这个数据库图形软件,没习惯,仔细检查一下发现 id 没有设为主键、id 没默认为非空、id没有设为自增策略;(苦笑,小心驶得万年船,为粗心买单一个小时)

    1.4 解决问题;把该表的id 设为主键、id 默认为非空、id设为自增策略


    2. 数据库映射字段问题(不一致)

    2.1 先看控制台报错

    org.springframework.dao.InvalidDataAccessResourceUsageException: 
    could not extract ResultSet; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not extract ResultSet
    
    Caused by: java.sql.SQLSyntaxErrorException: 
    Unknown column 'company0_.shareholder' in 'field list'
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2.1 分析问题
    可能是数据库字段和实体类映射不一致(看到company0_.shareholder);
    简单翻译一下(YD),

    在这里插入图片描述

    3.1 解决问题;
    看了一下实体类,一眼看出来问题了,起因是刚刚改动数据库字段,注解映射上未更新;
    看一下前后变化吧,懂了吧

        @Column(name = "shareholder")
        @Convert(converter = ShareholderInfoConverter.class)
        private List<ShareholderInfo> shareholderInfo; 
    
    • 1
    • 2
    • 3
        @Column(name = "shareholder_info") //变化
        @Convert(converter = ShareholderInfoConverter.class)
        private List<ShareholderInfo> shareholderInfo;
    
    • 1
    • 2
    • 3

    2.4 问题解决;从出现问题到解决问题也就不到十分钟(带写文章)2023-10-08-22:35

    3. SQL语法错误或数据库连接问题

    “could not extract ResultSet” 是一个常见的数据库错误,通常是由于SQL语法错误或数据库连接问题引起的。具体的错误信息是 “SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not extract ResultSet”,这表明在执行SQL查询时发生了问题。

    可能的原因包括:

    1. SQL语法错误:查询语句中可能存在语法错误,例如表名、列名拼写错误或者使用了不支持的SQL语法。
    2. 数据库连接问题:数据库连接可能出现了问题,例如连接超时、连接断开或者无效的数据库配置。(出现过这种情况)
    3. 数据库表或列不存在:查询语句中引用了不存在的表或列。
    4. 数据库权限问题:当前用户可能没有执行该查询所需的权限。

    为了解决这个问题,你可以尝试以下步骤:

    1.检查SQL语句:仔细检查查询语句,确保语法正确,并且引用的表和列存在。
    2.检查数据库连接:确保数据库连接配置正确,并且数据库服务器正常运行。
    3.检查数据库权限:确保当前用户具有执行查询所需的权限。
    4.查看详细错误信息:根据具体的错误信息,查找更多关于该错误的信息,以便更好地定位问题。

    未完待续。。。。。。

  • 相关阅读:
    数据分析、数据挖掘常用的数据清洗方法
    Rust 笔记:Rust 语言中的字符串
    迅为RK3568开发板helloworld 驱动实验-驱动编写
    《QT从基础到进阶·三十六》QWidget实现收缩栏的效果
    【Python】Numpy傅里叶变换总结
    div的并列和包含关系
    oracle数据库 表中有数据,通过plsql 工具 连接 查询全表,却查不到数据
    C++中public、protected及private用法
    初识node.js与内置模块
    【Verilog 教程】7.2 Verilog 文件操作
  • 原文地址:https://blog.csdn.net/qq_46703281/article/details/133522885