ibatis升级Mybatis,启动项目出现异常记录

异常1

启动项目报错 : No typehandler found for property XXX

报错前代码
	<resultMap id="TypeLstMap" type="java.lang.String">
		<result property="value" column="CENTER"/>
	</resultMap>
	<select id="TypeLst" parameterType="com.sm.entity.myEntity" resultMap="TypeLstMap">
			SELECT
			CENTER as CENTER
		FROM
			JOKEN 
	</select>
修改后代码
	<select id="TypeLst" parameterType="com.sm.entity.myEntity" resultType="java.lang.String">
			SELECT
			CENTER as CENTER
		FROM
			JOKEN 
	</select>
原因:

原有指定resultMap中type指定是基本数据类型
所以不要使用resultMap
直接修改为resultType
必须删除标签

异常2

运行项目报错 :

Error querying database. Cause: org.apache.ibatis.builder.IncompleteElementException: Could not find result map ‘mapper的namespace名.TypeLst’ referenced from ‘mapper的namespace名.TypeLstMap’

报错前代码
	<select id="TypeLst" resultMap="TypeLstMap">
			SELECT
			CENTER as CENTER
		FROM
			JOKEN 
	</select>
修改后代码
	<resultMap id="TypeLstMap" type="com.sm.entity.myEntity">
		<result property="value" column="CENTER"/>
	</resultMap>
	<select id="TypeLst"  resultMap="TypeLstMap">
			SELECT
			CENTER as CENTER
		FROM
			JOKEN 
	</select>
原因1:

imbatis在select查询定义resultMap, 但是未写<resultMap标签不会报错
而mybatis中出现异常报错, 必须定义<resultMap标签
或者修改将resultMap修改为resultType

原因2:

未在xml中定义resultMap

异常3

登录系统报错 :

org.springframework.jdbc.UncategorizedSQLException:
Error updating database. Cause: java.sql.SQLException: ORA-01407: (“SQPRI”.“KOJIN_INF”.“USER_ID”)をNULLには更新できません。

原因:

update一张表的时候, 由于未做处理check, USER_ID未填写
数据库字段USER_ID设置不能为NULL
导致更新表的时候报错

异常4

启动项目报错:

nested exception is org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. The XML location is ‘file [com.rui.dao.xml.Move.xml]’. Cause: java.lang.IllegalArgumentException: Result Maps collection already contains value for MoveEntityMap

原因:

xml存在两个同名ResultMap
修改其中一个名字即可

异常5

启动项目报错:

Cause: org.apache.ibatis.builder.BuilderException: Error resolving JdbcType. Cause: java.lang.IllegalArgumentException: No enum constant org.apache.ibatis.type.JdbcType.VARCHAR2

原因:

数据库使用oracel
将#{moveId,jdbcType=VARCHAR2}
修改为#{moveId,jdbcType=VARCHAR}

异常6

ibatis 写法
<isEqual property="mTkValue" compareProperty="mTKZ001">
mybatis写法
--正确写法
<if test="mTkValue== mTKZ001">and
--错误写法,不能追加单引号
<if test="mTkValue== 'mTKZ001'">and
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值