<>

问题描述及解决方案

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

 解决方案:

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

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

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

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

9、无效绑定状态

 解决方案:在使用<package name="包名"/>或者<mapper
class="接口名"/>时,映射文件名必须和接口名一样,否者报错。使用<mapper resource=""/>时,两者不同名不会报错。

<>

<>后续遇到错误会继续更新博客.....

技术
©2019-2020 Toolsou All rights reserved,
Python学习笔记(一)Linux【shell】 shell编程创建一个线程——— Javaweb (3)evo工具使用问题——Degenerate covariance rank, Umeyama alignment is not possibleVMware 16安装centos 7详细教程C语言做一个简易的登陆验证(功能)界面C语言——qsort函数Spring Boot面试必问:自动配置原理Android EditText密码显示隐藏Qt入门教程【基础控件篇】QCalendarWidget日历控件