MyBatis数据库列名和bean属性名不相同映射处理
当你的数据库列名和bean属性名不相同时,会报下面这种错误
org.apache.ibatis.builder.IncompleteElementException: Could not find result map 'com.houpu.mybatis.mapper.UserMapper.base_name' referenced from 'com.houpu.mybatis.mapper.UserMapper.findAll'
第一种方法
MyBatis会自动去匹配bean里面的配置,但他找不到表相匹配的bean。会报错
处理方法:在Mapper.xml或Dao.xml(一般这么命名)加入
<resultMap id="base_name" type="com.houpu.mybatis.bean.User">//id名和查询语句的resultMap相匹配
<!--id代表配置主键-->
<id property="id" column="userId"></id>
<!--result代表配置非主键字段,实际上id可以不用,可以全写为result-->
<result property="name" column="username"></result>
<result property="birth" column="birthday"></result>
<result property="gender" column="sex"></result>
<result property="addr" column="address"></result>
</resultMap>
<select id="findAll" resultMap="base_name">
select * from user
</select>
< resultMap>< /resultMap>里面填写bean和列名相匹配 property填写bean的属性名,column填写数据库中的列名
第二种方法
在查询语句中加入字段名
如
<select id="findAll" resultMap="base_name">
select 数据库列名 as bean属性名, 数据库列名 as bean属性名 from user
</select>