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, 但是未写 而mybatis中出现异常报错, 必须定义 或者修改将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

你可能感兴趣的:(mybatis,mybatis,ibatis)