ibatis的错误及解决办法

本文解析了MyBatis配置文件中常见的两个异常问题,包括SqlMapConfig.xml文件结构不完整导致的问题及找不到resultClass定义的类引起的错误。通过调整配置文件结构和校验类路径,可以有效解决这些问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

异常1:

The content of element type "sqlMapConfig" is incomplete, it must match "(properties?,settings?,typeAlias*,typeHandler*,transactionManager?,sqlMap+)+".

解析:

(1)The content of element type “sqlMapConfig” is incomplete---->SqlMapConfig.xml 不完整

(2)(properties?,settings?,resultObjectFactory?,typeAlias*,typeHandler*,transactionManager?,sqlMap+)+

此句话的意思就是properties,settings,resultObjectFactory,transactionManager标签可以出现0次或者1次,typeAlias,typeHandler标签可以出现0次或者多次,sqlMap标签至少出现1次。

解决方案:

从解析中我们可以看出,遇到上面的异常我们可以查看的SqlMapConfig.xml文件看我的配置文件中,是否少了以上必不可少的标签。

很容易我们可以看出,是少了sqlMap标签。

在sqlMapConfig.xml文件中增加 

<sqlMap resource="com\ection\ibatis\Contact.xml"/>

 

异常2: Error.  Could not set result class.

Exception in thread "main" com.ibatis.common.exception.NestedRuntimeException: Error occurred.  Cause: com.ibatis.common.xml.NodeletException: Error parsing XML.  Cause: com.ibatis.common.exception.NestedRuntimeException: Error parsing XPath '/sqlMapConfig/sqlMap'.  Cause: com.ibatis.common.xml.NodeletException: Error parsing XML.  Cause: com.ibatis.common.exception.NestedRuntimeException: Error parsing XPath '/sqlMap/select'.  Cause: com.ibatis.sqlmap.client.SqlMapException: Error.  Could not set result class.  Cause: java.lang.ClassNotFoundException: Contact
Caused by: java.lang.ClassNotFoundException: Contact
Caused by: com.ibatis.sqlmap.client.SqlMapException: Error.  Could not set result class.  Cause: java.lang.ClassNotFoundException: Contact

解析:Could not set result class.不能找到设置的resultClass文件

解决方案:

在Contact.xml文件中检查resultClass的路径是否正确。

此时Contact.xml中resultClass路径的配置方式有两种:

(1)第一种方式:

 <sqlMap namespace="Contact">
 <select id="getAll" resultClass="com.ection.ibatis.Contact">
     select * from contact
 </select>
 </sqlMap>

 

(2)第二种方式:

 <sqlMap namespace="Contact">
 <!-- show all data of table -->
 <resultMap class="com.ection.ibatis.Contact" id="Contact">
     <result property="id"/>
     <result property="firstName"/>
     <result property="lastName"/>
     <result property="email"/>
 </resultMap>
 <select id="getAll" resultMap="Contact">
     select * from contact
 </select>
 </sqlMap>



 

 


 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值