使用mybatis执行数据库操作的常见错误

221 阅读3分钟

1 数据库密码错误

企业微信截图_17519468397010.png

1.1 错误原因

该错误出现在项目的全局配置文件中(.yml或.properties),提供的password和username无法连接到mysql数据库。

1.2 解决办法

image.png 直接修改密码,若忘记可以尝试在mysql连接的界面输入user和password尝试连接成功后更改配置文件中的密码。

2 找不到数据库

企业微信截图_17519468971688.png

2.1 错误原因

该错误出现在项目的全局配置文件中(.yml或.properties),提供的url无法正确找到指定的db02数据库。

2.2 解决办法

在mysql数据库中找到想要的数据库并修改路径连接到该数据库。

3 表不存在

企业微信截图_17519469471032.png

3.1 错误原因

指定的数据库中没有想要的表格

3.2 解决办法

以图中错误为例,确定如图所示的db01数据库中有tb_user的表

4 UserMapper注入失败

企业微信截图_17519470087584.png

4.1 错误原因

没有在@SpringBootApplication注释的java文件同目录下找到mapper.UserMapper文件

4.2 解决办法

mapper的包放在Application代码文件的同目录下,或是在Application文件中提供注释@MapperScan("com.itheima.boot06.mapper")确保扫描到mapper文件夹,不管有没有报错都建议在该文件上添加该注解。

5 期望返回值与实际操作返回值

1751961876985.png

5.1 错误原因

因为在使用 MyBatis 进行数据库查询时, 代码逻辑期望查询结果是单条数据(或者 null),但实际数据库中返回了多条数据

5.2 解决办法

  • 修改查询逻辑:确保 SQL 语句返回的是单条记录,比如添加更严格的唯一条件。
  • 调整返回类型:如果查询结果可能是多条数据,将 Mapper 方法的返回类型改为集合,如 List<User> ,然后使用 selectList 方法进行查询。

6 查询不到xml中的SQL语句

1751967098542.png

6.1 错误原因

findAllUserXml方法匹配在xml文件中的标签没有查询到sql语句

6.2 解决办法

确认xml配置的路径,语法是否正确

7 Mapper 接口方法与 XML 不匹配

1751967098542.png


1751967220639.png

7.1 错误原因

xml配置的路径错误

7.2 解决办法

确认xml配置的路径,语法是否正确

8 Mapper 接口方法没有找到要执行的SQL语句

1751967299112.png

8.1 错误原因

没有在注释或xml文件中写SQL语句

8.2 解决办法

找到对应方法写入正确的SQL语句

9 MyBatis 执行查询时的异常

1751967416406.png

9.1 错误原因

这是MyBatis 执行查询时的异常,核心原因是:SQL 映射语句(UserMapper.findAllUseXml)没配置 resultType(指定返回类型)或 resultMap(自定义结果映射),导致无法解析查询结果。

9.2 解决办法

在xml文件的SQL语句标签里补充resultType(指定返回类型)或 resultMap(自定义结果映射)确保 SQL 结果能映射到实体类,异常即可解决。

10 SQL语句语法错误

1751967473494.png

10.1 错误原因

SQL语句的语法错误。

10.2 解决办法

根据报错提供的位置,在位置附近检查错误。

11 Mysql数据库设置的数据唯一与SQL语句冲突

4138aa808e1f37a042f2a35ea746131.png

11.1 错误原因

mysql数据库中设置了该数据的唯一性,但在sql语句执行的过程中输入的数据与唯一性发生冲突了

11.2 解决办法

修改mysql数据库中该数据的唯一性,或检查输入数据是否有误并修改为唯一。通常选择后者。