idea运行Mybatis项目出现的常见错误(编码错误等)

简介: idea运行Mybatis项目出现的常见错误(编码错误等)

问题描述及解决方案

1、java.lang.ExceptionInInitializerError....The error may exist in UserMapper.xml

### Cause: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: java.io.IOException: Could not find resource UserMapper.xml

e8e3b250f5dc5d06d4ecfeb531a51b96_watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5YWo5p2R56ys5LqM5biF,size_20,color_FFFFFF,t_70,g_se,x_16.png

解决方案:



2、动态查询之foreach报错:

解决方案:


3、运行第一个Mybatis项目时报错:

解决方案:

1)主要是编码方式出现问题,文件和工程编码方式均改为UTF-8即可

2)可能xml配置文件中有中文注释,可删除中文注解或将xml编码方式由UTF-8改为UTF8,问题就没了


4、变量属性名与数据库的字段名不一致导致下列错误:

解决方案:


5、所有的配置没问题时,查询的数据库却为空,首先可以确定的是配置没问题,数据库连接也没有问题,那就可能是数据读取有问题了:

解决方案: 还是变量属性名与数据库的字段名不一致(全为null,说明你一个都没匹配上,晕~),所以养成一个良好的编程习惯很重要,存在三种可以解决的方案

1)去实体类修改set方法,Mybatis是通过set方法进行查询的,所以只需要修改set方法就可以查询得到(不推荐使用)

2)给数据库字段名取别名(字段少的时候推荐使用)

<select id="queryById" resultType="user">
        select userid as id, username as name, password
        from mybatis.user
        where userid = #{id}
    </select>

3)结果集映射ResultMap(推荐使用)

<resultMap id="allUser" type="user">
        <!--column数据库中的字段,property实体类中的属性-->
        <result column="username" property="name"/>
        <result column="userid" property="id"/>
    </resultMap>
    <select id="getAllUserList" resultMap="allUser">
        select *
        from mybatis.user;
    </select>


6、org.apache.ibatis.exceptions.PersistenceException:

### Error querying database.  Cause: java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed

### The error may exist in com/dao/UserMapper.xml

### The error may involve com.dao.UserMapper.getUerList

### The error occurred while executing a query

### Cause: java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed

解决方案:useSSL建立了不安全的连接,系统不允许检索公钥


7、org.apache.ibatis.exceptions.PersistenceException:

### Error querying database.  Cause: org.apache.ibatis.reflection.ReflectionException: Error instantiating class com.pojo.Employees with invalid types (int,String,String,String,String,String,Double,Double,int,int,Date) or values (100,Steven,K_ing,SKING,515.123.4567,AD_PRES,24000.0,null,null,90,Fri Apr 03 00:00:00 SGT 1992). Cause: java.lang.IllegalArgumentException

947cd4b225bdf8624601ce4eeb05dc88_watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5YWo5p2R56ys5LqM5biF,size_20,color_FFFFFF,t_70,g_se,x_16.png

解决方案:在确定配置没有问题后,出现非法参数异常 。问题出在具体实例无法初始化,通过查阅相关资料,得知mybatis在初始化对象时,需要用无参构造方法加载属性,所以在实体类中加上无参构造方法就正常了。


8、Error updating database.  Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry '9' for key 'PRIMARY'

解决方案: id为9的主键重复了,可能同一插入操作进行了两次,修改id即可


9、无效绑定状态

解决方案:在使用或者时,映射文件名必须和接口名一样,否者报错。使用时,两者不同名不会报错。


后续遇到错误会继续更新.....

相关文章
|
1月前
|
运维 网络安全 持续交付
IDEA+Docker 远程一键部署项目:技术干货分享
【10月更文挑战第4天】在现代软件开发中,快速、可靠、自动化的部署流程是提升开发效率和运维质量的关键。IDEA(IntelliJ IDEA)作为Java开发者首选的IDE,结合Docker这一轻量级容器化技术,能够实现远程一键部署项目,极大地简化了开发到生产的流程。今天,我将和大家分享这一组合在工作学习中的实际应用和技术干货。
192 3
|
28天前
|
存储 缓存 Java
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
这篇文章详细介绍了Java中的IO流,包括字符与字节的概念、编码格式、File类的使用、IO流的分类和原理,以及通过代码示例展示了各种流的应用,如节点流、处理流、缓存流、转换流、对象流和随机访问文件流。同时,还探讨了IDEA中设置项目编码格式的方法,以及如何处理序列化和反序列化问题。
63 1
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
|
15天前
|
搜索推荐 Java 数据库连接
Java|在 IDEA 里自动生成 MyBatis 模板代码
基于 MyBatis 开发的项目,新增数据库表以后,总是需要编写对应的 Entity、Mapper 和 Service 等等 Class 的代码,这些都是重复的工作,我们可以想一些办法来自动生成这些代码。
25 6
|
14天前
|
缓存 IDE Java
idea的maven项目打包时没有source下的文件
【10月更文挑战第21天】idea的maven项目打包时没有source下的文件
30 1
|
27天前
|
Java Maven Spring
springboot学习一:idea社区版本创建springboot项目的三种方式(第三种为主)
这篇文章介绍了在IntelliJ IDEA社区版中创建Spring Boot项目的三种方法,特别强调了第三种方法的详细步骤。
168 0
springboot学习一:idea社区版本创建springboot项目的三种方式(第三种为主)
|
30天前
|
Java 应用服务中间件 Maven
【终极解决方案】IDEA maven 项目修改代码不生效。
【终极解决方案】IDEA maven 项目修改代码不生效。
250 1
|
1月前
|
Java Shell 开发工具
git集成IDEA,托管项目实现版本管理
git集成IDEA,托管项目实现版本管理
31 0
|
5月前
|
Java 编译器 Maven
使用intellij idea搭建SSM架构的maven项目 详细
使用intellij idea搭建SSM架构的maven项目 详细
94 4
|
4月前
|
IDE Oracle Java
day4:JDK、IntelliJ IDEA的安装和环境变量配置
【7月更文挑战第4天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
211 0
|
4月前
|
网络协议 安全 Linux
在IntelliJ IDEA中使用固定公网地址远程SSH连接服务器环境进行开发
在IntelliJ IDEA中使用固定公网地址远程SSH连接服务器环境进行开发
94 2
下一篇
无影云桌面