java.lang.NoSuchMethodException: com.jssz.model.SysStaffdef.<init>(java.math.BigDecimal, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.math.BigDecimal, java.util.Date···
错误代码如上所示:
错误原因:
①在Mybatis的配置文件中用到实体类SysStaffdef,因为没有配置或引入这个实体类,导致报错
②关于XXXMpper.xml文件中的实体字段对应关系混乱,导致框架无法正确对应字段值
解决办法:
①在Mybatis的配置文件加入如下配置:
<typeAliases>
<typeAliastype="com.jssz.model.SysStaffdef"alias="SysStaffdef"/>
<typeAliasalias="Integer" type="java.lang.Integer" />
<typeAliasalias="Long" type="java.lang.Long" />
<typeAlias alias="HashMap"type="java.util.HashMap" />
<typeAliasalias="LinkedHashMap" type="java.util.LinkedHashMap"/>
<typeAliasalias="ArrayList" type="java.util.ArrayList"/>
<typeAliasalias="LinkedList" type="java.util.LinkedList"/>
</typeAliases>
备注:也可以直接引入实体类包:<package name="com.jssz.model"/>
②在实体的XXXMapper.xml文件中对应好每一个数据库字段和实体字段值,只要为property属性值。部分xml示例如下:
<mapper namespace="com.jssz.dao.SysStaffdefMapper">
<resultMap id="BaseResultMap" type="com.jssz.model.SysStaffdef">
<id column="ST_ID" property="stId" jdbcType="DECIMAL" javaType="java.math.BigDecimal"/>
<result column="ST_NAME" property="stName" jdbcType="VARCHAR" javaType="java.lang.String"/>
<result column="ST_LOGINNAME" property="stLoginname" jdbcType="VARCHAR" javaType="java.lang.String"/>
其中需要注意的属性字段为:type,column(数据库字段),property(实体属性字段)